12 #ifndef __GU_NURBPyramid_h__
13 #define __GU_NURBPyramid_h__
50 return Dir ? getCols() : getRows();
54 return Dir ? getRows() : getCols();
58 return Dir ?
get(
j, i) :
get(i, j);
80 return myHandle.get(myHull->getPointOffset(i,
j));
81 return myHandle.get(myFace->getPointOffset(
j));
92 return myCV ? myCV->rows() :
93 (myHull ? myHull->getNumRows() : 1);
97 return myCV ? myCV->cols() :
98 (myHull ? myHull->getNumCols() :
99 myFace->getVertexCount());
128 template <
typename T>
141 template <
typename T>
166 void refine(
fpreal u,
int R,
int newIdx);
UT_RefMatrix< UT_Vector4 > & getResult()
void init(const GA_Basis *basis, const T *cv, const GA_PwHandleRO &h, fpreal umin=0, fpreal umax=-1)
GU_CVMesh(const GEO_Face *cv, const GA_PwHandleRO &h)
unsigned int rows() const
void homogenize()
Express the point in homogeneous coordinates or vice-versa.
GU_CVMesh(const GEO_Hull *cv, const GA_PwHandleRO &h)
const UT_Vector4 getPos(int i, int j) const
GU_NURBPyramid(const GA_Basis *basis, UT_RefMatrix< UT_Vector4 > *cv, fpreal umin=0, fpreal umax=-1)
unsigned int cols() const
Bezier or NURBS basis classes which maintain knot vectors.
void setPos(int i, int j, const UT_Vector4 &pos)
void homogenize(int i, int j)
const UT_Interval & getInterval()
GLfloat GLfloat GLfloat GLfloat h
GU_NURBPyramid(const GA_Basis *basis, const T *cv, const GA_PwHandleRO &h, fpreal umin=0, fpreal umax=-1)
bool SYSisEqual(const UT_Vector2T< T > &a, const UT_Vector2T< T > &b, S tol=SYS_FTOLERANCE)
Componentwise equality.
GU_CVMesh(UT_RefMatrix< UT_Vector4 > *cv)
bool getValidRange(fpreal &a, fpreal &b) const
Get the boundaries of the valid range of evaluation.