40 using namespace HDK_Sample;
102 int nu =
SYSmax(COLS(now), 2);
103 int nv =
SYSmax(ROWS(now), 2);
172 for (
int u = 0; u < nu; u++)
175 for (
int v = 0;
v < nv;
v++)
PRM_API PRM_Name PRMorderName
int setUBasis(GA_Basis *ub)
GA_Primitive * getPrimitiveByIndex(GA_Index prim_idx)
int setVBasis(GA_Basis *vb)
void clearAndDestroy()
Clear all the points/primitives out of this detail.
static OP_Node * myConstructor(OP_Network *, const char *, OP_Operator *)
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint vorder
#define OP_FLAG_GENERATOR
SYS_FORCE_INLINE const GA_PrimitiveTypeId & getTypeId() const
SYS_FORCE_INLINE GA_Offset getPointOffset(unsigned int r, unsigned int c) const
bool addOperator(OP_Operator *op, std::ostream *err=nullptr)
unsigned getVOrder() const
PRM_API const PRM_Type PRM_INT
void setPos4(GA_Offset ptoff, const UT_Vector4 &pos)
Set P from a UT_Vector4.
void bumpDataId()
Use this to mark primitives or their intrinsic data as dirty.
SYS_FORCE_INLINE int getNumRows() const
NURBS basis classes which maintain knot vectors.
GLuint const GLchar * name
GLenum GLenum GLsizei void * table
void setManagesDataIDs(bool onOff)
static PRM_Template myTemplateList[]
OP_ERROR cookMySop(OP_Context &context) override
cookMySop does the actual work of the SOP computing
SYS_FORCE_INLINE GA_Size getNumPrimitives() const
Return the number of primitives.
static GU_PrimNURBSurf * build(GEO_Detail *gudp, int rows, int cols, int orderu=4, int orderv=4, int wrapu=0, int wrapv=0, int interpEndsU=1, int interpEndsV=1, GEO_SurfaceType type=GEO_PATCH_QUADS, int appendPoints=1)
SOP_NURBS(OP_Network *net, const char *name, OP_Operator *op)
const GA_PrimitiveList & getPrimitiveList() const
void newSopOperator(OP_OperatorTable *table)
SYS_FORCE_INLINE int getNumCols() const
PRM_API PRM_Name PRMdivName
PRM_API PRM_Default PRMfourDefaults[]
unsigned getUOrder() const
PRM_API PRM_Range PRMorderRange
GLdouble GLdouble GLint GLint uorder