8 #ifndef __SIM_SolverEnable_h__
9 #define __SIM_SolverEnable_h__
20 class SIM_SolverEnableTestCache;
36 { mySolverListCached =
false; mySolverList.clear(); }
70 BaseClass::makeEqualSubclass(source);
80 BaseClass::saveSubclass(os);
85 if (!BaseClass::loadSubclass(is))
87 if (!myParms.load(is))
134 bool &colliderreverseobjectroles)
const override;
143 mutable bool mySolverListCached;
145 mutable TestCache myTestCache;
151 getSolverEnableDopDescription());
UT_StringHolder myObjectPatternCache
const SIM_SolverEnableParms & param() const
#define DECLARE_STANDARD_GETCASTTOTYPE()
#define SIM_DATA_CASTCONST(Data, DataClass)
cvex test(vector P=0;int unbound=3;export float s=0;export vector Cf=0;)
GLuint GLsizei const GLchar * label
UT_StringArray myParsedAttrib
UT_StringHolder myDataNamesCache
virtual void getDefaultColliderSubclass(const SIM_Object &object, const UT_String &colliderlabel, UT_String &collidertype, bool &colliderreverseobjectroles) const
virtual int getRequestedCacheSubclass() const
SIM_SolverEnableParms & param()
UT_StringHolder myAttribNamesCache
bool loadSubclass(UT_IStream &is) override
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
UT_StringArray myParsedData
SIM_Query * createQueryObjectSubclass() const override
Creates a SIM_QueryArrays object to treat impact as a record.
void makeEqualSubclass(const SIM_Data *source) override
Holds pointers to a number of SIM_Object objects.
GLsizei GLsizei GLchar * source
virtual void getImpulseMassMatrixSubclass(const SIM_Object &object, const UT_Vector3 &impulseworldpos, UT_DMatrix3 &immatrix) const
void setVersionParms(OP_VERSION version)
virtual SIM_PointImpulseMassMatrixResolver * getPointImpulseMassMatrixResolverSubclass(const SIM_Object &object) const
Builds a resolver for evaluating mass matrices swiftly.
OP_VERSION versionParms() const
virtual SIM_Result solveObjectsSubclass(SIM_Engine &engine, SIM_ObjectArray &objects, SIM_ObjectArray &newobjects, SIM_ObjectArray &feedbacktoobjects, const SIM_Time ×tep)=0
virtual fpreal getPropertyAtPositionSubclass(const SIM_Object &object, const UT_Vector3 &worldpos, const SIM_Property &property) const
GT_API const UT_StringHolder version
virtual void getDefaultColliderLabelSubclass(const SIM_Object &object, UT_String &label) const
Gets the default collider label for an object using this solver.
SIM_ConstDataArray myData
void clearCachedSubdata() const
UT_UniquePtr< SIM_DataFilterRootData > myObjectFilter
void saveSubclass(std::ostream &os) const override
virtual SIM_Result solveRelationshipSubclass(SIM_Engine &engine, SIM_Relationship &relationship, const SIM_Time ×tep)
virtual void getPointImpulseMassMatrixSubclass(const SIM_Object &object, int ptnum, UT_DMatrix3 &immatrix) const
virtual bool isStaticSubclass(const SIM_Object *obj) const
Determines if this solver does nothing on the object.
UT_StringArray myParsedField
UT_StringHolder myFieldNamesCache
virtual fpreal getPropertyAtPointSubclass(const SIM_Object &object, int ptnum, const SIM_Property &property) const