38 #ifndef __SNOW_Solver_h__ 
   39 #define __SNOW_Solver_h__ 
   50 #define SIM_NAME_BIRTHRATE      "birthrate" 
   51 #define SIM_NAME_ORIGINALDEPTH  "originaldepth" 
   56 typedef unsigned char           u8;
 
   58 namespace HDK_Sample {
 
   60 class SNOW_VoxelArray;
 
   81                                         bool newobject) 
override;
 
   87                                 int sx, 
int sy, 
int sz,
 
   88                                 int dx, 
int dy, 
int dz,
 
   89                                 int &rx, 
int &ry, 
int &rz,
 
  113     void                 setVoxelArrayAttributes(
 
  116     DECLARE_STANDARD_GETCASTTOTYPE();
 
  120                         getSolverSNOWDopDescription());
 
  124 #define VOXEL_EMPTY             0 
  126 #define VOXEL_COMPRESSED        2 
  128 #define VOXEL_OBJECT            4 
  130 #define SNOW_NAME_DIVISIONS     "div" 
  131 #define SNOW_NAME_CENTER        "t" 
  132 #define SNOW_NAME_SIZE          "size" 
  184                                    int x0, 
int y0, 
int z0,
 
  185                                    int x1, 
int y1, 
int z1,
 
  186                                    int x2, 
int y2, 
int z2,
 
  187                                    int x3, 
int y3, 
int z3);
 
  188     void                 buildGeometryFromArray();
 
  189     void                 freeArray() 
const;
 
  190     void                 allocateArray() 
const;
 
  197     DECLARE_STANDARD_GETCASTTOTYPE();
 
  201                         getVoxelArrayDopDescription() 
 
  241     DECLARE_STANDARD_GETCASTTOTYPE();
 
  245                         getVisualizeDopDescription() 
 
#define SIM_NAME_SHOWGUIDE
 
void initAlternateRepresentationSubclass(const SIM_Data &) override
 
GETSET_DATA_FUNCS_F(SIM_NAME_BIRTHRATE, BirthRate)
 
void initializeSubclass() override
 
GET_GUIDE_FUNC_V3(SIM_NAME_COLOR, Color,(1, 1, 1))
 
void pubHandleModification()
 
GLdouble GLdouble GLdouble z
 
GETSET_DATA_FUNCS_V3(SNOW_NAME_DIVISIONS, Divisions)
 
void makeEqualSubclass(const SIM_Data *source) override
Makes this geometry equal to some other SIM_Geometry. 
 
void initializeSubclass() override
Set initial values on all the geometry attributes. 
 
int64 getMemorySizeSubclass() const override
 
void fillRow(SNOW_VoxelArray &snow, fpreal startx, fpreal endx, int y, int z, u8 voxeltype, SIM_Random *rand) const 
 
GET_GUIDE_FUNC_B(SIM_NAME_SHOWGUIDE, ShowGuide, true)
 
GU_ConstDetailHandle getGeometrySubclass() const override
 
bool getIsAlternateRepresentationSubclass() const override
 
u8 getVoxel(int x, int y, int z) const 
 
int rand_choice(int numchoice, SIM_Random *rand) const 
 
Holds pointers to a number of SIM_Object objects. 
 
void saveIOSubclass(std::ostream &os, SIM_DataThreadedIO *io) const override
 
GLsizei GLsizei GLchar * source
 
SNOW_Visualize(const SIM_DataFactory *factory)
 
GLuint const GLchar * name
 
int clearInDirection(const SNOW_VoxelArray &snow, int sx, int sy, int sz, int dx, int dy, int dz, int &rx, int &ry, int &rz, int maxdist, SIM_Random *rand) const 
 
static void createBoundingBoxGuide(GU_Detail *gdp, const UT_BoundingBox &bbox, const UT_Vector3 &color)
 
void setVoxel(u8 voxel, int x, int y, int z)
 
void applyGeometry(SNOW_VoxelArray &snow, const GU_ConstDetailHandle &gdh, const UT_DMatrix4 &xform, u8 voxletype, SIM_Random *rand) const 
 
#define SIM_NAME_BIRTHRATE
 
SIM_Guide * createGuideObjectSubclass() const override
 
void optionChangedSubclass(const char *name) override
 
SNOW_Solver(const SIM_DataFactory *factory)
 
bool brownianize(int &v, int dv, int max, SIM_Random *rand) const 
 
void clearSnow(SNOW_VoxelArray &snow, int x, int y, int z, SIM_Random *rand) const 
 
SNOW_VoxelArray(const SIM_DataFactory *factory)
 
void handleModification(int code=-1)
 
ImageBuf OIIO_API max(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
 
void handleModificationSubclass(int code) override
 
bool loadIOSubclass(UT_IStream &is, SIM_DataThreadedIO *io) override
 
SIM_Result solveSingleObjectSubclass(SIM_Engine &engine, SIM_Object &object, SIM_ObjectArray &feedbacktoobjects, const SIM_Time ×tep, bool newobject) override
 
~SNOW_VoxelArray() override
 
~SNOW_Visualize() override
 
void buildGuideGeometrySubclass(const SIM_RootData &root, const SIM_Options &options, const GU_DetailHandle &gdh, UT_DMatrix4 *xform, const SIM_Time &t) const override
 
GLdouble GLdouble GLdouble y2
 
#define SNOW_NAME_DIVISIONS
 
#define SIM_NAME_ORIGINALDEPTH
 
GETSET_DATA_FUNCS_I(SIM_NAME_ORIGINALDEPTH, OriginalDepth)
 
SIM_Random * createRandomData(SIM_Object *obj) const