![]() |
Polyhedral-net Splines
|
Represents a polynomial patch in Bernstein–Bézier form. More...
#include <PnSPatch.hpp>
Public Member Functions | |
| PnSPatch () | |
| Default constructor. | |
| ~PnSPatch () | |
| Destructor. | |
| PnSPatch (const PnSPatch &patch) | |
| Copy constructor. | |
| PnSPatch (PnSPatch &&patch) noexcept | |
| Move constructor. | |
| PnSPatch & | operator= (const PnSPatch &a_Other) |
| Copy assignment operator. | |
| PnSPatch & | operator= (PnSPatch &&other) noexcept |
| Move assignment operator. | |
| const double & | operator() (uint32_t i, uint32_t j, uint32_t k) const |
| Access Bézier coefficient by index. | |
| bool | isValid () const |
| Check whether this patch is valid. | |
| void | degRaise () |
| Perform degree elevation on the patch. | |
| uint32_t | getDegreeU () const |
| Get the polynomial degree in the u-direction. | |
| uint32_t | getDegreeV () const |
| Get the polynomial degree in the v-direction. | |
Private Member Functions | |
| PnSPatch (Patch *impl) | |
| Construct a patch from an internal implementation. | |
Private Attributes | |
| Patch * | impl |
| Opaque pointer to implementation (PIMPL idiom). This is to ensure binary compatibility. | |
Friends | |
| class | PnSpline |
Represents a polynomial patch in Bernstein–Bézier form.
A PnSPatch stores the coefficients and degree information of a single spline patch.
This class uses the PIMPL idiom to ensure binary compatibility across different versions of the library. The member functions are inline functions that call binary safe C functions declared in PnSPatch_impl.hpp.
| PnSPatch::PnSPatch | ( | ) |
Default constructor.
Constructs an empty patch.
|
inline |
Copy constructor.
| patch | Another patch to copy from. |
|
inlinenoexcept |
Move constructor.
| patch | Another patch to move from. |
|
inlineprivate |
Construct a patch from an internal implementation.
| impl | Pointer to underlying implementation. |
Only the PnSpline class can call this constructor.
|
inline |
Perform degree elevation on the patch.
Degree raise the patch upto degree 3 for each paramter. Degree greater than 3 will remain unchanged. This is not relevant for PnS3.
|
inline |
Get the polynomial degree in the u-direction.
|
inline |
Get the polynomial degree in the v-direction.
|
inline |
Check whether this patch is valid.
|
inline |
Access Bézier coefficient by index.
| i | Index in the u-direction between 0 and Degree in u-direction. |
| j | Index in the v-direction between 0 and Degree in v-direction. |
| k | Dimension of control point between 0 and 2 (x, y, or z). |
Copy assignment operator.
| a_Other | Another patch to copy from. |
Move assignment operator.
| other | Another patch to move from. |