HDK
|
#include <SIM_Geometry.h>
Public Member Functions | |
GETSET_DATA_FUNCS_S (SIM_NAME_POSITIONPATH, PositionPath) | |
GU_ConstDetailHandle | getGeometry () const |
void | getTransform (UT_DMatrix4 &xform) const |
GA_CEAttribute * | getReadableCEAttribute (GA_AttributeOwner owner, const UT_StringRef &aname, GA_StorageClass storage, int &tuplesize, bool isarray, bool docopy) const |
virtual GA_CEAttribute * | getReadableCEAttributePrec (GA_AttributeOwner owner, const UT_StringRef &aname, GA_StorageClass storage, GA_Precision prec, int &tuplesize, bool isarray, bool docopy) const |
GU_ConstDetailHandle | getGeometryWithoutCEFlush () const |
GA_Size | getNumPoints () const |
GA_Size | getNumPrimitives () const |
virtual void | flushCEWriteCaches () const |
Clear any pending writes from the GPU. More... | |
virtual void | flushCECaches () const |
Clear all GPU caches. More... | |
void | markCECacheStatus (bool status) const |
void | setOwnGeometry (GU_Detail *gdp) |
void | setOwnGeometry (const GU_DetailHandle &gdh) |
virtual void | setOwnGeometrySubclass (const GU_DetailHandle &gdh) |
GU_ConstDetailHandle | getOwnGeometry () const |
Returns a const pointer to our internal geometry data, if it is set. More... | |
GU_DetailHandle | getOwnGeometry () |
Returns a pointer to our internal geometry data, if it is set. More... | |
void | makeOwnGeometryUnique () |
void | setOwnTransform (UT_DMatrix4 *xform) |
const UT_DMatrix4 * | getOwnTransform () const |
Returns a const pointer to our internal transform data, if it is set. More... | |
UT_DMatrix4 * | getOwnTransform () |
Returns a pointer to our internal transform data, if it is set. More... | |
![]() | |
const UT_StringHolder & | getDataType () const |
void | initialize (const SIM_SubdataBehavior &subdatabehavior) |
void | makeEqual (const SIM_Data *source, const SIM_SubdataBehavior &subdatabehavior) |
void | setParameters (const SIM_Options &parms) |
void | interpolate (const SIM_Data *source1, const SIM_Data *source2, fpreal interp) |
int64 | getMemorySize () const |
bool | getIsAlternateRepresentation () const |
bool | saveToFile (const char *filename, UT_CompressionType compressionType) const |
bool | saveToStream (std::ostream &os, UT_CompressionType compressionType) const |
void | appendFullDataPath (const SIM_Data *subdata, bool useobjectid, UT_String &datapath) const |
bool | loadFromFile (const char *filename) |
bool | loadFromStream (UT_IStream &is, bool skiptype=false) |
bool | getIsOfType (const UT_StringRef &datatype) const |
const void * | getConstPointerToType (const UT_StringRef &datatype) const |
void * | getPointerToType (const UT_StringRef &datatype) |
int | getNumSubData () const |
Get the number of sub-data items attached to this data. More... | |
const UT_StringHolder & | getSubDataName (int index) const |
Get the name of the sub-data at a particular index location. More... | |
int | getSubDataIndex (const SIM_Data *subdata) const |
bool | buildSubDataPath (const SIM_Data *subdata, UT_String &pathto) const |
const SIM_Query & | getQueryObject () const |
SIM_Options * | getUserOptions () |
const SIM_Options * | getConstUserOptions () const |
long | getGuideParmVersion () const |
void | addGuideDep (DEP_MicroNode &src) const |
virtual bool | getGuideGeometryList (const SIM_RootData &root, const char *datapath, const SIM_Time &t, UT_Array< GU_ConstDetailHandle > &detailArray, UT_Array< UT_DMatrix4 > &xformArray) const |
GU_ConstDetailHandle | getGuideGeometry (const SIM_RootData &root, const char *datapath, UT_DMatrix4 &xform, const SIM_Time &t) const |
void | buildGuideOptions (SIM_Options &options, const SIM_Time &time) const |
SIM_Data * | getSubData (int index) |
const SIM_Data * | getConstSubData (int index) const |
SIM_Data * | getNamedSubData (const char *dataname) |
const SIM_Data * | getConstNamedSubData (const char *dataname) const |
void | filterSubData (SIM_DataArray &ncdp, UT_StringArray *names, const SIM_DataFilter &ncfilter, const char *startfrom, const SIM_DataFilter &recursefilter) |
void | filterConstSubData (SIM_ConstDataArray &dp, UT_StringArray *names, const SIM_DataFilter &filter, const char *startfrom, const SIM_DataFilter &recurseFilter) const |
SIM_Data * | getNthSubData (UT_String *name, const SIM_DataFilter &filter, int n, const char *startfrom, const SIM_DataFilter &recurseFilter) |
const SIM_Data * | getNthConstSubData (UT_String *name, const SIM_DataFilter &filter, int n, const char *startfrom, const SIM_DataFilter &recurseFilter) const |
void | forEachSubData (SIM_EachDataCallback &cb, const SIM_DataFilter &filter, const char *startfrom, const SIM_DataFilter &recurseFilter) |
void | forEachConstSubData (SIM_EachDataCallback &cb, const SIM_DataFilter &filter, const char *startfrom, const SIM_DataFilter &recurseFilter) const |
SIM_Data * | createNamedSubData (const char *dataname, const char *datatype, int creationflags, UT_String *newdatanameptr=NULL) |
SIM_Data * | getOrCreateAlternateRepresentation (const char *dataname, const char *datatype) const |
void | interpolateSubData (const SIM_Data &source1, const SIM_Data &source2, fpreal interp, const SIM_DataFilter &interpdata, const SIM_DataFilter &recurse) |
void | setNamedSubData (const char *dataname, const SIM_Data *data, int setflags) |
void | createUniqueSubDataName (const SIM_Data *subdata, UT_String &dataname) const |
void | removeNamedSubData (const char *dataname) |
Remove some existing sub-data by name. More... | |
void | removeSubData (int index) |
Remove some existing sub-data by index. More... | |
void | moveNamedSubData (const char *oldname, const char *newname) |
const UT_Guid & | getUniqueId () const |
long | getReferenceCount () const |
int | getCreatorId () const |
Get the ID of the node that created this data. More... | |
OP_Node * | getCreatorNode () const |
Use the creator ID to look up the OP_Node that created this data. More... | |
OP_Node * | getOwnerNetwork () const |
Look up the owner node of our engine to get the DOP Network pointer. More... | |
const SIM_Engine & | getEngine () const |
Get the engine that created us (from our data factory). More... | |
int | getCreatorIndex () const |
Get the output index of the creator node that generated this data. More... | |
const SIM_Time & | getCreationTime () const |
Get the creation time for this data. More... | |
bool | getIsSelected () const |
Get the selected flag for this data. More... | |
void | setIsSelected (bool selected) const |
bool | getSelectionRepresentsObject () const |
void | copyCreationInfoFrom (const SIM_Data *source) |
OP_Node & | getNodePathsRelativeTo () const |
OP_Node * | getOPNode (const char *path, bool addinterest) const |
Given a path relative to our creator node, return an OBJ_Node. More... | |
OBJ_Node * | getOBJNode (const char *path, bool addinterest) const |
Given a path relative to our creator node, return an OBJ_Node. More... | |
SOP_Node * | getSOPNode (const char *path, bool addinterest) const |
Given a path relative to our creator node, return a SOP_Node. More... | |
DOP_Node * | getDOPNode (const char *path, bool addinterest) const |
Given a path relative to our creator node, return a DOP_Node. More... | |
COP2_Node * | getCOP2Node (const char *path, bool addinterest) const |
Given a path relative to our creator node, return a COP2_Node. More... | |
CHOP_Node * | getCHOPNode (const char *path, bool addinterest) const |
Given a path relative to our creator node, return a CHOP_Node. More... | |
void | addOPInterest (OP_Node *node) const |
Adds an interest in the specified node to our engine's owner node. More... | |
void | addError (const SIM_RootData *root, int errorcode, const char *errorparm, UT_ErrorSeverity severity) const |
Adds an error to our SIM_Engine. More... | |
void | makeMemberDataUnique () |
virtual void | makeMemberDataUniqueSubclass () |
![]() | |
SIM_OptionsUser (SIM_Data *owner) | |
virtual | ~SIM_OptionsUser () |
void | optionChanged (const char *name) |
const SIM_Options & | getOptions () const |
Protected Member Functions | |
SIM_Geometry (const SIM_DataFactory *factory) | |
~SIM_Geometry () override | |
void | initializeSubclass () override |
Set initial values on all the geometry attributes. More... | |
void | makeEqualSubclass (const SIM_Data *source) override |
Makes this geometry equal to some other SIM_Geometry. More... | |
void | saveSubclass (std::ostream &os) const override |
Saves our attributes, and our internal data if it has been set. More... | |
void | saveIOSubclass (std::ostream &os, SIM_DataThreadedIO *io) const override |
bool | loadSubclass (UT_IStream &is) override |
Loads our attributes and internal data if it was set when we saved. More... | |
bool | loadIOSubclass (UT_IStream &is, SIM_DataThreadedIO *io) override |
SIM_Query * | createQueryObjectSubclass () const override |
void | interpolateSubclass (const SIM_Data *source1, const SIM_Data *source2, fpreal interp) override |
int64 | getMemorySizeSubclass () const override |
virtual GU_ConstDetailHandle | getGeometrySubclass () const |
virtual void | getTransformSubclass (UT_DMatrix4 &xform) const |
![]() | |
SIM_Data (const SIM_DataFactory *factory) | |
virtual | ~SIM_Data () |
void | handleModification (int code=-1) |
void | setNeedsToRecalculateMemorySize () const |
void | deleteQueryObjectIfNotBuilding () const |
Deletes the query object for this data, if there is one. More... | |
void | deleteGuideObjectIfNotBuilding () const |
Delete the guide geometry for this data, if it exists. More... | |
void | initAlternateRepresentation () const |
void | setNeedsInitialization (bool needsinit) const |
Flags an alternate representation subdata as requiring initialization. More... | |
bool | getNeedsInitialization () const |
Tests whether an alternate representation requires initialization. More... | |
bool | saveOptionPacket (std::ostream &os, const char *name, const SIM_Options *opts) const |
bool | loadOptionPacket (UT_IStream &is, const char *name, SIM_Options *opts) const |
bool | getIsDoingSimplifiedSaveLoad () const |
void | initializeFromParmDefaults () |
void | setSelectionRepresentsObject (bool representsobject) |
virtual void | setNeedsInitializationSubclass (bool needsinit) const |
virtual long | getGuideParmVersionSubclass () const |
virtual SIM_Guide * | createGuideObjectSubclass () const |
virtual void | buildGuideGeometrySubclass (const SIM_RootData &root, const SIM_Options &options, const GU_DetailHandle &gdh, UT_DMatrix4 *xform, const SIM_Time &t) const |
virtual void | setParametersSubclass (const SIM_Options &parms) |
virtual void | setNamedSubDataSubclass (const char *dataname, const SIM_Data *data) |
virtual void | removeNamedSubDataSubclass (const char *dataname) |
virtual void | handleModificationSubclass (int code) |
virtual bool | getIsAlternateRepresentationSubclass () const |
virtual void | initAlternateRepresentationSubclass (const SIM_Data &) |
virtual void * | getCastToType (const UT_StringRef &datatype) const |
virtual const UT_StringHolder & | getDataTypeSubclass () const |
const SIM_Data * | getAlternateRepresentationOf () const |
![]() | |
SIM_Options & | getOptions () |
virtual void | optionChangedSubclass (const char *name) |
Protected Attributes | |
bool | myHasCECache |
Additional Inherited Members | |
![]() | |
static bool | getDataTypeFromFile (const char *filename, UT_String &datatype) |
static bool | getDataTypeFromStream (UT_IStream &is, UT_String &datatype) |
static const void * | castConstPointerToType (const SIM_Data *data, const UT_StringRef &datatype) |
static void * | castPointerToType (SIM_Data *data, const UT_StringRef &datatype) |
![]() | |
static const PRM_Template * | getEmptyTemplateList () |
static const SIM_DopDescription * | getEmptyDopDescription () |
A DOP description that says not to create an automatic DOP. More... | |
static void | getDataTypeSuperclasses (UT_StringArray &) |
This is the definitions for the SIM_Geometry interface. It also provides a default implementation that returns an empty geometry and an identity transform. It also has the facility to hold its own geometry and transform as internal data. If set, these are saved and loaded automatically. But there is no way for anyone except subclasses to set these internal data. Thus they are really just a convenience when writing SIM_Geometry subclasses.
Definition at line 30 of file SIM_Geometry.h.
|
explicitprotected |
|
overrideprotected |
|
overrideprotectedvirtual |
Creates a query object specifically for geometry data to access the transforms associated with geometry data.
Reimplemented from SIM_Data.
|
virtual |
Clear all GPU caches.
|
virtual |
Clear any pending writes from the GPU.
Reimplemented in SIM_GeometryCopy.
GU_ConstDetailHandle SIM_Geometry::getGeometry | ( | ) | const |
Method for accessing the geometry. If we have some internal geometry data, we return that. Otherwise this function calls getGeometrySubclass().
|
protectedvirtual |
This function is called by getGeometry() to return the actual geometry data. The default implementation returns an empty geometry.
Reimplemented in HDK_Sample::SNOW_VoxelArray.
GU_ConstDetailHandle SIM_Geometry::getGeometryWithoutCEFlush | ( | ) | const |
Acquires our geometry without triggering any write backs of pending CE operations, this is useful if you care only about meta data.
|
overrideprotectedvirtual |
Override this function to return an accurate representation of the amount of memory used by this piece of data. The size of subdata should not be included in this calculation.
Reimplemented from SIM_Data.
Reimplemented in HDK_Sample::SNOW_VoxelArray.
GA_Size SIM_Geometry::getNumPoints | ( | ) | const |
Convenience methods to query the geometry without inducing a flush.
GA_Size SIM_Geometry::getNumPrimitives | ( | ) | const |
GU_ConstDetailHandle SIM_Geometry::getOwnGeometry | ( | ) | const |
Returns a const pointer to our internal geometry data, if it is set.
GU_DetailHandle SIM_Geometry::getOwnGeometry | ( | ) |
Returns a pointer to our internal geometry data, if it is set.
const UT_DMatrix4* SIM_Geometry::getOwnTransform | ( | ) | const |
Returns a const pointer to our internal transform data, if it is set.
UT_DMatrix4* SIM_Geometry::getOwnTransform | ( | ) |
Returns a pointer to our internal transform data, if it is set.
|
inline |
Attempt to build a GPU-backed attribute from our geometry. Returns 0 on failure. You do not own the resulting GA_CEAttribute.
Definition at line 51 of file SIM_Geometry.h.
|
virtual |
SIM_Geometry::GETSET_DATA_FUNCS_S | ( | SIM_NAME_POSITIONPATH | , |
PositionPath | |||
) |
Accesses the relative path to the position data associated with this geometry.
void SIM_Geometry::getTransform | ( | UT_DMatrix4 & | xform | ) | const |
Get the geometry transform. If we have some internal transform data, we return that. Otherwise this function calls getTransformSubclass().
|
protectedvirtual |
This function is called by getTransform() to return the actual transform data. The default implementation returns an identity matrix.
|
overrideprotectedvirtual |
Set initial values on all the geometry attributes.
Reimplemented from SIM_Data.
Reimplemented in HDK_Sample::SNOW_VoxelArray, and SIM_GeometryCopy.
|
overrideprotectedvirtual |
Create an interpolation between two other SIM_Geometry subclasses. This is one place where the internal data gets used automatically. Since the source data may be of any subclass, the only way to safely and correctly interpolate between two SIM_Geometry subclasses is to copy one of the source geometry and transform to our internal data, and then do a blend towards the second source data.
Reimplemented from SIM_Data.
Reimplemented in SIM_SopGeometry.
|
overrideprotectedvirtual |
Loading variant that allows you to request loading data at the end of the .sim file that was saved with saveIOSubclass If not overloaded, passes through to loadSubclass. If io is NULL, shoudl not attempt threaded loading.
Reimplemented from SIM_Data.
Reimplemented in HDK_Sample::SNOW_VoxelArray.
|
overrideprotectedvirtual |
Loads our attributes and internal data if it was set when we saved.
Reimplemented from SIM_Data.
Makes this geometry equal to some other SIM_Geometry.
Reimplemented from SIM_Data.
Reimplemented in HDK_Sample::SNOW_VoxelArray, and SIM_GeometryCopy.
void SIM_Geometry::makeOwnGeometryUnique | ( | ) |
Makes our own geometry unique, breaking any internal sharing it may have.
|
inline |
Should only be used externally to flag if the geometry has CE buffers in it. So if you acquire read or write buffers you need to flag it so they are copied/flushed properly.
Definition at line 72 of file SIM_Geometry.h.
|
overrideprotectedvirtual |
Save variant that allows you to delay part of your saving to a background thread. If not overloaded, passes through to saveSubclass. If io is NULL, shoudl not attempt threaded loading.
Reimplemented from SIM_Data.
Reimplemented in HDK_Sample::SNOW_VoxelArray.
|
overrideprotectedvirtual |
Saves our attributes, and our internal data if it has been set.
Reimplemented from SIM_Data.
Set our internal geometry data. If some internal data already exists, it is deleted. The pointer passed in becomes controlled by the SIM_Geometry so must not be deleted by external code. A null pointer can be passed in to clear our internal geometry data.
void SIM_Geometry::setOwnGeometry | ( | const GU_DetailHandle & | gdh | ) |
Set our internal geometry data from an existing GU_DetailHandle. If some internal data already exists, it is deleted.
|
virtual |
void SIM_Geometry::setOwnTransform | ( | UT_DMatrix4 * | xform | ) |
Set our internal transform data. If some internal data already exists, it is deleted. The pointer passed in becomes controlled by the SIM_Geometry so must not be deleted by external code. A null pointer can be passed in to clear our internal transform data.
|
mutableprotected |
Definition at line 146 of file SIM_Geometry.h.