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

#include <GT_PrimHyperboloid.h>

+ Inheritance diagram for GT_PrimHyperboloid:

Public Member Functions

 GT_PrimHyperboloid ()
 
 GT_PrimHyperboloid (const UT_Vector3D &p0, const UT_Vector3D &p1, const GT_AttributeListHandle &attribs, const GT_TransformHandle &transform, const GT_Parametric &uv=GT_Parametric())
 
 GT_PrimHyperboloid (const GT_PrimHyperboloid &src)
 
 GT_PrimHyperboloid (const GT_PrimHyperboloid &src, const GT_Parametric &uv)
 
 ~GT_PrimHyperboloid () override
 
const char * className () const override
 
bool save (UT_JSONWriter &w) const override
 
bool init (const UT_Vector3D &p0, const UT_Vector3D &p1, const GT_AttributeListHandle &attribs, const GT_TransformHandle &transform, const GT_Parametric &uv=GT_Parametric())
 
int getPrimitiveType () const override
 
GT_PrimitiveHandle doHarden () const override
 
GT_PrimitiveHandle doSoftCopy () const override
 
const UT_Vector3D getP0 () const
 
const UT_Vector3D getP1 () const
 
const UT_Vector3D getDP () const
 
- Public Member Functions inherited from GT_PrimQuadric
 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...
 
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
 
- Public Member Functions inherited from GT_Primitive
 GT_Primitive ()
 
 GT_Primitive (const GT_Primitive &src)
 
virtual ~GT_Primitive ()
 
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
 
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 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

GT_PrimQuadricclone (const GT_Parametric &uv) const override
 Clone a new hyperbolic sheet with a different parametric range. More...
 
void adjustTesselationCounts (GT_Size &nu, GT_Size &nv) const override
 Hyperboloids can be evaluated with just 2 rows of data. More...
 
void getQBounds (UT_BoundingBox &box) const override
 
void fillQP (UT_Vector3F *P, GT_Size n, const fpreal *u, fpreal v) const override
 
void fillQP (UT_Vector3D *P, GT_Size n, const fpreal *u, fpreal v) const override
 
void fillQN (UT_Vector3F *N, GT_Size n, const fpreal *u, fpreal v) const override
 
void fillQN (UT_Vector3D *N, GT_Size n, const fpreal *u, fpreal v) const override
 
- Protected Member Functions inherited from GT_PrimQuadric
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...
 

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)
 
- Static Protected Member Functions inherited from GT_PrimQuadric
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 inherited from GT_PrimQuadric
GT_AttributeListHandle myAttributes
 
GT_Parametric myUV
 

Detailed Description

Generic hyperboloid primitive

The hyperboloid primitive is a parametric surface defined by revolving a line segment around the z azis. Given the hyperboloid is defined by points p0, p1 and parametric coordinates u and v:

fpreal theta = u * 2 * PI;
UT_Vector3D P = lerp(p0, p1, v);
x = P.x() * cos(theta) - P.y() * sin(theta);
y = P.z() * sin(theta) + P.y() * cos(theta);
z = P.z();

Examples:

Definition at line 42 of file GT_PrimHyperboloid.h.

Constructor & Destructor Documentation

GT_PrimHyperboloid::GT_PrimHyperboloid ( )
inline

Definition at line 45 of file GT_PrimHyperboloid.h.

GT_PrimHyperboloid::GT_PrimHyperboloid ( const UT_Vector3D p0,
const UT_Vector3D p1,
const GT_AttributeListHandle attribs,
const GT_TransformHandle transform,
const GT_Parametric uv = GT_Parametric() 
)
inline

Definition at line 47 of file GT_PrimHyperboloid.h.

GT_PrimHyperboloid::GT_PrimHyperboloid ( const GT_PrimHyperboloid src)
inline

Definition at line 56 of file GT_PrimHyperboloid.h.

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

Definition at line 61 of file GT_PrimHyperboloid.h.

GT_PrimHyperboloid::~GT_PrimHyperboloid ( )
override

Member Function Documentation

void GT_PrimHyperboloid::adjustTesselationCounts ( GT_Size nu,
GT_Size nv 
) const
overrideprotectedvirtual

Hyperboloids can be evaluated with just 2 rows of data.

Reimplemented from GT_PrimQuadric.

const char* GT_PrimHyperboloid::className ( ) const
inlineoverridevirtual

Implements GT_Primitive.

Definition at line 68 of file GT_PrimHyperboloid.h.

GT_PrimQuadric* GT_PrimHyperboloid::clone ( const GT_Parametric uv) const
inlineoverrideprotectedvirtual

Clone a new hyperbolic sheet with a different parametric range.

Implements GT_PrimQuadric.

Definition at line 124 of file GT_PrimHyperboloid.h.

GT_PrimitiveHandle GT_PrimHyperboloid::doHarden ( ) const
overridevirtual

Methods defined on GT_Primitive

Reimplemented from GT_Primitive.

GT_PrimitiveHandle GT_PrimHyperboloid::doSoftCopy ( ) const
inlineoverridevirtual

Methods defined on GT_Primitive

Implements GT_Primitive.

Definition at line 85 of file GT_PrimHyperboloid.h.

void GT_PrimHyperboloid::fillQN ( UT_Vector3F N,
GT_Size  n,
const fpreal u,
fpreal  v 
) const
overrideprotectedvirtual

Methods defined on GT_PrimQuadric

Implements GT_PrimQuadric.

void GT_PrimHyperboloid::fillQN ( UT_Vector3D N,
GT_Size  n,
const fpreal u,
fpreal  v 
) const
overrideprotectedvirtual

Methods defined on GT_PrimQuadric

Implements GT_PrimQuadric.

void GT_PrimHyperboloid::fillQP ( UT_Vector3F P,
GT_Size  n,
const fpreal u,
fpreal  v 
) const
overrideprotectedvirtual

Methods defined on GT_PrimQuadric

Implements GT_PrimQuadric.

void GT_PrimHyperboloid::fillQP ( UT_Vector3D P,
GT_Size  n,
const fpreal u,
fpreal  v 
) const
overrideprotectedvirtual

Methods defined on GT_PrimQuadric

Implements GT_PrimQuadric.

const UT_Vector3D GT_PrimHyperboloid::getDP ( ) const
inline

Accessor

Definition at line 119 of file GT_PrimHyperboloid.h.

const UT_Vector3D GT_PrimHyperboloid::getP0 ( ) const
inline

Accessor

Definition at line 117 of file GT_PrimHyperboloid.h.

const UT_Vector3D GT_PrimHyperboloid::getP1 ( ) const
inline

Accessor

Definition at line 118 of file GT_PrimHyperboloid.h.

int GT_PrimHyperboloid::getPrimitiveType ( ) const
overridevirtual

Methods defined on GT_Primitive

Reimplemented from GT_Primitive.

void GT_PrimHyperboloid::getQBounds ( UT_BoundingBox box) const
overrideprotectedvirtual

Methods defined on GT_PrimQuadric

Implements GT_PrimQuadric.

bool GT_PrimHyperboloid::init ( const UT_Vector3D p0,
const UT_Vector3D p1,
const GT_AttributeListHandle attribs,
const GT_TransformHandle transform,
const GT_Parametric uv = GT_Parametric() 
)
inline

Initialize hyperboloid with

Parameters
p0
First point defining hyperboloid axis
p1
Second point defining hyperboloid axis
attribs
Attributes defined on the hyperboloid
transform
Transform on the hyperboloid
uv
The parametric range for the hyperboloid. For the hyperboloid, u coordinate represents the rotation, while v represents the interpolant between p0 and p1.

Definition at line 102 of file GT_PrimHyperboloid.h.

bool GT_PrimHyperboloid::save ( UT_JSONWriter w) const
inlineoverridevirtual

Save the primitive to a JSON stream. The default method does nothing and returns false.

Reimplemented from GT_Primitive.

Definition at line 70 of file GT_PrimHyperboloid.h.


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