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

#include <GU_DetailHandle.h>

Public Member Functions

 GU_ConstDetailHandle ()
 
 GU_ConstDetailHandle (const GU_DetailHandle &handle)
 
const GU_ConstDetailHandleoperator= (const GU_DetailHandle &handle)
 
bool operator== (const GU_ConstDetailHandle &handle) const
 
bool operator!= (const GU_ConstDetailHandle &handle) const
 
uint hash () const
 
void clear ()
 
GU_DetailHandle castAwayConst () const
 
GU_DetailHandle getWriteableCopy (GA_DataIdStrategy data_id_strategy=GA_DATA_ID_BUMP) const
 Create a writeable copy of the detail. More...
 
const GU_Detailgdp () const
 Unlocked readable pointers. More...
 
bool isNull () const
 
bool isValid () const
 Check if this is a valid handle. More...
 
SYS_SAFE_BOOL operator bool () const
 Safe-bool operator to return whether the handle is valid. More...
 
int getRefCount () const
 Returns the number of references made to the base handle. More...
 
void addPreserveRequest ()
 
void removePreserveRequest ()
 
int getPreserveRequest () const
 
int64 getMemoryUsage (bool inclusive) const
 
const GU_DetailreadLock ()
 
void unlock (const GU_Detail *gdp)
 
int getLockCount () const
 

Static Public Member Functions

static int registerGeometry (GU_ConstDetailHandle gdh, UT_IntArray &registered)
 
static void unregisterGeometries (UT_IntArray &registered)
 
static GU_ConstDetailHandle lookupGeometry (int handle)
 Look up a registered layer by handle. More...
 

Detailed Description

A GU_ConstDetailHandle uses a GU_DetailHandle to provide const-only access to a GU_Detail. It uses a GU_DetailHandle member variable to do all the actual work, and simply hides any functionality that is unsafe or inappropriate for a const GU_Detail.

Examples:
packedsphere/GT_GEOPackedSphere.C, packedsphere/GU_PackedSphere.C, packedsphere/GU_PackedSphere.h, SIM/SNOW_Solver.C, SIM/SNOW_Solver.h, and tetprim/GT_PrimTetra.C.

Definition at line 180 of file GU_DetailHandle.h.

Constructor & Destructor Documentation

GU_ConstDetailHandle::GU_ConstDetailHandle ( )
inline

Definition at line 183 of file GU_DetailHandle.h.

GU_ConstDetailHandle::GU_ConstDetailHandle ( const GU_DetailHandle handle)
inline

Definition at line 185 of file GU_DetailHandle.h.

Member Function Documentation

void GU_ConstDetailHandle::addPreserveRequest ( )
inline

Preserve Requests: A preserve request is a request that people create a new GU_DetailHandle rather than editting the current one. It is used by SOPs to determine if it is safe to do an in place cook.

Definition at line 237 of file GU_DetailHandle.h.

GU_DetailHandle GU_ConstDetailHandle::castAwayConst ( ) const
inline

This method casts from a GU_ConstDetailHandle to a GU_DetailHandle. Use it carefully. Calling getWriteableCopy() is preferred. Duplicating geometry is not as expensive as it might seem.

Definition at line 207 of file GU_DetailHandle.h.

void GU_ConstDetailHandle::clear ( )
inline

Definition at line 201 of file GU_DetailHandle.h.

const GU_Detail* GU_ConstDetailHandle::gdp ( ) const
inline

Unlocked readable pointers.

Definition at line 215 of file GU_DetailHandle.h.

int GU_ConstDetailHandle::getLockCount ( ) const
inline

NOTE: Locking is not enforced, and no longer encouraged. Returns the number of locks made to the base handle for debugging.

Definition at line 269 of file GU_DetailHandle.h.

int64 GU_ConstDetailHandle::getMemoryUsage ( bool  inclusive) const
inline

Return the amount of memory owned by the GU_DetailHandle itself, NOT the detail. This will count the memory of the GU_DetailHandleRef, which could be shared, so only the definitive "original" handle should be counted, e.g. the one on SOP_Node.

Definition at line 248 of file GU_DetailHandle.h.

int GU_ConstDetailHandle::getPreserveRequest ( ) const
inline

Definition at line 241 of file GU_DetailHandle.h.

int GU_ConstDetailHandle::getRefCount ( ) const
inline

Returns the number of references made to the base handle.

Definition at line 229 of file GU_DetailHandle.h.

GU_DetailHandle GU_ConstDetailHandle::getWriteableCopy ( GA_DataIdStrategy  data_id_strategy = GA_DATA_ID_BUMP) const
inline

Create a writeable copy of the detail.

Definition at line 211 of file GU_DetailHandle.h.

uint GU_ConstDetailHandle::hash ( ) const
inline

Definition at line 199 of file GU_DetailHandle.h.

bool GU_ConstDetailHandle::isNull ( ) const
inline

Determine if this is a null handle. This means it points to a null handle, or the handle's gdp is null.

Examples:
SIM/SIM_SolverHair.C, and SIM/SNOW_Solver.C.

Definition at line 219 of file GU_DetailHandle.h.

bool GU_ConstDetailHandle::isValid ( ) const
inline

Check if this is a valid handle.

Definition at line 222 of file GU_DetailHandle.h.

static GU_ConstDetailHandle GU_ConstDetailHandle::lookupGeometry ( int  handle)
static

Look up a registered layer by handle.

SYS_SAFE_BOOL GU_ConstDetailHandle::operator bool ( ) const
inline

Safe-bool operator to return whether the handle is valid.

Definition at line 226 of file GU_DetailHandle.h.

bool GU_ConstDetailHandle::operator!= ( const GU_ConstDetailHandle handle) const
inline

Definition at line 196 of file GU_DetailHandle.h.

const GU_ConstDetailHandle& GU_ConstDetailHandle::operator= ( const GU_DetailHandle handle)
inline

Definition at line 188 of file GU_DetailHandle.h.

bool GU_ConstDetailHandle::operator== ( const GU_ConstDetailHandle handle) const
inline

Definition at line 194 of file GU_DetailHandle.h.

const GU_Detail* GU_ConstDetailHandle::readLock ( )
inline

NOTE: Locking is not enforced, and no longer encouraged. This will acquire a read lock on the GU_Detail. The result is 0 if no lock can be acquired, or no underlying detail exists. The returned detail should be passed to unlock(). (Technically, no locking occurs on error, but unlock is a no-op with a 0 gdp)

Definition at line 256 of file GU_DetailHandle.h.

static int GU_ConstDetailHandle::registerGeometry ( GU_ConstDetailHandle  gdh,
UT_IntArray registered 
)
static

Ramp registration to allow geometry to be converted to integers across HOM boundaries. Registers & returns the handle, adding the handle to the registered list

void GU_ConstDetailHandle::removePreserveRequest ( )
inline

Definition at line 239 of file GU_DetailHandle.h.

void GU_ConstDetailHandle::unlock ( const GU_Detail gdp)
inline

NOTE: Locking is not enforced, and no longer encouraged. This will unlock one layer of locking. If the passed in gdp is null, no unlocking occurs. Otherwise, the passed in gdp is asserted to match the one which myHandle points to.

Definition at line 264 of file GU_DetailHandle.h.

static void GU_ConstDetailHandle::unregisterGeometries ( UT_IntArray registered)
static

Unregister all layers corresponding to the provided list, erase the list afterwards. Assertion if handle wasn't regsitered


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