#include <nurbsS_sp.h>
Inheritance diagram for PLib::NurbsSurfaceSP:

Public Methods | |
| NurbsSurfaceSP () | |
| NurbsSurfaceSP (const NurbsSurface< T, N > &nS) | |
| NurbsSurfaceSP (const NurbsSurfaceSP< T, N > &nS) | |
| NurbsSurfaceSP (int DegU, int DegV, const Vector< T > &Uk, const Vector< T > &Vk, const Matrix< HPoint_nD< T, N > > &Cp) | |
| NurbsSurfaceSP (int DegU, int DegV, Vector< T > &Uk, Vector< T > &Vk, Matrix< Point_nD< T, N > > &Cp, Matrix< T > &W) | |
| virtual NurbsSurface< T, N > & | operator= (const NurbsSurface< T, N > &a) |
|
virtual NurbsSurfaceSP< T, N > & | operator= (const NurbsSurfaceSP< T, N > &a) |
| 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 int | read (ifstream &fin) |
| virtual void | degreeElevateU (int tU) |
| virtual void | degreeElevateV (int tV) |
| NurbsSurfaceSP< T, N > | generateParallel (T d) const |
| void | modSurfCPby (int i, int j, const HPoint_nD< T, N > &a) |
| void | modSurfCP (int i, int j, const HPoint_nD< T, N > &a) |
| void | modOnlySurfCPby (int i, int j, const HPoint_nD< T, N > &a) |
| void | modOnlySurfCP (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 |
| 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 49 of file nurbsS_sp.h.
|
||||||||||
|
Degree elevate the surface in the U direction.
Reimplemented from PLib::NurbsSurface. Definition at line 376 of file nurbsS_sp.h. References updateMaxU. |
|
||||||||||
|
Degree elevate the surface in the V direction.
Reimplemented from PLib::NurbsSurface. Definition at line 390 of file nurbsS_sp.h. References updateMaxV. |
|
||||||||||
|
Generate a parallel surface.
Generates an offset surface from this surface. An offset surface is a surface wich has its surface parallel to an other one. There is a distance of d between the two parallel surfaces. The algorithm used is very naive. It generates a surface such that a point s_2(u,v) = s(u,v) + d n(u,v) where s_2(u,v,) is the point on the parallel surface at (u,v) , s(u,v) is the point on the original surface at (u,v), d is the offset between the two and n(u,v) is the normal on the surface at the point (u,v).
Definition at line 124 of file nurbsS_sp.cpp. References maxAtU_, maxAtV_, PLib::NurbsSurface::normal, PLib::NurbsSurface::ok, PLib::NurbsSurface::P, PLib::BasicArray< int >::reset, PLib::NurbsSurface::U, and PLib::NurbsSurface::V. |
|
||||||||||||||||
|
merges a U and V knot vector with the surface knot vectors.
Reimplemented from PLib::NurbsSurface. Definition at line 315 of file nurbsS_sp.h. |
|
||||||||||
|
merges the U knot vector with another one.
Reimplemented from PLib::NurbsSurface. Definition at line 331 of file nurbsS_sp.h. References updateMaxU. |
|
||||||||||
|
merges the V knot vector with another one.
Reimplemented from PLib::NurbsSurface. Definition at line 347 of file nurbsS_sp.h. References updateMaxV. |
|
||||||||||||||||||||
|
Definition at line 87 of file nurbsS_sp.h. |
|
||||||||||||||||||||
|
Move 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 262 of file nurbsS_sp.cpp. References PLib::NurbsSurface::degU, PLib::NurbsSurface::degV, maxAtU_, maxAtV_, PLib::NurbsSurface::movePoint, and PLib::NurbsSurface::P. Referenced by PLib::NurbsSurfaceSP< float, 3 >::modOnlySurfCP. |
|
||||||||||||||||||||
|
Definition at line 83 of file nurbsS_sp.h. |
|
||||||||||||||||||||
|
Definition at line 81 of file nurbsS_sp.h. Referenced by PLib::NurbsSurfaceSP< float, 3 >::modSurfCP. |
|
||||||||||
|
NurbsSurface<T,N> assignment.
Reimplemented from PLib::NurbsSurface. Definition at line 210 of file nurbsS_sp.h. |
|
||||||||||
|
Read a surface from an input stream.
Reimplemented from PLib::NurbsSurface. Reimplemented in PLib::NurbsSurfaceGL. Definition at line 361 of file nurbsS_sp.h. |
|
||||||||||||||||
|
Refine both knot vectors.
Reimplemented from PLib::NurbsSurface. Definition at line 266 of file nurbsS_sp.h. |
|
||||||||||
|
Refines the U knot vector.
Reimplemented from PLib::NurbsSurface. Definition at line 282 of file nurbsS_sp.h. References updateMaxU. |
|
||||||||||
|
Refines the V knot vector.
Reimplemented from PLib::NurbsSurface. Definition at line 298 of file nurbsS_sp.h. References updateMaxV. |
|
||||||||||||||||||||||||
|
Resize the surface while keeping the old values.
Reimplemented from PLib::NurbsSurface. Definition at line 249 of file nurbsS_sp.h. |
|
|||||||||
|
Updates the basis value for 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 nurbsS_sp.cpp. References PLib::NurbsSurface::degU, maxAtU_, maxU, PLib::NurbsSurface::P, and PLib::NurbsSurface::U. Referenced by degreeElevateU, mergeKnotU, and refineKnotU. |
|
|||||||||
|
Updates the basis value for 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 nurbsS_sp.cpp. References PLib::NurbsSurface::degV, maxAtV_, maxV, PLib::NurbsSurface::P, and PLib::NurbsSurface::V. Referenced by degreeElevateV, mergeKnotV, and refineKnotV. |
1.2.14 written by Dimitri van Heesch,
© 1997-2002