#include <hnurbsS_sp.h>
Inheritance diagram for PLib::HNurbsSurfaceSP< T, N >:

Public Member Functions | |
| 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.
| void PLib::HNurbsSurfaceSP< T, N >::resizeKeep | ( | int | Pu, | |
| int | Pv, | |||
| int | DegU, | |||
| int | DegV | |||
| ) | [inline, virtual] |
Resize the surface while keeping the old values.
| Pu | the number of control points in the U direction | |
| Pv | the number of control points in the V direction | |
| DegU | the degree of the surface in the U direction | |
| DegV | the degree of the surface in the V direction |
Reimplemented from PLib::NurbsSurface< T, N >.
| void PLib::HNurbsSurfaceSP< T, N >::refineKnots | ( | const Vector< T > & | nU, | |
| const Vector< T > & | nV | |||
| ) | [inline, virtual] |
Refine both knot vectors.
| nU | the U knot vector to refine from | |
| nV | the V knot vector to refine from |
Reimplemented from PLib::HNurbsSurface< T, N >.
| void PLib::HNurbsSurfaceSP< T, N >::refineKnotU | ( | const Vector< T > & | X | ) | [inline, virtual] |
Refines the U knot vector.
| X | the knot vector to refine from |
Reimplemented from PLib::HNurbsSurface< T, N >.
| void PLib::HNurbsSurfaceSP< T, N >::refineKnotV | ( | const Vector< T > & | X | ) | [inline, virtual] |
Refines the V knot vector.
| X | the knot vector to refine from |
Reimplemented from PLib::HNurbsSurface< T, N >.
| void PLib::HNurbsSurfaceSP< T, N >::mergeKnots | ( | const Vector< T > & | nU, | |
| const Vector< T > & | nV | |||
| ) | [inline, virtual] |
merges a U and V knot vector with the surface knot vectors
| nU | the U knot vector to merge with | |
| nV | the V knot vector to merge with |
Reimplemented from PLib::NurbsSurface< T, N >.
| void PLib::HNurbsSurfaceSP< T, N >::mergeKnotU | ( | const Vector< T > & | X | ) | [inline, virtual] |
merges the U knot vector with another one
| X | a knot vector |
Reimplemented from PLib::NurbsSurface< T, N >.
| void PLib::HNurbsSurfaceSP< T, N >::mergeKnotV | ( | const Vector< T > & | X | ) | [inline, virtual] |
merges the V knot vector with another one
| X | a knot vector |
Reimplemented from PLib::NurbsSurface< T, N >.
| void PLib::HNurbsSurfaceSP< T, N >::updateSurface | ( | int | i0 = -1, |
|
| int | j0 = -1 | |||
| ) | [virtual] |
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.
| i0 | the row of the control point to update | |
| j0 | the column of the control point to update |
Reimplemented from PLib::HNurbsSurface< T, N >.
| void PLib::HNurbsSurfaceSP< T, N >::updateLevels | ( | int | upLevel = -1 |
) | [virtual] |
Update the surface for all the levels.
| upLevel | updates the levels up to this level of detail |
Reimplemented from PLib::HNurbsSurface< T, N >.
| HNurbsSurfaceSP< T, N > * PLib::HNurbsSurfaceSP< T, N >::addLevel | ( | int | n, | |
| int | s = 1 | |||
| ) | [virtual] |
Adds a level to this HNURBS surface.
| n | the number of new knots between each knots. | |
| s | the multiplicity of each of these knots |
| HNurbsSurfaceSP< T, N > * PLib::HNurbsSurfaceSP< T, N >::addLevel | ( | ) | [virtual] |
Adds a level to this HNURBS surface.
| n | the number of new knots between each knots. |
Reimplemented from PLib::HNurbsSurface< T, N >.
Reimplemented in PLib::HNurbsSurfaceGL.
| void PLib::HNurbsSurfaceSP< T, N >::copy | ( | const HNurbsSurface< T, N > & | nS | ) | [virtual] |
Copies a HNurbs Surface and all it children.
| ns | the HNurbs surface to copy |
Reimplemented from PLib::HNurbsSurface< T, N >.
| int PLib::HNurbsSurfaceSP< T, N >::read | ( | ifstream & | fin | ) | [virtual] |
Read a HNURBS surface from an input file stream.
| fin | the input file stream |
Reimplemented from PLib::HNurbsSurface< T, N >.
Reimplemented in PLib::HNurbsSurfaceGL.
| void PLib::HNurbsSurfaceSP< T, N >::modSurfCPby | ( | int | i, | |
| int | j, | |||
| const HPoint_nD< T, N > & | a | |||
| ) |
Modifies the surface point by a certain value.
| i | the row of the surface point | |
| j | the column of the surface point | |
| a | modify the surface point by this value |
| void PLib::HNurbsSurfaceSP< T, N >::modOnlySurfCPby | ( | int | i, | |
| int | j, | |||
| const HPoint_nD< T, N > & | a | |||
| ) |
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.
| i | the row of the surface point to move | |
| j | the column of the surface point to move | |
| a | move that surface point by that amount. |
| void PLib::HNurbsSurfaceSP< T, N >::updateMaxU | ( | ) |
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.
| void PLib::HNurbsSurfaceSP< T, N >::updateMaxV | ( | ) |
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.
1.5.1