17 #ifndef __GEO_Quadric_H__
18 #define __GEO_Quadric_H__
37 #if !GA_PRIMITIVE_VERTEXLIST
84 #if !GA_PRIMITIVE_VERTEXLIST
88 void *
data = 0)
const;
92 #if GA_PRIMITIVE_VERTEXLIST
108 #if GA_PRIMITIVE_VERTEXLIST
117 #if GA_PRIMITIVE_VERTEXLIST
125 #if GA_PRIMITIVE_VERTEXLIST
130 #if !GA_PRIMITIVE_VERTEXLIST
142 #if GA_PRIMITIVE_VERTEXLIST
147 #if !GA_PRIMITIVE_VERTEXLIST
157 #if GA_PRIMITIVE_VERTEXLIST
235 void assignVertex(
GA_Offset new_vtx,
bool update_topology);
254 bool append_points=
true);
257 virtual void stashed(
bool beingstashed,
263 float &uparm,
float &vparm)
const;
266 float &ulength,
float &vlength)
280 #if !GA_PRIMITIVE_VERTEXLIST
284 virtual bool savePrivateH9(std::ostream &os,
bool binary)
const;
291 #if !GA_PRIMITIVE_VERTEXLIST
300 #if !GA_PRIMITIVE_VERTEXLIST
UT_Vector4 getPos4() const
virtual void copyUnwiredForMerge(const GA_Primitive *src, const GA_MergeMap &map)
void setTransform(const UT_Matrix3 &m)
SYS_FORCE_INLINE void setPos3(GA_Offset ptoff, const UT_Vector3 &P)
Set P from a UT_Vector3.
Definition of a geometry attribute.
virtual GEO_Primitive * copy(int preserve_shared_pts=0) const
SYS_FORCE_INLINE GA_Offset getPointOffset(GA_Size i) const
virtual UT_Vector3 baryCenter() const
SYS_FORCE_INLINE GA_Detail & getDetail() const
virtual void copyPrimitive(const GEO_Primitive *src)=0
virtual void clearForDeletion()
SYS_FORCE_INLINE GA_Size getVertexCount() const
Return the number of vertices used by this primitive.
SYS_FORCE_INLINE GA_Index getPointIndex() const
The fast point index accessor.
SYS_FORCE_INLINE GA_Index getVertexIndex(GA_Size primvertexnum) const
#define SYS_DEPRECATED_PUSH_DISABLE()
UT_Vector4 getPos4(GA_Offset ptoff) const
The ptoff passed is the point offset.
#define SYS_DEPRECATED_POP_DISABLE()
const GLuint GLenum const void * binary
GLdouble GLdouble GLdouble z
void setPos4(const UT_Vector4 &pos) const
The merge map keeps track of information when merging details.
SYS_FORCE_INLINE void setPointOffset(GA_Size i, GA_Offset ptoff)
virtual bool enlargeBoundingBox(UT_BoundingRect &b, const GA_Attribute *P) const
const UT_Matrix3 & getTransform(void) const
virtual GA_DereferenceStatus dereferencePoint(GA_Offset point, bool dry_run=false)=0
SYS_FORCE_INLINE void setVertexPoint(GA_Offset pt)
#define GA_DECLARE_INTRINSICS(OVERRIDE)
Abstract base class for a range membership query object.
SYS_FORCE_INLINE UT_Vector3 getPos3(GA_Offset ptoff) const
The ptoff passed is the point offset.
void setPointOffset(GA_Offset ptoff) const
virtual void swapVertexOffsets(const GA_Defragment &defrag)
virtual void unitToUnitLengthPair(float uparm, float vparm, float &ulength, float &vlength) const
exint GA_Size
Defines the bit width for index and offset types in GA.
virtual bool loadH9(UT_IStream &is, const UT_Array< GA_AttribLoadDataH9 > &prim_attribs, const UT_Array< GA_AttribLoadDataH9 > &vtx_attribs)
virtual UT_Vector3 computeNormal() const =0
Return a normal vector for the primitive.
#define GA_INVALID_OFFSET
SYS_FORCE_INLINE GA_Size getFastVertexCount() const
NOTE: Getting the vertex count of a quadric is rather unnecessary.
virtual bool isDegenerate() const =0
Is the primitive degenerate.
virtual bool enlargeBoundingSphere(UT_BoundingSphere &b, const GA_Attribute *P) const
GA_Offset getPointOffset(GA_Size i) const
SYS_FORCE_INLINE UT_Vector3 getPos3(GA_Size i) const
virtual void setLocalTransform(const UT_Matrix3D &matrix)
Set the local transform. The default implementation does nothing.
void wireVertexPoint(GA_Offset vtx, GA_Offset pt)
SYS_FORCE_INLINE UT_Vector4 getPos4(GA_Size i) const
A handle to simplify manipulation of multiple attributes.
SYS_FORCE_INLINE GA_Index vertexIndex(GA_Offset offset) const
Given a vertex's data offset, return its index.
virtual int getBBox(UT_BoundingBox *bbox) const =0
#define GEO_FAMILY_QUADRIC
Defragmentation of IndexMaps.
SYS_FORCE_INLINE GA_Offset vertexPoint(GA_Offset vertex) const
Given a vertex, return the point it references.
void addPointRefToGroup(GA_PointGroup &grp) const
GLboolean GLboolean GLboolean b
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
virtual void reverse()
Reverse the order of vertices.
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
UT_Vector3 getPos3() const
The fast point position accessor.
SYS_FORCE_INLINE GA_Index getPointIndex(GA_Size i) const
void setPos3(const UT_Vector3 &pos) const
SYS_FORCE_INLINE void setPos3(GA_Size i, const UT_Vector3 &pos) const
GA_Topology & getTopology()
virtual void unitLengthToUnitPair(float ulength, float vlength, float &uparm, float &vparm) const
virtual bool evaluateBaryCenterRefMap(GA_Offset result_vtx, GA_AttributeRefMap &map) const
SYS_FORCE_INLINE GA_Index pointIndex(GA_Offset offset) const
Given a point's data offset, return its index.
SYS_FORCE_INLINE void setPos4(GA_Size i, const UT_Vector4 &pos) const
virtual void transform(const UT_Matrix4 &)
virtual void enlargePointBounds(UT_BoundingBox &box) const
virtual bool vertexApply(bool(*apply)(GA_Offset vtx, void *), void *data=0) const
virtual void getLocalTransform(UT_Matrix3D &matrix) const
virtual int detachPoints(GA_PointGroup &grp)=0
static const UT_Array< GA_AttribSaveDataH9 > & theEmptySaveAttribs
Convience objects to pass as arguments to saveH9()/loadH9().
SYS_FORCE_INLINE GA_Index getVertexIndex() const
The fast vertex index accessor.
SYS_FORCE_INLINE GA_Offset vertexPoint() const
static GA_PrimitiveFamilyMask buildFamilyMask()
Return the family mask for all quadric sub-classes.
virtual bool isQuadric() const
GA_Index getPointIndex(GA_Size i) const
SYS_FORCE_INLINE GA_Offset getVertexOffset(GA_Size primvertexnum) const
GLint GLint GLsizei GLint GLenum GLenum type
SYS_FORCE_INLINE GA_Offset getVertexOffset() const
The fast vertex offset accessor.
Container class for all geometry.
virtual bool saveH9(std::ostream &os, bool binary, const UT_Array< GA_AttribSaveDataH9 > &prim_attribs, const UT_Array< GA_AttribSaveDataH9 > &vtx_attribs) const
SYS_FORCE_INLINE GA_Offset getPointOffset() const
The fast point offset accessor.
void setPos4(GA_Offset ptoff, const UT_Vector4 &P)
Set P from a UT_Vector4.
virtual void stashed(bool beingstashed, GA_Offset offset=GA_INVALID_OFFSET)
friend std::ostream & operator<<(std::ostream &os, const GEO_Quadric &d)