HDK
|
#include <SIM_ConAnchor.h>
Public Member Functions | |
const SIM_Object * | getReferencedObject (const SIM_Time &time) const |
bool | getNeedsInit () const |
void | initAnchor (const SIM_Object *object) |
bool | getObjectSpecification (UT_String &str) const |
void | initConstraint (const SIM_Relationship *rel) |
void | buildAnchorGuideGeometry (const SIM_Options &options, const GU_DetailHandle &gdh, const SIM_Relationship &rel, const SIM_Time &t) 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 () |
![]() | |
SIM_OptionsUser (SIM_Data *owner) | |
virtual | ~SIM_OptionsUser () |
void | optionChanged (const char *name) |
const SIM_Options & | getOptions () const |
Protected Member Functions | |
SIM_ConAnchor (const SIM_DataFactory *factory) | |
~SIM_ConAnchor () override | |
void | setReferencedObject (const SIM_Object *object) |
virtual bool | getNeedsInitSubclass () const |
virtual void | initAnchorSubclass (const SIM_Object *object) |
virtual bool | getObjectSpecificationSubclass (UT_String &str) const |
Implements the real functionality of getObjectSpecification. More... | |
virtual void | initConstraintSubclass (const SIM_Relationship *rel) |
virtual void | buildAnchorGuideGeometrySubclass (const SIM_Options &options, const GU_DetailHandle &gdh, const SIM_Relationship &rel, const SIM_Time &t) const |
Default implementation does nothing. 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 |
![]() | |
SIM_Options & | getOptions () |
virtual void | optionChangedSubclass (const char *name) |
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 &) |
Definition of the relationship between a constraint and an anchor (typically part of a SIM_Object).
It knows 1) which object the anchor is associated with (may be none) 2) which part of that object (e.g., point, primitive, etc.) 3) the position, orientation and linear/angular velocities of the anchor
Definition at line 26 of file SIM_ConAnchor.h.
|
explicitprotected |
|
overrideprotected |
void SIM_ConAnchor::buildAnchorGuideGeometry | ( | const SIM_Options & | options, |
const GU_DetailHandle & | gdh, | ||
const SIM_Relationship & | rel, | ||
const SIM_Time & | t | ||
) | const |
Slight variation on buildGuideGeometry. It's just like buildGuideGeometry, but it will be called by the constraint using the anchor, and will add some extra options about the status of that constraint.
|
protectedvirtual |
Default implementation does nothing.
Reimplemented in SIM_ConAnchorRotational, SIM_ConAnchorSpatial, SIM_ConAnchorObjPointGroupPos, and SIM_ConAnchorObjPointGroupRot.
bool SIM_ConAnchor::getNeedsInit | ( | ) | const |
Returns true if the anchor has to be initialized before it is used. Initialization involves calling initAnchor() on the anchor, passing in the object we are attached to, so the anchor can customize itself to a particular object. This function calls getNeedsInitSubclass().
|
protectedvirtual |
Returns true if the anchor needs to have initAnchor() called. The default implementation returns false.
Reimplemented in SIM_ConAnchorObjPointGroupPos, SIM_ConAnchorObjPointGroupRot, SIM_ConAnchorObjSpatial, SIM_ConAnchorObjRotational, and SIM_ConAnchorAlignAxis.
bool SIM_ConAnchor::getObjectSpecification | ( | UT_String & | str | ) | const |
This function will return true if this anchor class requires an object specification otherwise it returns false. The returned string value can be used in an object filter expression.
|
protectedvirtual |
Implements the real functionality of getObjectSpecification.
Reimplemented in SIM_ConAnchorObjSpatial, and SIM_ConAnchorObjRotational.
const SIM_Object* SIM_ConAnchor::getReferencedObject | ( | const SIM_Time & | time | ) | const |
Get the object pointer stored by setReferencedObject(). This is the object that defines this anchor, if there is one. The object is interpolated to the specified simulation time so that the returned anchor values are properly interpolated.
void SIM_ConAnchor::initAnchor | ( | const SIM_Object * | object | ) |
This function performs any initialization that may be required to make a constraint specific to a particular object. For example, in spatial constraints, this function may convert a world space position parameter to an object space position. This function calls initAnchorSubclass().
|
protectedvirtual |
Initializes the anchor for use by a solver. The default implementation does nothing.
Reimplemented in SIM_ConAnchorObjPointGroupPos, SIM_ConAnchorObjPointGroupRot, SIM_ConAnchorObjSpaceRot, SIM_ConAnchorObjSpatial, and SIM_ConAnchorObjRotational.
void SIM_ConAnchor::initConstraint | ( | const SIM_Relationship * | rel | ) |
This function is responsible for calling the initAnchor function which initialize this anchor based on the owner relationship.
|
protectedvirtual |
Implements the real functionality of initConstraint. The default implementation calls initAnchor on the object from the relationship that we are interested in.
Reimplemented in SIM_ConAnchorAlignAxis.
|
protected |
Sets the object that this anchor is defined by. Calling this function is the responsibility of the subclasses that are defined by objects. This function is generally called from initAnchorSubclass().