11 #ifndef __GT_PrimCurveMesh__
12 #define __GT_PrimCurveMesh__
33 , myCurveOffsets(src.myCurveOffsets)
34 , myKnotOffsets(src.myKnotOffsets)
35 , myKnots(src.myKnots)
36 , myVertex(src.myVertex)
37 , myUniform(src.myUniform)
38 , myDetail(src.myDetail)
40 , myFaceSetMap(src.myFaceSetMap)
43 , myUniformOrder(src.myUniformOrder)
45 , myClosed(src.myClosed)
46 , myUseBreakpoints(src.myUseBreakpoints)
47 , myBreakpointParameterization(src.myBreakpointParameterization)
55 , myCurveOffsets(src.myCurveOffsets)
56 , myKnotOffsets(src.myKnotOffsets)
57 , myKnots(src.myKnots)
62 , myFaceSetMap(src.myFaceSetMap)
65 , myUniformOrder(src.myUniformOrder)
67 , myClosed(src.myClosed)
68 , myUseBreakpoints(src.myUseBreakpoints)
69 , myBreakpointParameterization(src.myBreakpointParameterization)
81 bool use_breakpoints =
false,
84 , myCurveOffsets(counts)
94 , myUseBreakpoints(use_breakpoints)
95 , myBreakpointParameterization(breakpoint_parameterization)
107 bool use_breakpoints =
false,
114 , myUseBreakpoints(use_breakpoints)
115 , myBreakpointParameterization(breakpoint_parameterization)
117 init(basis, vtx_counts, vertex, uniform, detail, wrap, indexing, closed, use_breakpoints, breakpoint_parameterization);
125 const char *
className()
const override {
return "GT_PrimCurveMesh"; }
160 bool use_breakpoint_size =
false,
199 {
return setBasis(getBasis(), order); }
201 {
return setBasis(getBasis(), order); }
212 fpreal lod_scale = -1)
const;
244 {
return myCurveOffsets; }
248 {
return myUniform; }
256 {
return myUseBreakpoints; }
258 {
return myBreakpointParameterization; }
263 return myKnots ? myKnotOffsets.getOffset(curve) : 0;
270 return (myUniformOrder > 0) ? myUniformOrder
300 { myFaceSetMap =
v; }
301 void addFaceSet(
const char *
name,
310 {
return myUniform; }
317 {
return myCurveOffsets.getOffset(face); }
320 {
return myCurveOffsets.getCount(face); }
353 bool myUseBreakpoints;
SIM_API const UT_StringHolder vertex
virtual int getMotionSegments() const =0
bool getUseBreakpoints() const
Keep track of merging of attribute maps.
const GT_FaceSetMapPtr & faceSetMap() const
virtual bool refine(GT_Refine &refiner, const GT_RefineParms *parms=NULL) const
virtual const GT_ViewportRefineOptions & viewportRefineOptions() const
virtual int getPrimitiveType() const
virtual fpreal computePerimeter(int seg=0) const
const char * className() const override
GT_PrimCurveMesh(const GT_PrimCurveMesh &src, const GT_AttributeListHandle &vattrib, const GT_AttributeListHandle &uattrib, const GT_AttributeListHandle &dattrib)
GT_Size getVertexCount(GT_Offset face) const
Return the length of the vertex list for the given face.
const GT_AttributeListHandle & getUniformAttributes() const override
Class which writes ASCII or binary JSON streams.
void setFaceSetMap(const GT_FaceSetMapPtr &v)
bool isUniformOrder() const
Check to see whether all curves have the same order.
GT_PrimCurveMesh(const GT_PrimCurveMesh &src, GT_Basis basis, const GT_CountArray &counts, const GT_AttributeListHandle &vattrib, const GT_AttributeListHandle &uattrib, const GT_AttributeListHandle &dattrib, bool wrap, const GT_FaceSetMapPtr &fsets, bool closed=false, bool use_breakpoints=false, GT_Parameterization breakpoint_parameterization=GT_PARAMETERIZATION_CHORD)
bool setOrder(const GT_DataArrayHandle &order)
GT_PrimitiveHandle doSoftCopy() const override
Abstract data class for an array of float, int or string data.
virtual void enlargeRenderBounds(UT_BoundingBox boxes[], int nsegments) const
const GT_AttributeListHandle & getDetail() const
GLdouble GLdouble GLint GLint order
GLuint const GLchar * name
GT_Offset getVertexOffset(GT_Offset face) const
Return the offset into the vertex list for the given face.
GT_PrimCurveMesh(const GT_PrimCurveMesh &src)
Copy c-tor.
GLboolean GLboolean GLboolean b
The base class for all GT primitive types.
const GT_DataArrayHandle knots() const
virtual GT_PrimitiveHandle doHarden() const
GT_Basis getBasis() const
virtual int64 getMemoryUsage() const =0
Processes primitives generated by refinement process.
const GT_AttributeListHandle & getVertexAttributes() const override
GT_Parameterization getBreakpointsParameterization() const
const GT_CountArray & getCurveCountArray() const
const GT_AttributeListHandle & getDetailAttributes() const override
int getOrder(GT_Offset curve) const
Return the order for a given curve.
const GT_AttributeListHandle & getUniform() const
virtual bool save(UT_JSONWriter &w) const
GT_Offset knotOffset(GT_Offset curve) const
const GT_DataArrayHandle & varyingOrders() const
Return the varying orders (may be NULL)
GLubyte GLubyte GLubyte GLubyte w
A single linear or cubic patch.
virtual GT_PrimitiveHandle doAttributeMerge(const GT_Primitive &src, const UT_StringMMPattern *vertex, const UT_StringMMPattern *point, const UT_StringMMPattern *uniform, const UT_StringMMPattern *detail) const
The virtual implementation of attribute merging.
virtual void enlargeBounds(UT_BoundingBox boxes[], int nsegments) const =0
const GT_AttributeListHandle & getVertex() const
GT_PrimCurveMesh(GT_Basis basis, const GT_DataArrayHandle &vtx_counts, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail, bool wrap, GT_IndexingMode indexing=GT_INDEXING_QUICK, bool closed=false, bool use_breakpoints=false, GT_Parameterization breakpoint_parameterization=GT_PARAMETERIZATION_CHORD)
Useful constructor.