#include <hnurbsS_sp.h>
Inheritance diagram for PLib::HNurbsSurfaceSP:
Public Methods | |
HNurbsSurfaceSP () | |
HNurbsSurfaceSP (const NurbsSurface< T, N > &S) | |
HNurbsSurfaceSP (const HNurbsSurface< T, N > &S) | |
HNurbsSurfaceSP (const HNurbsSurfaceSP< T, N > &S) | |
HNurbsSurfaceSP (HNurbsSurface< T, N > *base) | |
HNurbsSurfaceSP (HNurbsSurface< T, N > *base, const Vector< T > &xU, const Vector< T > &xV) | |
HNurbsSurfaceSP (HNurbsSurface< T, N > *base, const HNurbsSurface< T, N > &surf) | |
virtual void | resizeKeep (int Pu, int Pv, int DegU, int DegV) |
virtual void | refineKnots (const Vector< T > &nU, const Vector< T > &nV) |
virtual void | refineKnotU (const Vector< T > &X) |
virtual void | refineKnotV (const Vector< T > &X) |
virtual void | mergeKnots (const Vector< T > &nU, const Vector< T > &nV) |
virtual void | mergeKnotU (const Vector< T > &X) |
virtual void | mergeKnotV (const Vector< T > &X) |
virtual void | updateSurface (int i0=-1, int j0=-1) |
virtual void | updateLevels (int updateLevel=-1) |
virtual HNurbsSurfaceSP< T, N > * | addLevel (int nsplit, int s=1) |
virtual HNurbsSurfaceSP< T, N > * | addLevel () |
virtual void | copy (const HNurbsSurface< T, N > &nS) |
virtual int | read (ifstream &fin) |
void | modSurfCPby (int i, int j, const HPoint_nD< T, N > &a) |
void | modOnlySurfCPby (int i, int j, const HPoint_nD< T, N > &a) |
T | maxAtUV (int i, int j) const |
T | maxAtU (int i) const |
T | maxAtV (int i) const |
HPoint_nD< T, N > | surfP (int i, int j) const |
HPoint_nD< T, N > | surfP (int i, int j, int lod) const |
void | updateMaxUV () |
void | updateMaxU () |
void | updateMaxV () |
int | okMax () |
Protected Attributes | |
Vector< T > | maxU |
Vector< T > | maxV |
Vector< T > | maxAtU_ |
Vector< T > | maxAtV_ |
A Nurbs surface with surface point manipulators. This allows someone to modify the point on a surface for which a control point has maximal influence over it. This might provide a more intuitive method to modify a surface.
Definition at line 47 of file hnurbsS_sp.h.
|
Adds a level to this HNURBS surface.
Reimplemented from PLib::HNurbsSurface. Reimplemented in PLib::HNurbsSurfaceGL. Definition at line 289 of file hnurbsS_sp.cpp. |
|
Adds a level to this HNURBS surface.
Definition at line 262 of file hnurbsS_sp.cpp. References PLib::HNurbsSurface::splitUV. |
|
Copies a HNurbs Surface and all it children.
Reimplemented from PLib::HNurbsSurface. Definition at line 309 of file hnurbsS_sp.cpp. |
|
merges a U and V knot vector with the surface knot vectors.
Reimplemented from PLib::NurbsSurface. Definition at line 177 of file hnurbsS_sp.h. |
|
merges the U knot vector with another one.
Reimplemented from PLib::NurbsSurface. Definition at line 185 of file hnurbsS_sp.h. References updateMaxU. |
|
merges the V knot vector with another one.
Reimplemented from PLib::NurbsSurface. Definition at line 193 of file hnurbsS_sp.h. References updateMaxV. |
|
Moves the surface point only.
Moves only the specified surface point. The other surface points normally affected by moving this point are {not} moved. The point a is in the 4D homogenous space, but only the x,y,z value are used. The weight is not moved by this function.
Definition at line 151 of file hnurbsS_sp.cpp. References PLib::NurbsSurface::degU, PLib::NurbsSurface::degV, PLib::NurbsSurface::P, and updateSurface. |
|
Modifies the surface point by a certain value.
Definition at line 115 of file hnurbsS_sp.cpp. References PLib::NurbsSurface::P. |
|
Read a HNURBS surface from an input file stream.
Reimplemented from PLib::HNurbsSurface. Reimplemented in PLib::HNurbsSurfaceGL. Definition at line 441 of file hnurbsS_sp.cpp. References PLib::NurbsSurface::P, PLib::NurbsSurface::resize, PLib::NurbsSurface::U, updateSurface, and PLib::NurbsSurface::V. |
|
Refine both knot vectors.
Reimplemented from PLib::HNurbsSurface. Definition at line 155 of file hnurbsS_sp.h. |
|
Refines the U knot vector.
Reimplemented from PLib::HNurbsSurface. Definition at line 162 of file hnurbsS_sp.h. References updateMaxU. |
|
Refines the V knot vector.
Reimplemented from PLib::HNurbsSurface. Definition at line 169 of file hnurbsS_sp.h. References updateMaxV. |
|
Resize the surface while keeping the old values.
Reimplemented from PLib::NurbsSurface. Definition at line 148 of file hnurbsS_sp.h. |
|
Update the surface for all the levels.
Reimplemented from PLib::HNurbsSurface. Definition at line 412 of file hnurbsS_sp.cpp. References updateSurface. |
|
Updates the basis value in the U direction.
Updates the basis value at which a control point has maximal influence. It also finds where the control point has maximal influence.
Definition at line 45 of file hnurbsS_sp.cpp. References PLib::NurbsSurface::degU, PLib::NurbsSurface::P, and PLib::NurbsSurface::U. Referenced by mergeKnotU, and refineKnotU. |
|
Updates the basis value in the V direction.
Updates the basis value at which a control point has maximal influence. It also finds where the control point has maximal influence.
Definition at line 80 of file hnurbsS_sp.cpp. References PLib::NurbsSurface::degV, PLib::NurbsSurface::P, and PLib::NurbsSurface::V. Referenced by mergeKnotV, and refineKnotV. |
|
Updates the NURBS surface.
Updates the NURBS surface according to the offset values and its base level. You can update only one control point from the surface if you specify a value for i and j or you can update all the points if i0 or j0 is below 0.
Reimplemented from PLib::HNurbsSurface. Definition at line 350 of file hnurbsS_sp.cpp. References PLib::NurbsSurface::degU, PLib::NurbsSurface::degV, PLib::HNurbsSurface::initBase, PLib::NurbsSurface::P, PLib::NurbsSurface::U, and PLib::NurbsSurface::V. Referenced by modOnlySurfCPby, read, and updateLevels. |