1 #ifndef NURBS_SURFACE_FMATVEC_H_
2 #define NURBS_SURFACE_FMATVEC_H_
4 #include <mbsim/numerics/nurbs/nurbs_defs.h>
5 #include "nurbs_curve.h"
72 const fmatvec::Vec4
ctrlPnts(
int i,
int j)
const
87 void resize(
int Pu,
int Pv,
int DegU,
int DegV);
102 Vec3
normal(
double u,
double v)
const;
241 void findSpan(
double u,
double v,
int spanU,
int spanV)
const;
245 int findMultU(
int r)
const;
246 int findMultV(
int r)
const;
double knotU(int i) const
< Returns the i-th knot from U
Definition: nurbs_surface.h:60
int findSpanV(double v) const
finds the span in the V direction
Definition: nurbs_surface.cc:448
Vec3 normal(double u, double v) const
Computes the normal of the surface at (u,v)
Definition: nurbs_surface.cc:672
fmatvec::Vec U
the U knot vector
Definition: nurbs_surface.h:230
void globalInterpClosedU(const GeneralMatrix< fmatvec::Vec3 > &Q, int DegU, int DegV)
Generates a closed surface using global interpolation.
Definition: nurbs_surface.cc:214
virtual NurbsSurface & operator=(const NurbsSurface &)
NurbsSurface assignment.
Definition: nurbs_surface.cc:45
GeneralMatrix< fmatvec::Vec4 > P
The matrix of control points.
Definition: nurbs_surface.h:232
const Vec & knotV() const
< A reference to the V knot vector
Definition: nurbs_surface.h:56
int degreeV() const
< A reference to the degree in V of the surface
Definition: nurbs_surface.h:80
NurbsSurface()
Default constructor.
Definition: nurbs_surface.cc:25
wrapper class for nurbs type HPoint
Definition: nurbs_defs.h:43
A class to represent a NURBS surface.
Definition: nurbs_surface.h:39
void findSpan(double u, double v, int spanU, int spanV) const
Finds the multiplicity of a knot in the U knot.
Definition: nurbs_surface.cc:388
void deriveAt(double u, double v, int d, GeneralMatrix< Vec3 > &skl) const
Find the non-zero basis functions in the U and V direction.
Definition: nurbs_surface.cc:574
int degV
the degree of the surface in V
Definition: nurbs_surface.h:234
Mat InverseU
The matrix for the computation of the control points in U-direction.
Definition: nurbs_surface.h:237
fmatvec::Vec V
the V knot vector
Definition: nurbs_surface.h:231
void resize(int Pu, int Pv, int DegU, int DegV)
Resize the surface.
Definition: nurbs_surface.cc:70
wrapper class for nurbs type Point
Definition: nurbs_defs.h:13
fmatvec::HPoint< 3 > operator()(double u, double v) const
Returns the point on the surface at u,v.
Definition: nurbs_surface.cc:694
double knotV(int i) const
< Returns the i-th knot from V
Definition: nurbs_surface.h:64
int degreeU() const
< A reference to the degree in U of the surface
Definition: nurbs_surface.h:76
int findSpanU(double u) const
finds the span in the U direction
Definition: nurbs_surface.cc:410
void deriveAtH(double u, double v, int d, GeneralMatrix< Vec4 > &skl) const
computes the point and the derivatives of degree d and below at (u,v)
Definition: nurbs_surface.cc:623
const fmatvec::Vec4 ctrlPnts(int i, int j) const
< A reference to the control point at (i,j)
Definition: nurbs_surface.h:72
int degU
the degree of the surface in U
Definition: nurbs_surface.h:233
fmatvec::Point< 3 > pointAt(double u, double v) const
Projects the point in the normal space.
Definition: nurbs_surface.cc:724
const Vec & knotU() const
< A reference to the U knot vector
Definition: nurbs_surface.h:52
void globalInterp(const GeneralMatrix< fmatvec::Vec3 > &Q, int DegU, int DegV)
Generates a surface using global interpolation.
Definition: nurbs_surface.cc:89
Mat InverseV
The matrix for the computation of the control points in V-direction.
Definition: nurbs_surface.h:238
const GeneralMatrix< Vec4 > & ctrlPnts() const
< A reference to the control points
Definition: nurbs_surface.h:68
wrapper class for nurbs surface interpolating data point
Definition: nurbs_defs.h:105