38 #if !GA_PRIMITIVE_VERTEXLIST
51 virtual const GA_Basis *getFaceBasis()
const;
77 #if !GA_PRIMITIVE_VERTEXLIST
83 int ptindexdiff)
override;
88 unsigned du=0,
int uOffset=-1)
const = 0;
99 #if !GA_PRIMITIVE_VERTEXLIST
105 virtual unsigned getOrder()
const = 0;
108 #if GA_PRIMITIVE_VERTEXLIST
110 void setSize(
GA_Size nvertices)
124 virtual int removeRepeatedVertices(
int check_order = 0);
131 virtual int deleteVertex(
GA_Size i);
133 #if !GA_PRIMITIVE_VERTEXLIST
153 if (i >= 0 && i < myVertexList.entries())
161 bool isClosed()
const {
return myVertexList.getExtraFlag(); }
162 virtual void close(
int rounded = 1,
int preserveShape = 0);
163 virtual void open(
int preserveShape = 0,
int safe = 0);
165 int isClockwise()
const;
175 float &uctr,
float &vctr)
const override;
178 void sampleEnds(
int n);
180 #if !GA_PRIMITIVE_VERTEXLIST
183 void *
data = 0)
const;
188 virtual int cycle(
int amount,
int = 1);
195 virtual void validInterval(
int &
a,
int &
b )
const;
198 validRangeImpl(ua, ub);
203 validRangeImpl(ua64, ub64);
204 ua = ua64; ub = ub64;
223 virtual bool evaluateBreakSegm(
int ustartidx,
int ustopidx,
231 virtual GD_TrimLoop *trimLoop(
float ustart,
float ustop)
const = 0;
235 float tol = 1E-4F)
const;
237 virtual int breakCount()
const = 0;
254 virtual bool savePrivateH9(std::ostream &os,
bool binary)
const = 0;
255 virtual bool loadPrivateH9(
UT_IStream &is) = 0;
258 bool dry_run=
false)
override;
261 bool dry_run=
false)
override;
265 virtual bool validate()
const;
268 int multipleInsert(
unsigned int where,
270 unsigned int appendPoints = 1);
272 #if !GA_PRIMITIVE_VERTEXLIST
285 #if !GA_PRIMITIVE_VERTEXLIST
virtual int getBBox(UT_BoundingBox *bbox) const
bool isDegenerate() const override
Is the primitive degenerate.
bool saveH9(std::ostream &os, bool binary, const UT_Array< GA_AttribSaveDataH9 > &prim_attribs, const UT_Array< GA_AttribSaveDataH9 > &vtx_attribs) const override
SYS_FORCE_INLINE GA_Detail & getDetail() const
virtual void clearForDeletion()
static GA_IntrinsicManager::Registrar registerIntrinsics(GA_PrimitiveDefinition &definition)
Used to pass options and map offset values during saving.
friend std::ostream & operator<<(std::ostream &os, const GD_Face &d)
virtual UT_Vector3 baryCenter() const
UT_Vector2T< float > UT_Vector2
const GLuint GLenum const void * binary
virtual int detachPoints(GA_PointGroup &grp)
GLboolean GLboolean GLboolean GLboolean a
virtual void addToBSphere(UT_BoundingSphere *bsphere) const
virtual void addPointRefToGroup(GA_PointGroup &grp) const
virtual GA_DereferenceStatus dereferencePoint(GA_Offset point, bool dry_run=false)=0
JSON reader class which handles parsing of JSON or bJSON files.
Class which writes ASCII or binary JSON streams.
Abstract base class for a range membership query object.
virtual GA_Size getVertexCount() const
GD_Face(GD_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
virtual GD_Primitive * copy(int preserve_shared_pts=0) const
void setVertexPoint(GA_Size i, GA_Offset ptoff)
virtual void swapVertexOffsets(const GA_Defragment &defrag)
void wireVertex(GA_Offset vertex, GA_Offset point)
exint GA_Size
Defines the bit width for index and offset types in GA.
SYS_FORCE_INLINE int64 getBaseMemoryUsage() const
Report approximate memory usage for myVertexList for subclasses.
virtual bool loadH9(UT_IStream &is, const UT_Array< GA_AttribLoadDataH9 > &prim_attribs, const UT_Array< GA_AttribLoadDataH9 > &vtx_attribs)
#define GA_INVALID_OFFSET
GA_OffsetList myVertexList
static const UT_Array< GA_AttribSaveDataH9 > & theEmptySaveAttribs
Convience objects to pass as arguments to saveH9()/loadH9().
virtual void getBRect(UT_BoundingRect *brect) const
SYS_FORCE_INLINE UT_Vector3 getPos3(GA_Size i) const
Bezier or NURBS basis classes which maintain knot vectors.
A handle to simplify manipulation of multiple attributes.
virtual UT_Vector3 computeNormal() const
Defragmentation of IndexMaps.
SYS_FORCE_INLINE GA_Offset vertexPoint(GA_Offset vertex) const
Given a vertex, return the point it references.
virtual void weights(unsigned short)
GLboolean GLboolean GLboolean b
UT_Vector2 getPos2(GA_Size index) const
virtual int isVisible() const
virtual GA_DereferenceStatus dereferencePoints(const GA_RangeMemberQuery &pt_q, bool dry_run=false)=0
virtual bool saveH9(std::ostream &os, bool binary, const UT_Array< GA_AttribSaveDataH9 > &prim_attribs, const UT_Array< GA_AttribSaveDataH9 > &vtx_attribs) const
GA_Offset vertexPoint(unsigned int i) const
virtual int visibleBaryCenter(float &uctr, float &vctr) const
GLfloat GLfloat GLfloat GLfloat h
void validRange(fpreal32 &ua, fpreal32 &ub) const
void setNumVertices(GA_Size nvertices)
SYS_FORCE_INLINE GA_Offset getVertexOffset(GA_Size primvertexnum) const
Class to store JSON objects as C++ objects.
void validRange(fpreal64 &ua, fpreal64 &ub) const
GLubyte GLubyte GLubyte GLubyte w
Definition of a geometric primitive.
constexpr SYS_FORCE_INLINE T & y() noexcept
virtual bool vertexApply(bool(*apply)(GA_Offset vtx, void *), void *data=0) const =0
void countBaseMemory(UT_MemoryCounter &counter) const
static GA_IntrinsicManager::Registrar registerIntrinsics(GA_PrimitiveDefinition &definition)
SYS_FORCE_INLINE bool isClosed() const
constexpr SYS_FORCE_INLINE T & x() noexcept