HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GT_PrimQuadric Class Referenceabstract

#include <GT_PrimQuadric.h>

+ Inheritance diagram for GT_PrimQuadric:

Public Member Functions

 GT_PrimQuadric ()
 
 GT_PrimQuadric (const GT_AttributeListHandle &attribs, const GT_TransformHandle &transform, const GT_Parametric &uv=GT_Parametric())
 
 GT_PrimQuadric (const GT_PrimQuadric &src)
 
 GT_PrimQuadric (const GT_PrimQuadric &src, const GT_Parametric &uv)
 Copy the quadric, but with a different parametric range. More...
 
 ~GT_PrimQuadric () override
 
const char * className () const override
 
bool saveQuadric (UT_JSONWriter &w, const char *name) const
 
bool init (const GT_AttributeListHandle &attribs, const GT_TransformHandle &transform, const GT_Parametric &uv)
 
bool refine (GT_Refine &refiner, const GT_RefineParms *parms) const override
 Method defined on GT_Primitive. More...
 
const GT_ViewportRefineOptionsviewportRefineOptions () const override
 Viewport refinement options. More...
 
virtual GT_PrimitiveHandle refineToPolygonMesh (const GT_RefineParms *parms) const
 Convenience method to refine to a polygon mesh. More...
 
virtual void getQBounds (UT_BoundingBox &box) const =0
 
virtual void adjustTesselationCounts (GT_Size &nu, GT_Size &nv) const
 
void enlargeBounds (UT_BoundingBox boxes[], int nsegments) const override
 
int getMotionSegments () const override
 
int64 getMemoryUsage () const override
 
const GT_AttributeListHandlegetAttributes () const
 
const GT_ParametricgetParametric () const
 
const GT_AttributeListHandlegetDetailAttributes () const override
 
GT_PrimitiveHandle splitU ()
 
GT_PrimitiveHandle splitV ()
 
void getQP (UT_Vector3F &P, fpreal u, fpreal v) const
 
void getQP (UT_Vector3D &P, fpreal u, fpreal v) const
 
void getQN (UT_Vector3F &N, fpreal u, fpreal v) const
 
void getQN (UT_Vector3D &N, fpreal u, fpreal v) const
 
virtual void fillQP (UT_Vector3F *P, GT_Size n, const fpreal *u, fpreal v) const =0
 
virtual void fillQP (UT_Vector3D *P, GT_Size n, const fpreal *u, fpreal v) const =0
 
virtual void fillQN (UT_Vector3F *P, GT_Size n, const fpreal *u, fpreal v) const =0
 
virtual void fillQN (UT_Vector3D *P, GT_Size n, const fpreal *u, fpreal v) const =0
 
- Public Member Functions inherited from GT_Primitive
 GT_Primitive ()
 
 GT_Primitive (const GT_Primitive &src)
 
virtual ~GT_Primitive ()
 
virtual int getPrimitiveType () const
 
virtual bool getUniqueID (int64 &id) const
 
virtual void enlargeRenderBounds (UT_BoundingBox boxes[], int nsegments) const
 
virtual void getVelocityRange (UT_Vector3 &min, UT_Vector3 &max, const UT_StringRef &attribute_name=GA_Names::v) const
 
const GT_TransformHandlegetPrimitiveTransform () const
 
void setPrimitiveTransform (const GT_TransformHandle &x)
 Set the transform for a the primitive. More...
 
GT_PrimitiveHandle clone () const
 
virtual bool hasDataArray (const UT_StringRef &name, GT_Owner owner_scope[], int num_owners, GT_Storage *storage=NULL, GT_Size *tuple_size=NULL) const
 
virtual bool updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &parms)
 update any cached data for geometry and its attributes More...
 
void setStaticGeometry (bool static_geo)
 Return true if the primitive represents geometry at frame 'fr'. More...
 
bool isStaticGeometry () const
 
bool isFrameInfoAvailable () const
 
bool getDataIdHash (int64 &hash, int segment=0, bool cache_data_id=false) const
 
virtual bool getTopologyVersion (int64 &version) const
 Returns the topology version for the primitive. More...
 
GT_DataArrayHandle findAttribute (const UT_StringRef &name, GT_Owner &owner, int segment) const
 
void dumpAttributeLists (const char *label, bool data_too) const
 print out all attribute lists More...
 
void dumpPrimitive () const
 
bool saveAttributeLists (UT_JSONWriter &w) const
 
virtual bool save (UT_JSONWriter &w) const
 
GT_PrimitiveHandle harden () const
 
GT_PrimitiveHandle copyTransformed (const GT_TransformHandle &x, bool force=false) const
 
void refineCopyTransformFrom (const GT_Primitive &src)
 
GT_PrimitiveHandle attributeMerge (const GT_Primitive &src, const UT_StringMMPattern *vertex_pattern, const UT_StringMMPattern *point_pattern, const UT_StringMMPattern *uniform_pattern, const UT_StringMMPattern *detail_pattern) const
 
virtual GT_PrimitiveHandle doHarden () const
 
virtual GT_PrimitiveHandle doSoftCopy () const =0
 
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. More...
 
bool enlargeWidth (UT_BoundingBox boxes[], int nsegments, fpreal defwidth=-1) const
 
virtual const
GT_AttributeListHandle
getPointAttributes () const
 
virtual const
GT_AttributeListHandle
getVertexAttributes () const
 
virtual const
GT_AttributeListHandle
getUniformAttributes () const
 
const GT_AttributeListHandlegetAttributeList (GT_Owner owner) const
 
virtual const GT_DataArrayHandlegetVertexList () const
 
virtual GT_DataArrayHandle createPointNormals (int segment=0, const UT_StringRef &P=GA_Names::P, bool normalize=true, const fpreal32 *pntdata=NULL, GT_Storage store=GT_STORE_REAL32) const
 
virtual fpreal computePerimeter (int seg=0) const
 
virtual fpreal computeSurfaceArea (int seg=0) const
 
virtual fpreal computeVolume (const UT_Vector3 &ref_P, int seg=0) const
 
- Public Member Functions inherited from UT_IntrusiveRefCounter< GT_Primitive >
SYS_FORCE_INLINE UT_IntrusiveRefCounter () noexcept
 Default constructor: Sets counter to 0. More...
 
SYS_FORCE_INLINE UT_IntrusiveRefCounter (const UT_IntrusiveRefCounter &) noexcept
 Copy constructor: Sets counter to 0. More...
 
UT_IntrusiveRefCounteroperator= (const UT_IntrusiveRefCounter &) noexcept
 Assignment operator: Does not modify counter. More...
 
SYS_FORCE_INLINE uint32 use_count () const noexcept
 Return current counter. More...
 
SYS_FORCE_INLINE bool conditionalAddRef () noexcept
 

Protected Member Functions

virtual GT_PrimQuadricclone (const GT_Parametric &uv) const =0
 Create a split primitive. More...
 
void hardenAttributes ()
 Harden attributes etc. More...
 
virtual GT_PrimitiveHandle createMesh (GT_Size nu, GT_Size nv, fpreal u0, fpreal u1, fpreal v0, fpreal v1, bool create_normals=true, bool create_uv=true, GT_Storage Pstorage=GT_STORE_REAL32, GT_Storage Nstorage=GT_STORE_REAL32) const
 
- Protected Member Functions inherited from GT_Primitive
void enlargeP (UT_BoundingBox &box, const GT_AttributeListHandle &list, int segment) const
 
void enlargeP (UT_BoundingBox &B, const GT_DataArrayHandle &P) const
 Convenience method to enlarge a bounding box given a position attribute. More...
 
void enlargePw (UT_BoundingBox &B, const GT_DataArrayHandle &P) const
 
- Protected Member Functions inherited from UT_IntrusiveRefCounter< GT_Primitive >
SYS_FORCE_INLINE ~UT_IntrusiveRefCounter ()
 Destructor: Only derived classes can destruct this. More...
 

Static Protected Member Functions

static void extractRefineParms (const GT_RefineParms *parms, GT_Size &nu, GT_Size &nv, fpreal &u0, fpreal &u1, fpreal &v0, fpreal &v1)
 Extract refinement parameters. More...
 

Protected Attributes

GT_AttributeListHandle myAttributes
 
GT_Parametric myUV
 

Additional Inherited Members

- Static Public Member Functions inherited from GT_Primitive
static int createPrimitiveTypeId ()
 
static GT_AttributeListHandle mergeAttributeLists (bool &changed, const GT_AttributeListHandle &src, const GT_AttributeListHandle &merge, const UT_StringMMPattern *pattern, const UT_StringMMPattern *alternate=NULL)
 
static bool computeVelocityRange (UT_Vector3 &vmin, UT_Vector3 &vmax, const GT_DataArrayHandle &v)
 
static GT_PrimitiveHandle refineDetail (const GU_ConstDetailHandle &detail, const GT_RefineParms *parms)
 
static GT_PrimitiveHandle refinePrimitive (const GT_PrimitiveHandle &primh, const GT_RefineParms *parms)
 
static voidoperator new (size_t size)
 
static voidoperator new (size_t size, void *p)
 
static void operator delete (void *p, size_t size)
 

Detailed Description

Definition at line 19 of file GT_PrimQuadric.h.

Constructor & Destructor Documentation

GT_PrimQuadric::GT_PrimQuadric ( )
inline

Definition at line 22 of file GT_PrimQuadric.h.

GT_PrimQuadric::GT_PrimQuadric ( const GT_AttributeListHandle attribs,
const GT_TransformHandle transform,
const GT_Parametric uv = GT_Parametric() 
)
inline

Definition at line 26 of file GT_PrimQuadric.h.

GT_PrimQuadric::GT_PrimQuadric ( const GT_PrimQuadric src)
inline

Definition at line 33 of file GT_PrimQuadric.h.

GT_PrimQuadric::GT_PrimQuadric ( const GT_PrimQuadric src,
const GT_Parametric uv 
)
inline

Copy the quadric, but with a different parametric range.

Definition at line 40 of file GT_PrimQuadric.h.

GT_PrimQuadric::~GT_PrimQuadric ( )
override

Member Function Documentation

virtual void GT_PrimQuadric::adjustTesselationCounts ( GT_Size nu,
GT_Size nv 
) const
virtual

Given the u/v tesselation parameters, the sub-class can alter them if it chooses.

Reimplemented in GT_PrimHyperboloid, and GT_PrimCircle.

const char* GT_PrimQuadric::className ( ) const
inlineoverridevirtual

Implements GT_Primitive.

Reimplemented in GT_PrimSphere.

Definition at line 48 of file GT_PrimQuadric.h.

virtual GT_PrimQuadric* GT_PrimQuadric::clone ( const GT_Parametric uv) const
protectedpure virtual

Create a split primitive.

Implemented in GT_PrimHyperboloid, GT_PrimCircle, and GT_PrimSphere.

virtual GT_PrimitiveHandle GT_PrimQuadric::createMesh ( GT_Size  nu,
GT_Size  nv,
fpreal  u0,
fpreal  u1,
fpreal  v0,
fpreal  v1,
bool  create_normals = true,
bool  create_uv = true,
GT_Storage  Pstorage = GT_STORE_REAL32,
GT_Storage  Nstorage = GT_STORE_REAL32 
) const
protectedvirtual

This method is called by the quadric refiner and may be called if you choose to override the refine() method on the sub-class.

void GT_PrimQuadric::enlargeBounds ( UT_BoundingBox  boxes[],
int  nsegments 
) const
overridevirtual

Methods defined on GT_Primitive

Implements GT_Primitive.

static void GT_PrimQuadric::extractRefineParms ( const GT_RefineParms parms,
GT_Size nu,
GT_Size nv,
fpreal u0,
fpreal u1,
fpreal v0,
fpreal v1 
)
staticprotected

Extract refinement parameters.

virtual void GT_PrimQuadric::fillQN ( UT_Vector3F P,
GT_Size  n,
const fpreal u,
fpreal  v 
) const
pure virtual

Evaluate a "row" of position/normal data. The u data will have been processed by prepareParametricU().

Implemented in GT_PrimHyperboloid, GT_PrimCircle, and GT_PrimSphere.

virtual void GT_PrimQuadric::fillQN ( UT_Vector3D P,
GT_Size  n,
const fpreal u,
fpreal  v 
) const
pure virtual

Evaluate a "row" of position/normal data. The u data will have been processed by prepareParametricU().

Implemented in GT_PrimHyperboloid, GT_PrimCircle, and GT_PrimSphere.

virtual void GT_PrimQuadric::fillQP ( UT_Vector3F P,
GT_Size  n,
const fpreal u,
fpreal  v 
) const
pure virtual

Evaluate a "row" of position/normal data. The u data will have been processed by prepareParametricU().

Implemented in GT_PrimHyperboloid, GT_PrimCircle, and GT_PrimSphere.

virtual void GT_PrimQuadric::fillQP ( UT_Vector3D P,
GT_Size  n,
const fpreal u,
fpreal  v 
) const
pure virtual

Evaluate a "row" of position/normal data. The u data will have been processed by prepareParametricU().

Implemented in GT_PrimHyperboloid, GT_PrimCircle, and GT_PrimSphere.

const GT_AttributeListHandle& GT_PrimQuadric::getAttributes ( ) const
inline

Query state

Definition at line 75 of file GT_PrimQuadric.h.

const GT_AttributeListHandle& GT_PrimQuadric::getDetailAttributes ( ) const
inlineoverridevirtual

Access attributes

Reimplemented from GT_Primitive.

Definition at line 83 of file GT_PrimQuadric.h.

int64 GT_PrimQuadric::getMemoryUsage ( ) const
overridevirtual

Methods defined on GT_Primitive

Implements GT_Primitive.

int GT_PrimQuadric::getMotionSegments ( ) const
overridevirtual

Methods defined on GT_Primitive

Implements GT_Primitive.

const GT_Parametric& GT_PrimQuadric::getParametric ( ) const
inline

Query state

Definition at line 77 of file GT_PrimQuadric.h.

virtual void GT_PrimQuadric::getQBounds ( UT_BoundingBox box) const
pure virtual

----------— Sub-class methods ------------------— Sub-class method to get the bounding box

Implemented in GT_PrimHyperboloid, GT_PrimCircle, and GT_PrimSphere.

void GT_PrimQuadric::getQN ( UT_Vector3F N,
fpreal  u,
fpreal  v 
) const
inline

Convert from parametric coordinates to position/normal. These methods invoke the optimized "row" methods.

Definition at line 119 of file GT_PrimQuadric.h.

void GT_PrimQuadric::getQN ( UT_Vector3D N,
fpreal  u,
fpreal  v 
) const
inline

Convert from parametric coordinates to position/normal. These methods invoke the optimized "row" methods.

Definition at line 121 of file GT_PrimQuadric.h.

void GT_PrimQuadric::getQP ( UT_Vector3F P,
fpreal  u,
fpreal  v 
) const
inline

Convert from parametric coordinates to position/normal. These methods invoke the optimized "row" methods.

Definition at line 115 of file GT_PrimQuadric.h.

void GT_PrimQuadric::getQP ( UT_Vector3D P,
fpreal  u,
fpreal  v 
) const
inline

Convert from parametric coordinates to position/normal. These methods invoke the optimized "row" methods.

Definition at line 117 of file GT_PrimQuadric.h.

void GT_PrimQuadric::hardenAttributes ( )
protected

Harden attributes etc.

bool GT_PrimQuadric::init ( const GT_AttributeListHandle attribs,
const GT_TransformHandle transform,
const GT_Parametric uv 
)

Initialize the quadric.

  • attribs
    The attributes attached to the sphere
  • transfrom
    An optional transform attribute. The transform should be a 4x4 matrix.
bool GT_PrimQuadric::refine ( GT_Refine refiner,
const GT_RefineParms parms 
) const
overridevirtual

Method defined on GT_Primitive.

Reimplemented from GT_Primitive.

virtual GT_PrimitiveHandle GT_PrimQuadric::refineToPolygonMesh ( const GT_RefineParms parms) const
virtual

Convenience method to refine to a polygon mesh.

Reimplemented in GT_PrimCircle.

bool GT_PrimQuadric::saveQuadric ( UT_JSONWriter w,
const char *  name 
) const
inline

Definition at line 49 of file GT_PrimQuadric.h.

GT_PrimitiveHandle GT_PrimQuadric::splitU ( )
inline

Split in U or V

Definition at line 89 of file GT_PrimQuadric.h.

GT_PrimitiveHandle GT_PrimQuadric::splitV ( )
inline

Split in U or V

Definition at line 94 of file GT_PrimQuadric.h.

const GT_ViewportRefineOptions& GT_PrimQuadric::viewportRefineOptions ( ) const
overridevirtual

Viewport refinement options.

Reimplemented from GT_Primitive.

Member Data Documentation

GT_AttributeListHandle GT_PrimQuadric::myAttributes
protected

Definition at line 170 of file GT_PrimQuadric.h.

GT_Parametric GT_PrimQuadric::myUV
protected

Definition at line 171 of file GT_PrimQuadric.h.


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