14 #ifndef __SIM_RawIndexField__
15 #define __SIM_RawIndexField__
30 const int xMin,
const int yMin,
const int zMin,
31 const int xEnd,
const int yEnd,
const int zEnd
34 bool contains(
const int x,
const int y,
const int z)
const;
63 int xres,
int yres,
int zres);
66 int xres,
int yres,
int zres,
75 void makeConstant(
exint cval);
85 bool posToIndex(
UT_Vector3 pos,
int &
x,
int &
y,
int &
z)
const;
109 exint getMemoryUsage()
const;
115 void getVoxelRes(
int &xres,
int &yres,
int &zres)
const;
120 int getXRes()
const {
return myField->getXRes(); }
121 int getYRes()
const {
return myField->getYRes(); }
122 int getZRes()
const {
return myField->getZRes(); }
128 void getWorldOrigin(
int &origx,
int &origy,
int &origz)
const;
132 { myVoxelSize = voxelsize;
133 myVoxelDiameter = voxelsize.
length(); }
139 { myField->setBorder(border, bval); }
144 return field()->isValidIndex(x, y, z);
155 int *ix,
int *iy,
int *iz,
176 buildCollisionLookup,
203 bool shouldMultiThread()
const
205 return field()->numTiles() > 1;
210 return (*field())(
x,
y,
z);
214 return (*field())(vit.
x(), vit.
y(), vit.
z());
245 exint collapseClassIndices();
249 bool shouldConnectIndices(
exint idx1,
exint idx2)
const;
252 initConnectedComponents,
292 exint countVoxelsInBox
304 int x,
int y,
int z);
307 int &
x,
int &
y,
int &
z);
311 const int *dx,
const int *dy,
const int *dz,
337 uncompressActiveTiles,
365 extrapolateActiveElements,
372 applyExtrapolatedParticleToField,
378 void applyExtrapolatedParticleToFieldPartial(
const UT_Vector3 & getBBoxOrig() const
int x() const
Retrieve the current location of the iterator.
GLint GLint GLsizei GLint border
const UT_VoxelArrayI * field() const
exint getBorderValue() const
const openvdb::tools::PointIndexGrid * ptgridvdb
UT_Array< int64 > Indices
exint operator()(int x, int y, int z) const
const SIM_RawIndexField * altclosept
#define THREADED_METHOD1(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1)
const UT_Vector3 & getBBoxSize() const
Voxel boxes are used to define voxel groups.
UT_ValArray< bool > * tileoccupied
UT_ValArray< UT_ValArray< sim_extrapelem > > * lists
SYS_FORCE_INLINE MF length() const
const UT_Vector3 & getVoxelSize() const
SIM_FieldSample getSample() const
bool isValidIndex(int x, int y, int z) const
Returns true if the given x, y, z values lie inside the valid index.
#define THREADED_METHOD3(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1, PARMTYPE2, PARMNAME2, PARMTYPE3, PARMNAME3)
UT_VoxelBorderType getBorder() const
const UT_Vector3 & getSize() const
GLdouble GLdouble GLdouble z
#define THREADED_METHOD4(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1, PARMTYPE2, PARMNAME2, PARMTYPE3, PARMNAME3, PARMTYPE4, PARMNAME4)
bool OIIO_API contains(string_view a, string_view b)
Does 'a' contain the string 'b' within it?
void setVoxelSize(const UT_Vector3 &voxelsize)
GLsizei const GLint box[]
Space-partitioning acceleration structure for points. Partitions the points into voxels to accelerate...
const UT_VoxelArrayI * origpt
const UT_Vector3 & getOrig() const
UT_VoxelArrayI * fieldNC() const
fpreal getVoxelDiameter() const
void setBorder(UT_VoxelBorderType border, exint bval)
exint getIndex(const UT_VoxelArrayIteratorF &vit) const