HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GAS_FieldVex.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: GAS_FieldVex.h ( GAS Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __GAS_FieldVex__
12 #define __GAS_FieldVex__
13 
14 #include "SIMZ_API.h"
15 
16 #include <GU/GU_Detail.h>
17 
18 #include <SIM/SIM_RawField.h>
19 #include <SIM/SIM_RawIndexField.h>
20 #include <SIM/SIM_PhysicalParms.h>
21 
22 #include <CVEX/CVEX_Context.h>
23 #include <CVEX/CVEX_Value.h>
24 
25 #include <GAS/GAS_SubSolver.h>
26 #include <OP/OP_Version.h>
27 
28 class SIM_ScalarField;
29 class SIM_VectorField;
30 class SIM_MatrixField;
31 class SIM_IndexField;
32 
34 {
35 public:
36  OP_VERSION versionParms() const { return myVersion; }
37  void setVersionParms(OP_VERSION version) { myVersion = version; }
38 
39  GETSET_DATA_FUNCS_B("vex_multithread", MultiThread);
40  GETSET_DATA_FUNCS_S("vexscript", VexScript);
41  GETSET_DATA_FUNCS_S("vex_stencil", VexStencil);
42  GETSET_DATA_FUNCS_S("bindings", Bindings);
43  GETSET_DATA_FUNCS_B("autobind", Autobind);
44  GETSET_DATA_FUNCS_S("inputbindings", InputBindings);
45  GETSET_DATA_FUNCS_S("vex_cwdpath", VexCWD);
46  GETSET_DATA_FUNCS_S("vex_outputmask", VexOutputMask);
49  GETSET_DATA_FUNCS_S("vex_precision", VexPrecision);
50 
51 protected:
52  explicit GAS_FieldVex(const SIM_DataFactory *factory);
53  ~GAS_FieldVex() override;
54 
55  void makeEqualSubclass(const SIM_Data *source) override;
56 
57  bool shouldMultiThread(SIM_RawField *field) const
58  { return field->field()->numTiles() > 1; }
59 
60  bool solveGasSubclass(SIM_Engine &engine,
61  SIM_Object *obj,
62  SIM_Time time,
63  SIM_Time timestep) override;
64 
65 private:
66  static const SIM_DopDescription *getDopDescription();
67  OP_VERSION myVersion;
68 
72  "Gas Field Vex",
73  getDopDescription());
74 };
75 
76 #endif
virtual void makeEqualSubclass(const SIM_Data *source)
#define SIMZ_API
Definition: SIMZ_API.h:10
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:50
uint64 OP_VERSION
Definition: OP_Version.h:6
#define GETSET_DATA_FUNCS_B(DataName, FuncName)
GT_API const UT_StringHolder time
#define GAS_NAME_USETIMESTEP
Definition: GAS_Utils.h:39
#define GETSET_DATA_FUNCS_S(DataName, FuncName)
virtual bool solveGasSubclass(SIM_Engine &engine, SIM_Object *obj, SIM_Time time, SIM_Time timestep)=0
This class holds a three dimensional scalar field.
#define GETSET_DATA_FUNCS_F(DataName, FuncName)
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition: SIM_DataUtils.h:63
int numTiles() const
OP_VERSION versionParms() const
Definition: GAS_FieldVex.h:36
GLsizei GLsizei GLchar * source
Definition: glcorearb.h:803
This class holds a three dimensional tensor field.
GT_API const UT_StringHolder version
bool shouldMultiThread(SIM_RawField *field) const
Definition: GAS_FieldVex.h:57
void setVersionParms(OP_VERSION version)
Definition: GAS_FieldVex.h:37
This class holds a three dimensional scalar field.
#define GAS_NAME_TIMESCALE
Definition: GAS_Utils.h:40
This class holds a three dimensional vector field.
UT_VoxelArrayF UT_VoxelArrayF & field