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

#include <TS_Expression.h>

+ Inheritance diagram for TS_MetaExpression:

Public Member Functions

 TS_MetaExpression ()
 
virtual ~TS_MetaExpression ()
 
virtual const TS_MetaPrimitiveisPrimitive () const
 
virtual TS_MetaPrimitiveisPrimitive ()
 
virtual TS_MetaSumisSum ()
 
virtual TS_MetaMinisMin ()
 
virtual TS_MetaMaxisMax ()
 
virtual float density (const UT_Vector3 &p) const =0
 
virtual UT_Interval density (const UT_BoundingBox &p) const =0
 
virtual float listDensity (const UT_Vector3 &p, UT_ValArray< TS_MetaPrimitive * > &)=0
 
virtual float grad (const UT_Vector3 &point, UT_Vector3 &grad) const =0
 
virtual void raySweepInit (const TS_Ray &ray, float clip, float &t0, float &t1)=0
 
virtual void raySweepComplete ()
 
virtual float rayDensity (float t) const =0
 
virtual UT_Interval rayDensity (const UT_Interval &t) const =0
 
virtual int rayIntersect (const TS_Ray &ray, const UT_Interval &start, float &result, float tol=-1.0f)
 
virtual int rayIntersect (const TS_Ray &ray, const UT_Interval &start, UT_FloatArray &result, float tol=-1.0f)
 
const UT_BoundingBoxgetBBox () const
 
virtual UT_Interval getBBox (UT_BoundingBox &) const =0
 
virtual TS_MetaExpressionprune (const UT_BoundingBox &, UT_Interval &range)=0
 
virtual TS_MetaExpressionduplicate () const =0
 
virtual int setRay (const TS_Ray &ray)=0
 
virtual TS_SweepNodeallocSweepNode (const TS_Ray &ray)
 
virtual const TS_ExpressionListgetAllKids () const
 
const TS_ExpressionListgetCellPrimitives (const UT_Vector3 &pos)
 
TS_OctreegetOctree ()
 
void setOctreeIndex (int idx)
 
int getOctreeIndex () const
 
virtual void getAllPrimitives (UT_Array< TS_MetaPrimitive * > &prims)
 
virtual int getRibOpcode () const
 
virtual TS_SerialOp getOpCode () const
 Return the serialization operation. More...
 
int getThreadNum () const
 
virtual void setThreadNum (int thread_num)
 
virtual int64 getMemoryUsage (bool inclusive) const
 Compute memory usage (includes all shared memory) More...
 
virtual void countMemory (UT_MemoryCounter &counter, bool inclusive) const
 
- Public Member Functions inherited from UT_IntrusiveRefCounter< TS_MetaExpression >
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
 

Static Public Member Functions

static void setupThreads (int num_threads)
 

Public Attributes

int myThreadNum
 

Protected Member Functions

void clearOctree ()
 
virtual void buildOctree ()
 
- Protected Member Functions inherited from UT_IntrusiveRefCounter< TS_MetaExpression >
SYS_FORCE_INLINE ~UT_IntrusiveRefCounter ()
 Destructor: Only derived classes can destruct this. More...
 

Protected Attributes

TS_OctreemyOctree
 
UT_BoundingBox myBBox
 
int myRayIndex
 
int myOctreeRayIndex
 

Detailed Description

Definition at line 76 of file TS_Expression.h.

Constructor & Destructor Documentation

TS_MetaExpression::TS_MetaExpression ( )
virtual TS_MetaExpression::~TS_MetaExpression ( )
virtual

Member Function Documentation

virtual TS_SweepNode* TS_MetaExpression::allocSweepNode ( const TS_Ray ray)
virtual
virtual void TS_MetaExpression::buildOctree ( )
protectedvirtual
void TS_MetaExpression::clearOctree ( )
protected
virtual void TS_MetaExpression::countMemory ( UT_MemoryCounter counter,
bool  inclusive 
) const
virtual

Count memory usage using a UT_MemoryCounter in order to count shared memory correctly. If inclusive is true, the size of this object is counted, else only memory owned by this object is counted. If this is pointed to by the calling object, inclusive should be true. If this is contained in the calling object, inclusive should be false. (Its memory was already counted in the size of the calling object.)

Reimplemented in TS_MetaOp.

virtual float TS_MetaExpression::density ( const UT_Vector3 p) const
pure virtual
virtual UT_Interval TS_MetaExpression::density ( const UT_BoundingBox p) const
pure virtual
virtual TS_MetaExpression* TS_MetaExpression::duplicate ( ) const
pure virtual
virtual const TS_ExpressionList* TS_MetaExpression::getAllKids ( ) const
virtual

Reimplemented in TS_MetaOp.

virtual void TS_MetaExpression::getAllPrimitives ( UT_Array< TS_MetaPrimitive * > &  prims)
inlinevirtual

Reimplemented in TS_MetaOp, and TS_MetaPrimitive.

Definition at line 141 of file TS_Expression.h.

const UT_BoundingBox& TS_MetaExpression::getBBox ( ) const
inline

Definition at line 116 of file TS_Expression.h.

virtual UT_Interval TS_MetaExpression::getBBox ( UT_BoundingBox ) const
pure virtual
const TS_ExpressionList* TS_MetaExpression::getCellPrimitives ( const UT_Vector3 pos)
virtual int64 TS_MetaExpression::getMemoryUsage ( bool  inclusive) const
virtual

Compute memory usage (includes all shared memory)

Reimplemented in TS_MetaOp, TS_MetaPrimitive, TS_MetaSuperQuadric, and TS_MetaEllipsoid.

TS_Octree* TS_MetaExpression::getOctree ( )
inline

Definition at line 131 of file TS_Expression.h.

int TS_MetaExpression::getOctreeIndex ( ) const
inline

Definition at line 139 of file TS_Expression.h.

virtual TS_SerialOp TS_MetaExpression::getOpCode ( ) const
inlinevirtual

Return the serialization operation.

Reimplemented in TS_MetaMin, TS_MetaMax, and TS_MetaSum.

Definition at line 147 of file TS_Expression.h.

virtual int TS_MetaExpression::getRibOpcode ( ) const
inlinevirtual

Reimplemented in TS_MetaMin, TS_MetaMax, and TS_MetaSum.

Definition at line 145 of file TS_Expression.h.

int TS_MetaExpression::getThreadNum ( ) const
inline

Definition at line 150 of file TS_Expression.h.

virtual float TS_MetaExpression::grad ( const UT_Vector3 point,
UT_Vector3 grad 
) const
pure virtual
virtual TS_MetaMax* TS_MetaExpression::isMax ( )
virtual

Reimplemented in TS_MetaMax.

virtual TS_MetaMin* TS_MetaExpression::isMin ( )
virtual

Reimplemented in TS_MetaMin.

virtual const TS_MetaPrimitive* TS_MetaExpression::isPrimitive ( ) const
virtual

Reimplemented in TS_MetaPrimitive.

virtual TS_MetaPrimitive* TS_MetaExpression::isPrimitive ( )
virtual

Reimplemented in TS_MetaPrimitive.

virtual TS_MetaSum* TS_MetaExpression::isSum ( )
virtual

Reimplemented in TS_MetaSum.

virtual float TS_MetaExpression::listDensity ( const UT_Vector3 p,
UT_ValArray< TS_MetaPrimitive * > &   
)
pure virtual
virtual TS_MetaExpression* TS_MetaExpression::prune ( const UT_BoundingBox ,
UT_Interval range 
)
pure virtual
virtual float TS_MetaExpression::rayDensity ( float  t) const
pure virtual
virtual UT_Interval TS_MetaExpression::rayDensity ( const UT_Interval t) const
pure virtual
virtual int TS_MetaExpression::rayIntersect ( const TS_Ray ray,
const UT_Interval start,
float result,
float  tol = -1.0f 
)
virtual
virtual int TS_MetaExpression::rayIntersect ( const TS_Ray ray,
const UT_Interval start,
UT_FloatArray result,
float  tol = -1.0f 
)
virtual
virtual void TS_MetaExpression::raySweepComplete ( )
virtual

Reimplemented in TS_MetaOp.

virtual void TS_MetaExpression::raySweepInit ( const TS_Ray ray,
float  clip,
float t0,
float t1 
)
pure virtual

Implemented in TS_MetaOp, and TS_MetaPrimitive.

void TS_MetaExpression::setOctreeIndex ( int  idx)
inline

Definition at line 138 of file TS_Expression.h.

virtual int TS_MetaExpression::setRay ( const TS_Ray ray)
pure virtual
virtual void TS_MetaExpression::setThreadNum ( int  thread_num)
inlinevirtual

Reimplemented in TS_MetaOp.

Definition at line 153 of file TS_Expression.h.

static void TS_MetaExpression::setupThreads ( int  num_threads)
static

Member Data Documentation

UT_BoundingBox TS_MetaExpression::myBBox
protected

Definition at line 185 of file TS_Expression.h.

TS_Octree* TS_MetaExpression::myOctree
protected

Definition at line 184 of file TS_Expression.h.

int TS_MetaExpression::myOctreeRayIndex
protected

Definition at line 186 of file TS_Expression.h.

int TS_MetaExpression::myRayIndex
protected

Definition at line 186 of file TS_Expression.h.

int TS_MetaExpression::myThreadNum

Definition at line 178 of file TS_Expression.h.


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