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);
187 void buildRelationshipField(
194 bool usepoint,
bool usesdf,
211 bool findReferenceBBox(
213 const char *parmname,
214 const char *groupparmname,
219 void reportCLError(
SIM_Object *obj,
int err,
const char *msg)
const;
227 virtual bool solveGasSubclass(
SIM_Engine &engine,
269 fpreal *minradius = 0)
const;
301 buildRelationshipFieldInternal,
303 void buildRelationshipFieldInternalPartial(
359 d = SYSsafediv(d, s);
381 static float applyTimeScalePow(
float value,
float t);
385 static void applyTimeScale(
float &
add,
float &
mul,
386 float timestep,
int timescale);
390 static float applyLengthScale(
float val,
float width,
395 void clearForces(
GU_Detail *gdp,
bool cleartorque =
false)
const;
434 static PRM_Name ourTimeScaleMethods[NUM_TIMESCALE+1];
437 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
UT_Vector3T< float > UT_Vector3
This class holds a three dimensional scalar field.
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 GLchar * name
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.