HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_PrimSphere Class Reference

#include <GU_PrimSphere.h>

+ Inheritance diagram for GU_PrimSphere:

Public Member Functions

 GU_PrimSphere (GU_Detail *gdp, GA_Offset offset=GA_INVALID_OFFSET)
 NOTE: This constructor should only be called via GU_PrimitiveFactory. More...
 
virtual int64 getMemoryUsage () const
 Report approximate memory usage. More...
 
virtual void countMemory (UT_MemoryCounter &counter) const
 
virtual const
GA_PrimitiveDefinition
getTypeDef () const
 
virtual GEO_Primitiveconvert (GEO_ConvertParms &parms, GA_PointGroup *usedpts=0)
 
virtual GEO_PrimitiveconvertNew (GEO_ConvertParms &parms)
 
virtual void normal (NormalComp &output) const
 
virtual int intersectRay (const UT_Vector3 &o, const UT_Vector3 &d, float tmax=1E17F, float tol=1E-12F, float *distance=0, UT_Vector3 *pos=0, UT_Vector3 *nml=0, int accurate=0, float *u=0, float *v=0, int ignoretrim=1) const
 
- Public Member Functions inherited from GEO_PrimSphere
virtual int evaluateNormalVector (UT_Vector3 &nml, float u, float v=0, float w=0) const
 
virtual int getBBox (UT_BoundingBox *bbox) const
 
virtual void addToBSphere (UT_BoundingSphere *bsphere) const
 
virtual bool hasGuideEdge (int edgeid, UT_Vector3 &a, UT_Vector3 &b) const
 
virtual bool hasXsectPoint (int pointid, UT_Vector3 &p) const
 
virtual fpreal calcVolume (const UT_Vector3 &refpt) const
 
virtual fpreal calcArea () const
 
virtual fpreal calcPerimeter () const
 
virtual const GA_PrimitiveJSONgetJSON () const
 
- Public Member Functions inherited from GEO_Quadric
virtual bool enlargeBoundingSphere (UT_BoundingSphere &b, const GA_Attribute *P) const
 
virtual UT_Vector3 baryCenter () const
 
virtual UT_Vector3 computeNormal () const
 Return a normal vector for the primitive. More...
 
virtual bool saveH9 (std::ostream &os, bool binary, const UT_Array< GA_AttribSaveDataH9 > &prim_attribs, const UT_Array< GA_AttribSaveDataH9 > &vtx_attribs) const
 
virtual bool loadH9 (UT_IStream &is, const UT_Array< GA_AttribLoadDataH9 > &prim_attribs, const UT_Array< GA_AttribLoadDataH9 > &vtx_attribs)
 
virtual void transform (const UT_Matrix4 &mat)
 
virtual GEO_Primitivecopy (int preserve_shared_pts=0) const
 
virtual void copyPrimitive (const GEO_Primitive *src)
 
virtual void copyUnwiredForMerge (const GA_Primitive *src, const GA_MergeMap &map)
 
virtual void addPointRefToGroup (GA_PointGroup &grp) const
 
virtual bool vertexApply (bool(*apply)(GA_Offset vtx, void *), void *data=0) const
 
virtual void reverse ()
 Reverse the order of vertices. More...
 
virtual GA_Size getVertexCount () const
 
virtual GA_Offset getVertexOffset (GA_Size index) const
 
SYS_FORCE_INLINE GA_Size getFastVertexCount () const
 NOTE: Getting the vertex count of a quadric is rather unnecessary. More...
 
SYS_FORCE_INLINE GA_Offset getVertexOffset () const
 The fast vertex offset accessor. More...
 
SYS_FORCE_INLINE GA_Index getVertexIndex () const
 The fast vertex index accessor. More...
 
SYS_FORCE_INLINE GA_Offset getPointOffset () const
 The fast point offset accessor. More...
 
GA_Offset getPointOffset (GA_Size i) const
 
SYS_FORCE_INLINE GA_Index getPointIndex () const
 The fast point index accessor. More...
 
GA_Index getPointIndex (GA_Size i) const
 
UT_Vector3 getPos3 () const
 The fast point position accessor. More...
 
void setPos3 (const UT_Vector3 &pos) const
 
UT_Vector4 getPos4 () const
 
void setPos4 (const UT_Vector4 &pos) const
 
void setPointOffset (GA_Offset ptoff) const
 
virtual int detachPoints (GA_PointGroup &grp)
 
virtual GA_DereferenceStatus dereferencePoint (GA_Offset point, bool dry_run=false)
 
virtual GA_DereferenceStatus dereferencePoints (const GA_RangeMemberQuery &pt_q, bool dry_run=false)
 
virtual bool isDegenerate () const
 Is the primitive degenerate. More...
 
void getAxes (UT_Vector3 &x, UT_Vector3 &y, UT_Vector3 &z) const
 
void getXAxis (UT_Vector3 &x) const
 
void getYAxis (UT_Vector3 &y) const
 
void getZAxis (UT_Vector3 &z) const
 
void setAxes (const UT_Vector3 &x, const UT_Vector3 &y, const UT_Vector3 &z)
 
void setXAxis (const UT_Vector3 &x)
 
void setYAxis (const UT_Vector3 &y)
 
void setZAxis (const UT_Vector3 &z)
 
const UT_Matrix3getTransform (void) const
 
void setTransform (const UT_Matrix3 &m)
 
void getTransform4 (UT_Matrix4 &matx) const
 
void setTransform4 (const UT_Matrix4 &matx)
 
virtual void getLocalTransform (UT_Matrix3D &x) const
 
virtual void setLocalTransform (const UT_Matrix3D &x)
 Set the local transform. The default implementation does nothing. More...
 
SYS_FORCE_INLINE void setVertexPoint (GA_Offset pt)
 
void assignVertex (GA_Offset new_vtx, bool update_topology)
 
virtual void stashed (bool beingstashed, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual void unitLengthToUnitPair (float ulength, float vlength, float &uparm, float &vparm) const
 
virtual void unitLengthToUnitPair (float ulength, float vlength, float &uparm, float &vparm, float tolerance) const
 
virtual void unitToUnitLengthPair (float uparm, float vparm, float &ulength, float &vlength) const
 
virtual bool isQuadric () const
 
virtual bool enlargeBoundingBox (UT_BoundingRect &b, const GA_Attribute *P) const
 
virtual bool enlargeBoundingBox (UT_BoundingBox &b, const GA_Attribute *P) const
 
virtual void enlargePointBounds (UT_BoundingBox &e) const
 
- Public Member Functions inherited from GEO_Primitive
virtual GA_PrimCompat::TypeMask getPrimitiveId () const
 
void copyAttributesAndGroups (const GEO_Primitive &src, bool copy_groups=true)
 
void copyAttributesAndGroups (const GEO_Primitive &src, GA_AttributeRefMap &gah, bool copy_groups=true)
 
void copyAttributesAndGroups (const GEO_Primitive &src, GA_PrimitiveWrangler &wrangler, bool copy_groups=true)
 NOTE: The copying of groups only works if src is in the same detail. More...
 
void copyAttributeData (const GEO_Primitive &src)
 
void copyAttributeData (const GEO_Primitive &src, GA_AttributeRefMap &gah)
 
void copyAttributeData (const GEO_Primitive &src, GA_PrimitiveWrangler &wrangler)
 
void copyAttributeValues (const GEO_Primitive &src, GA_PrimitiveWrangler &wrangler)
 
void copyGroupMembership (const GEO_Primitive &src)
 
virtual void realToUnitPair (float ureal, float vreal, float &uunit, float &vunit) const
 
virtual void unitToRealPair (float uunit, float vunit, float &ureal, float &vreal) const
 
bool evaluateBaryCenter (GA_Offset result_vtx, GA_AttributeRefMap &map) const
 
bool evaluatePoint (GA_Offset result_vtx, GA_AttributeRefMap &map, fpreal u, fpreal v=0, uint du=0, uint dv=0) const
 
int evaluatePoint (UT_Vector4 &pos, float u, float v=0, unsigned du=0, unsigned dv=0) const
 
bool evaluateInteriorPoint (GA_Offset result_vtx, GA_AttributeRefMap &map, fpreal u, fpreal v, fpreal w=0) const
 
int evaluateInteriorPoint (UT_Vector4 &pos, fpreal u, fpreal v, fpreal w=0) const
 
virtual void computeInteriorPointWeights (UT_Array< GA_Offset > &vtxlist, UT_Array< float > &weightlist, fpreal u, fpreal v, fpreal w) const
 
SYS_FORCE_INLINE GEO_DetailgetParent () const
 
virtual void isolate ()
 Method to isolate a pasted surface. More...
 
virtual bool hasEdge (const GA_Edge &edge) const
 Method to determine if a primitive has an edge (undirected). More...
 
GEO_Vertex getVertexElement (GA_Size i) const
 
virtual GEO_MetaPrimcastToMetaPrim (void)
 
virtual const GEO_MetaPrimcastToMetaPrim (void) const
 
virtual int parametricBBox (float u, float v, float *u0, float *u1, float *v0, float *v1)
 
virtual float uvDist (float u1, float v1, float u2, float v2) const
 
int bboxIntersectRay (const UT_Vector3 &rayorig, const UT_Vector3 &raydir, int maxtries=10, float tmax=1E17F, float *distance=0, UT_Vector3 *nml=0) const
 
virtual void clip (UT_Vector3 normal, float distance=0, GA_PrimitiveGroup *clipgrp=NULL)
 
- Public Member Functions inherited from GA_Primitive
virtual ~GA_Primitive ()
 
const char * getTypeName () const
 
SYS_FORCE_INLINE GA_DetailgetDetail () const
 
SYS_FORCE_INLINE GA_Offset getMapOffset () const
 Gets the offset of this primitive in the detail containing it. More...
 
SYS_FORCE_INLINE GA_Index getMapIndex () const
 Gets the index of this primitive in the detail containing it. More...
 
SYS_FORCE_INLINE const
GA_IndexMap
getIndexMap () const
 Gets the index map for primitives in the detail containing this primitive. More...
 
GA_Index getNum () const
 
void swapOffsetValue (const GA_Defragment &defrag)
 For defragmentation, we need to update the offset. More...
 
bool isPrimary () const
 
SYS_FORCE_INLINE const
GA_PrimitiveTypeId
getTypeId () const
 
GA_PrimitiveFamilyMask getFamilyMask () const
 
bool isFamily (unsigned family_mask) const
 
bool hasLocalTransform () const
 Whether the primitive has a transform associated with it. More...
 
virtual void getLocalTransform4 (UT_Matrix4D &matrix) const
 
SYS_FORCE_INLINE GA_Size getVertexCount () const
 Return the number of vertices used by this primitive. More...
 
SYS_FORCE_INLINE GA_Offset getVertexOffset (GA_Size primvertexnum) const
 
SYS_FORCE_INLINE GA_Index getVertexIndex (GA_Size primvertexnum) const
 
SYS_FORCE_INLINE GA_Offset getPointOffset (GA_Size i) const
 
SYS_FORCE_INLINE void setPointOffset (GA_Size i, GA_Offset ptoff)
 
SYS_FORCE_INLINE GA_Index getPointIndex (GA_Size i) const
 
SYS_FORCE_INLINE UT_Vector3 getPos3 (GA_Size i) const
 
SYS_FORCE_INLINE void setPos3 (GA_Size i, const UT_Vector3 &pos) const
 
SYS_FORCE_INLINE UT_Vector4 getPos4 (GA_Size i) const
 
SYS_FORCE_INLINE void setPos4 (GA_Size i, const UT_Vector4 &pos) const
 
GA_Range getVertexRange (bool harden=false) const
 Get a range of all the vertices accessed by the primitive. More...
 
GA_Range getPointRange (bool harden=false) const
 
bool isPointUsed (GA_Offset ptoff) const
 
void addPointRefToGroup (GA_PointGroup &grp) const
 
void edgeApply (GA_EdgeApplyFunc apply, void *data=nullptr) const
 
void edgeApplyIndex (GA_EdgeApplyIndexFunc apply, void *data=nullptr) const
 
virtual void iterateEdges (GA_IterateEdgesFunc apply_func) const
 
virtual void iterateEdgesByVertex (GA_IterateEdgesByVertexFunc apply_func) const
 
bool findEdgePoints (GA_Offset ptoff0, GA_Offset ptoff1, GA_Size &vtx0, GA_Size &vtx1) const
 
virtual bool saveSharedLoadData (UT_JSONWriter &w, GA_SaveMap &save, GA_GeometryIndex *geometryIndex) const
 
virtual bool registerSharedLoadData (int load_data_type, GA_SharedDataHandlePtr item)
 
const GA_IntrinsicManagergetIntrinsicManager () const
 
virtual void getAdjacentBoundaryVertices (GA_Offset vtx, GA_Offset &prev_vtx, GA_Offset &next_vtx) const
 
virtual bool supportsHedge () const
 
virtual GA_Offset releaseVertex (GA_Offset vtx)
 
virtual int isVisible () const
 
virtual unsigned getNumSecondaryDetails () const
 A primitive may support any number of secondary details. More...
 
virtual const GA_DetailgetSecondaryDetail (GA_Index i) const
 
virtual GA_DetailgetSecondaryDetail (GA_Index i)
 
GA_Index getNumSecondary (GA_Index detail) const
 
const GA_PrimitivegetSecondaryByIndex (GA_Index detail, GA_Index i) const
 
GA_PrimitivegetSecondaryByIndex (GA_Index detail, GA_Index i)
 
const GA_PrimitivegetSecondaryByOffset (GA_Index detail, GA_Offset o) const
 
GA_PrimitivegetSecondaryByOffset (GA_Index detail, GA_Offset o)
 
SYS_FORCE_INLINE bool isVertexListTrivial () const
 
bool isPointListTrivial () const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachVertex (FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPoint (FUNCTOR &&functor) const
 
bool vertexApply (bool(*apply)(GA_Offset vtx, void *), void *data=nullptr) const
 
virtual void flushCEWriteCaches ()
 Copy any modified caches from the GPU back to CPU cache. More...
 
virtual void flushCECaches ()
 
GA_LocalIntrinsic findIntrinsic (const char *nm) const
 
GA_LocalIntrinsic findIntrinsic (GA_GlobalIntrinsic h) const
 
GA_GlobalIntrinsic findGlobalIntrinsic (GA_LocalIntrinsic h) const
 
const char * getIntrinsicName (GA_LocalIntrinsic h) const
 
GA_Size getIntrinsicTupleSize (GA_LocalIntrinsic h) const
 
GA_StorageClass getIntrinsicStorage (GA_LocalIntrinsic h) const
 
bool getIntrinsicReadOnly (GA_LocalIntrinsic h) const
 
const UT_OptionsgetIntrinsicOptions (GA_LocalIntrinsic h) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, UT_String &val) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, UT_StringArray &val) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, int64 *v, GA_Size size) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, fpreal64 *v, GA_Size sz) const
 
bool getIntrinsic (GA_LocalIntrinsic h, float &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, int &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector2 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector3 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector4 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix2 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix3 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix4 &v) const
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const char *value)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const UT_StringArray &value)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const char **val, GA_Size s)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const int64 val)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const fpreal64 val)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const int64 *val, GA_Size sz)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const fpreal64 *v, GA_Size sz)
 

Static Public Member Functions

static GEO_Primitivebuild (const GU_PrimSphereParms &parms, GA_PrimitiveTypeId type=GEO_PRIMSPHERE)
 
- Static Public Member Functions inherited from GEO_PrimSphere
static GEO_PrimSpherebuild (GA_Detail &detail, GA_Offset existing_ptoff=GA_INVALID_OFFSET)
 
static GA_Offset buildBlock (GA_Detail &detail, GA_Size nspheres, bool append_points=true)
 
- Static Public Member Functions inherited from GEO_Quadric
static GEO_Quadricbuild (GA_Detail &detail, GA_PrimitiveTypeId type, GA_Offset existing_ptoff=GA_INVALID_OFFSET)
 
static GA_Offset buildBlock (GA_Detail &detail, GA_PrimitiveTypeId type, GA_Size nprims, bool append_points=true)
 
- Static Public Member Functions inherited from GEO_Primitive
static GA_PrimCompat::TypeMask getPrimitiveMaskH9 (const char *maskstr)
 
- Static Public Member Functions inherited from GA_Primitive
static SYS_FORCE_INLINE
GA_PrimCompat::TypeMask 
primCompatMaskFromTypeId (int type_id)
 

Protected Member Functions

virtual ~GU_PrimSphere ()
 
- Protected Member Functions inherited from GEO_PrimSphere
 GEO_PrimSphere (GEO_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual ~GEO_PrimSphere ()
 
virtual bool evaluatePointRefMap (GA_Offset result_vtx, GA_AttributeRefMap &hlist, fpreal u, fpreal v, unsigned du, unsigned dv) const
 
virtual int evaluatePointV4 (UT_Vector4 &pos, float u, float v=0, unsigned du=0, unsigned dv=0) const
 
- Protected Member Functions inherited from GEO_Quadric
 GEO_Quadric (GEO_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual ~GEO_Quadric ()
 
 GA_DECLARE_INTRINSICS (GA_NO_OVERRIDE)
 
virtual void clearForDeletion ()
 
virtual bool savePrivateH9 (std::ostream &os, bool binary) const
 
virtual bool loadPrivateH9 (UT_IStream &is)
 
SYS_FORCE_INLINE GA_Offset vertexPoint () const
 
virtual void swapVertexOffsets (const GA_Defragment &defrag)
 Defragmentation. More...
 
virtual bool evaluateBaryCenterRefMap (GA_Offset result_vertex, GA_AttributeRefMap &hlist) const
 
- Protected Member Functions inherited from GEO_Primitive
SYS_FORCE_INLINE GEO_Primitive (GA_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual ~GEO_Primitive ()
 
virtual bool evaluatePointRefMap (GA_Offset result_vtx, GA_AttributeRefMap &map, fpreal u, fpreal v=0, uint du=0, uint dv=0) const =0
 
virtual bool evaluateInteriorPointRefMap (GA_Offset result_vtx, GA_AttributeRefMap &map, fpreal u, fpreal v, fpreal w=0) const
 
virtual int evaluateInteriorPointV4 (UT_Vector4 &pos, fpreal u, fpreal v, fpreal w=0) const
 
- Protected Member Functions inherited from GA_Primitive
SYS_FORCE_INLINE GA_Primitive (GA_Detail &detail, GA_Offset offset=GA_INVALID_OFFSET)
 
void setNumVertices (GA_Size nvertices)
 
GA_Offset allocateVertex (GA_Offset point=GA_INVALID_OFFSET)
 allocateVertex() will call wireVertex() if the point given is not -1 More...
 
void destroyVertex (GA_Offset vertex)
 
void wireVertex (GA_Offset vertex, GA_Offset point)
 
void registerVertex (GA_Offset vertex)
 
SYS_FORCE_INLINE int64 getBaseMemoryUsage () const
 Report approximate memory usage for myVertexList for subclasses. More...
 
void countBaseMemory (UT_MemoryCounter &counter) const
 
void copyVertexListForMerge (const GA_OffsetListRef &src_vertices, const GA_MergeMap &map)
 

Friends

class GU_PrimitiveFactory
 

Additional Inherited Members

- Public Types inherited from GA_Primitive
enum  GA_DereferenceStatus { GA_DEREFERENCE_FAIL, GA_DEREFERENCE_OK, GA_DEREFERENCE_DEGENERATE, GA_DEREFERENCE_DESTROY }
 
- Static Public Attributes inherited from GEO_Primitive
static const UT_Array
< GA_AttribSaveDataH9 > & 
theEmptySaveAttribs
 Convience objects to pass as arguments to saveH9()/loadH9(). More...
 
- Static Protected Member Functions inherited from GEO_PrimSphere
static GA_PrimitiveFamilyMask buildFamilyMask ()
 
static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveDefinition &defn)
 
- Static Protected Member Functions inherited from GEO_Quadric
static GA_PrimitiveFamilyMask buildFamilyMask ()
 Return the family mask for all quadric sub-classes. More...
 
- Static Protected Member Functions inherited from GEO_Primitive
static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveDefinition &defn)
 
- Protected Attributes inherited from GA_Primitive
GA_OffsetList myVertexList
 

Detailed Description

Definition at line 61 of file GU_PrimSphere.h.

Constructor & Destructor Documentation

virtual GU_PrimSphere::~GU_PrimSphere ( )
inlineprotectedvirtual

NOTE: Primitives should not be deleted directly. They are managed by the GA_PrimitiveList and the stash.

Definition at line 66 of file GU_PrimSphere.h.

GU_PrimSphere::GU_PrimSphere ( GU_Detail gdp,
GA_Offset  offset = GA_INVALID_OFFSET 
)
inline

NOTE: This constructor should only be called via GU_PrimitiveFactory.

Definition at line 70 of file GU_PrimSphere.h.

Member Function Documentation

static GEO_Primitive* GU_PrimSphere::build ( const GU_PrimSphereParms parms,
GA_PrimitiveTypeId  type = GEO_PRIMSPHERE 
)
static
virtual GEO_Primitive* GU_PrimSphere::convert ( GEO_ConvertParms parms,
GA_PointGroup usedpts = 0 
)
virtual

Implements GEO_Primitive.

virtual GEO_Primitive* GU_PrimSphere::convertNew ( GEO_ConvertParms parms)
virtual

Implements GEO_Primitive.

virtual void GU_PrimSphere::countMemory ( UT_MemoryCounter counter) const
virtual

Count memory usage using a UT_MemoryCounter in order to count shared memory correctly. NOTE: This should always include sizeof(*this).

Reimplemented from GA_Primitive.

virtual int64 GU_PrimSphere::getMemoryUsage ( ) const
virtual

Report approximate memory usage.

Reimplemented from GA_Primitive.

virtual const GA_PrimitiveDefinition& GU_PrimSphere::getTypeDef ( ) const
inlinevirtual

Implements GA_Primitive.

Definition at line 82 of file GU_PrimSphere.h.

virtual int GU_PrimSphere::intersectRay ( const UT_Vector3 o,
const UT_Vector3 d,
float  tmax = 1E17F,
float  tol = 1E-12F,
float *  distance = 0,
UT_Vector3 pos = 0,
UT_Vector3 nml = 0,
int  accurate = 0,
float *  u = 0,
float *  v = 0,
int  ignoretrim = 1 
) const
virtual

Reimplemented from GEO_Primitive.

virtual void GU_PrimSphere::normal ( NormalComp output) const
virtual

Implements GEO_Primitive.

Friends And Related Function Documentation

friend class GU_PrimitiveFactory
friend

Definition at line 126 of file GU_PrimSphere.h.


The documentation for this class was generated from the following file: