17 #ifndef __GEO_Quadric_H__
18 #define __GEO_Quadric_H__
138 bool dry_run=
false)
override;
141 bool dry_run=
false)
override;
176 void assignVertex(
GA_Offset new_vtx,
bool update_topology);
195 bool append_points=
true);
198 void stashed(
bool beingstashed,
204 float ulength,
float vlength,
205 float &uparm,
float &vparm)
const override;
207 float ulength,
float vlength,
208 float &uparm,
float &vparm,
209 float tolerance)
const override;
212 float uparm,
float vparm,
213 float &ulength,
float &vlength)
const override;
225 virtual bool savePrivateH9(std::ostream &os,
bool binary)
const;
void setTransform(const UT_Matrix3 &m)
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
virtual void copyPrimitive(const GEO_Primitive *src)=0
SYS_FORCE_INLINE GA_Index getPointIndex() const
The fast point index accessor.
SYS_FORCE_INLINE GA_Index getVertexIndex(GA_Size primvertexnum) const
virtual UT_Vector3D computeNormalD() const =0
#define SYS_DEPRECATED_PUSH_DISABLE()
#define SYS_DEPRECATED_POP_DISABLE()
virtual void copySubclassData(const GA_Primitive *source)
SYS_FORCE_INLINE void setPos4(const UT_Vector4 &pos) const
bool enlargeBoundingBox(UT_BoundingRect &b, const GA_Attribute *p) const override
const GLuint GLenum const void * binary
GLdouble GLdouble GLdouble z
SYS_FORCE_INLINE void setPointOffset(GA_Size i, GA_Offset ptoff)
SYS_FORCE_INLINE void setPos3(const UT_Vector3 &pos) 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.
const UT_Matrix3 & getTransform() const
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
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.
GLsizei GLsizei GLchar * source
SYS_FORCE_INLINE UT_Vector4 getPos4(GA_Size i) const
A handle to simplify manipulation of multiple attributes.
#define GEO_FAMILY_QUADRIC
GLboolean GLboolean GLboolean b
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
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
SYS_FORCE_INLINE GA_Index getPointIndex(GA_Size i) const
SYS_FORCE_INLINE void setPos3(GA_Size i, const UT_Vector3 &pos) const
virtual void unitLengthToUnitPair(float ulength, float vlength, float &uparm, float &vparm) const
SYS_FORCE_INLINE UT_Vector3 getPos3() const
The fast point position accessor.
virtual bool evaluateBaryCenterRefMap(GA_Offset result_vtx, GA_AttributeRefMap &map) const
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 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().
void reverse() override
Reverse the order of vertices.
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_Index getVertexIndex() const
The fast vertex index accessor.
virtual bool getBBox(UT_BoundingBox *bbox) const =0
SYS_FORCE_INLINE GA_Offset vertexPoint() const
static GA_PrimitiveFamilyMask buildFamilyMask()
Return the family mask for all quadric sub-classes.
SYS_FORCE_INLINE void setPointOffset(GA_Offset ptoff)
SYS_FORCE_INLINE GA_Offset getVertexOffset(GA_Size primvertexnum) const
SYS_FORCE_INLINE GA_Offset getVertexOffset() const
The fast vertex offset accessor.
Container class for all geometry.
bool isQuadric() const override
SYS_FORCE_INLINE UT_Vector4 getPos4() const
SYS_FORCE_INLINE GA_Offset getPointOffset() const
The fast point offset accessor.
virtual void stashed(bool beingstashed, GA_Offset offset=GA_INVALID_OFFSET)
friend std::ostream & operator<<(std::ostream &os, const GEO_Quadric &d)