11 #ifndef __GAS_SubSolver__
12 #define __GAS_SubSolver__
60 void addError(
const char *msg,
140 SIM_Object *obj,
const char *name,
bool silent=
false);
143 SIM_Object *obj,
const char *name,
bool silent=
false);
145 SIM_Object *obj,
const char *name,
bool silent=
false);
148 SIM_Object *obj,
const char *name,
bool silent=
false);
151 SIM_Object *obj,
const char *name,
bool silent=
false);
156 SIM_Object *obj,
const char *name,
bool silent=
false);
158 SIM_Object *obj,
const char *name,
bool silent=
false);
182 void buildRelationshipField(
189 bool usepoint,
bool usesdf,
205 bool findReferenceBBox(
207 const char *parmname,
208 const char *groupparmname,
213 void reportCLError(
SIM_Object *obj,
int err,
const char *msg)
const;
221 virtual bool solveGasSubclass(
SIM_Engine &engine,
263 fpreal *minradius = 0)
const;
293 buildRelationshipFieldInternal,
295 void buildRelationshipFieldInternalPartial(
351 d = SYSsafediv(d, s);
373 static float applyTimeScalePow(
float value,
float t);
377 static void applyTimeScale(
float &
add,
float &
mul,
378 float timestep,
int timescale);
382 static float applyLengthScale(
float val,
float width,
387 void clearForces(
GU_Detail *gdp,
bool cleartorque =
false)
const;
426 static PRM_Name ourTimeScaleMethods[NUM_TIMESCALE+1];
429 static PRM_Name ourLengthScaleMethods[NUM_LENGTHSCALE+1];
#define DECLARE_STANDARD_GETCASTTOTYPE()
#define DECLARE_CLASSNAME(DataClass, SuperClass)
#define THREADED_METHOD6_CONST(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1, PARMTYPE2, PARMNAME2, PARMTYPE3, PARMNAME3, PARMTYPE4, PARMNAME4, PARMTYPE5, PARMNAME5, PARMTYPE6, PARMNAME6)
GAS_API void GASfillRelationshipMenu(void *, PRM_Name *names, int size, const PRM_SpareData *, const PRM_Parm *)
virtual SIM_PropertyResolver * getPropertyResolverSubclass(const SIM_Object &object, const SIM_Property &property) const
Builds a resolver for evaluating properties swiftly.
GT_API const UT_StringHolder time
#define THREADED_METHOD1(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1)
SIM_PropertyResolver * vel_lookup
static PRM_ChoiceList ourTimeScaleMenu
This class holds a three dimensional scalar field.
GLuint const GLchar * name
static PRM_ChoiceList ourLengthScaleMenu
SIM_RawIndexField * index
const SIM_RawField * stencil
UT_BoundingBox activerange
Holds pointers to a number of SIM_Object objects.
#define SYS_STATIC_FORCE_INLINE
static PRM_ChoiceList ourMixMethodMenu
GLuint const GLuint * names
This class holds a three dimensional tensor field.
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
const GEO_PrimVolume * volume
virtual SIM_Result postSolveObjectsSubclass(SIM_Engine &engine, SIM_ObjectArray &objects, SIM_ObjectArray &newobjects, SIM_ObjectArray &feedbacktoobjects, const SIM_Time ×tep)
This class holds a three dimensional scalar field.
virtual bool postSolveGasSubclass(SIM_Engine &engine, SIM_Object *obj, SIM_Time time, SIM_Time timestep)
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
GLint GLfloat GLint stencil
This class holds a three dimensional vector field.
const SIM_RawField * surface
SYS_STATIC_FORCE_INLINE float mixValues(MIX_NAMES mixtype, float d, float s)
Performs the requires mixing.
virtual fpreal getPropertyAtPointSubclass(const SIM_Object &object, int ptnum, const SIM_Property &property) const
ImageBuf OIIO_API mul(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
SYS_FORCE_INLINE GA_Size getNumPoints() const
Return the number of points.
This implements a SIM_Geometry that copies the source geometry.