HDK
|
#include <SIM_Slice.h>
Public Member Functions | |
bool | isInsideSlice (const UT_Vector3 &pos) const |
fpreal | getSliceBoundaryDist (const UT_Vector3 &pos) const |
fpreal | getMinSliceBoundaryDist (const UT_BoundingBox &bbox) const |
fpreal | getMaxSliceBoundaryDist (const UT_BoundingBox &bbox) const |
virtual UT_Vector3 | getCenter () const |
This is used to determine which side of my parent I am on. More... | |
int | countSlices () const |
Count number of slices from myself and my children. More... | |
void | buildSliceSearch (SIM_SliceSearchTable &table) const |
![]() | |
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 () |
Static Public Member Functions | |
static int | countSlices (const SIM_ConstDataArray &slices) |
static void | buildSliceSearch (SIM_SliceSearchTable &table, SIM_ConstDataArray &slices) |
static fpreal | computeSliceDist (const SIM_SliceSearchList &list, const UT_Vector3 &pos) |
static bool | isInsideSlice (const SIM_SliceSearchList &list, const UT_Vector3 &pos) |
static bool | isInsideSlice (const SIM_SliceSearchList &list, const UT_BoundingBox &bbox) |
static bool | doesIntersectSlice (const SIM_SliceSearchList &list, const UT_BoundingBox &bbox) |
Returns true if the bounding box at all intersects the slice. More... | |
![]() | |
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) |
Protected Member Functions | |
SIM_Slice (const SIM_DataFactory *factory) | |
~SIM_Slice () override | |
virtual bool | isInsideSliceSubclass (const UT_Vector3 &pos) const |
virtual fpreal | getSliceBoundaryDistSubclass (const UT_Vector3 &pos) const =0 |
virtual fpreal | getMinSliceBoundaryDistSubclass (const UT_BoundingBox &bbox) const =0 |
virtual fpreal | getMaxSliceBoundaryDistSubclass (const UT_BoundingBox &bbox) const =0 |
virtual UT_Vector3 | getCenterSubclass () const =0 |
This is used to determine which side of my parent I am on. More... | |
![]() | |
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 void | initializeSubclass () |
virtual void | makeEqualSubclass (const SIM_Data *source) |
virtual void | saveSubclass (std::ostream &os) const |
virtual void | saveIOSubclass (std::ostream &os, SIM_DataThreadedIO *io) const |
virtual bool | loadSubclass (UT_IStream &is) |
virtual bool | loadIOSubclass (UT_IStream &is, SIM_DataThreadedIO *io) |
virtual SIM_Query * | createQueryObjectSubclass () 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 | interpolateSubclass (const SIM_Data *source1, const SIM_Data *source2, fpreal interp) |
virtual int64 | getMemorySizeSubclass () const |
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 |
Additional Inherited Members | |
![]() | |
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 definition of the SIM_Slice interface. The only function that needs to be overridden (besides any standard SIM_Data overrides) is the getSliceBoundaryDistSubclass() functions.
Definition at line 47 of file SIM_Slice.h.
|
explicitprotected |
|
overrideprotected |
void SIM_Slice::buildSliceSearch | ( | SIM_SliceSearchTable & | table | ) | const |
The nth entry of this list stores how to search for the nth slice.
|
static |
|
static |
int SIM_Slice::countSlices | ( | ) | const |
Count number of slices from myself and my children.
|
static |
|
static |
Returns true if the bounding box at all intersects the slice.
|
virtual |
This is used to determine which side of my parent I am on.
|
protectedpure virtual |
This is used to determine which side of my parent I am on.
Implemented in SIM_SlicePlane.
fpreal SIM_Slice::getMaxSliceBoundaryDist | ( | const UT_BoundingBox & | bbox | ) | const |
|
protectedpure virtual |
Implemented in SIM_SlicePlane.
fpreal SIM_Slice::getMinSliceBoundaryDist | ( | const UT_BoundingBox & | bbox | ) | const |
Returns the minimal distance to the slice's boundary within the bounding box. A negative result implies the slice and bounding box overlap.
|
protectedpure virtual |
Returns the minimum value the slice attains inside the given bounding box. A negative value implies the slice and bounding box overlap.
Implemented in SIM_SlicePlane.
fpreal SIM_Slice::getSliceBoundaryDist | ( | const UT_Vector3 & | pos | ) | const |
Returns the distance to the slice's boundary. If the point is inside the slice this is a negative distance, else positive.
|
protectedpure virtual |
Returns the distance to the slice's boundary. If the point is inside the slice this is a negative distance, else positive. This is what must be overridden to make the slice do something interesting
Implemented in SIM_SlicePlane.
bool SIM_Slice::isInsideSlice | ( | const UT_Vector3 & | pos | ) | const |
Returns whether we are inside this slice or not. true is inside. This corresponds to a negative slice boundary distance but is overrideable for efficiency.
|
static |
This is different than a computeSliceDist < 0 because we need to ensure that we are consistent with <= against a zero result...
|
static |
This returns true only if the bounding box is fully contained in the slice. Assumes convex slices.
|
protectedvirtual |
Returns whether we are inside this slice or not. true is inside. This corresponds to a negative slice boundary distance but is overrideable for efficiency. Default implementation just compares the distance with 0.