64 x = px;
y =
py;
z = pz;
129 void setMode(sdfMode
mode);
130 sdfMode getMode()
const;
140 void setDivisions(
int divx,
int divy,
int divz);
141 void getDivisions(
int &divx,
int &divy,
int &divz)
const;
144 void setInvert(
bool invert);
145 bool getInvert()
const;
169 bool hasBBox()
const;
175 void setLaserScan(
bool laserscan);
176 bool getLaserScan()
const;
179 void setFixSigns(
int fixsigns);
180 int getFixSigns()
const;
184 void setForceBounds(
bool forcebounds);
185 bool getForceBounds()
const;
191 fpreal getMaxDistance()
const;
195 void setNumNeighbour(
int numneighbour);
196 int getNumNeighbour()
const;
213 void setMatchSourceSign();
214 bool getMatchSourceSign()
const;
228 int myDivX, myDivY, myDivZ;
255 bool myAlignedVolume;
257 bool myMatchSourceSign;
259 bool myVolumeBuildFIM;
321 int xres,
int yres,
int zres);
330 int xres,
int yres,
int zres);
337 {
return myHeightXform; }
345 {
return myImplicitType != SDF_EXPLICIT; }
349 return (isImplicit() || getFunction() != 0);
360 {
return myImplicitType; }
365 {
return myImplicitNormal; }
370 void getDivisions(
int &xdiv,
int &ydiv,
int &zdiv)
const;
403 bool normalize_gradient =
true)
const;
408 bool findSmallestOnEdge(
422 bool findSmallestOnTri(
435 template <
typename FLOAT>
436 bool findRayIntersection(
440 fpreal boundaryvalue = 0.0)
const;
453 void computeCenterOfMass(
457 fpreal computeVolume()
const;
468 int64 getMemoryUsage()
const;
490 void save(std::ostream &os)
const;
506 void fixSigns(
bool forcebounds);
514 int findConsensus(
int x,
int y,
int z,
544 void setCellTentative(
int x,
int y,
int z,
563 void propagateQueue(
fpreal maxdist);
574 int xw,
int yw,
int zw);
580 void buildFromPointCloud(
const GU_Detail *gdp,
590 const fpreal tolerance,
const int iterations);
682 myVoxels->numTiles() > 16,
687 void copyVolumeSamplesPartial(
const GU_Detail *gdp,
GA_API const UT_StringHolder dist
#define THREADED_METHOD7(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1, PARMTYPE2, PARMNAME2, PARMTYPE3, PARMNAME3, PARMTYPE4, PARMNAME4, PARMTYPE5, PARMNAME5, PARMTYPE6, PARMNAME6, PARMTYPE7, PARMNAME7)
void rasterize(const PointDataTreeOrGridT &points, TransferT &transfer, const FilterT &filter=NullFilter(), InterrupterT *interrupter=nullptr)
Perform potentially complex rasterization from a user defined transfer scheme.
#define THREADED_METHOD1(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1)
GEO_PrimVolumeXform myHeightXform
void setIsoContour(fpreal iso)
const UT_Vector3 & getVoxelSize() const
void setAlignedVolume(bool aligned)
GLdouble GLdouble GLdouble z
GLboolean GLboolean GLboolean GLboolean a
void setSweepCount(int sweepcount)
void setSweepThreshold(fpreal sweepthreshold)
**But if you need a result
const UT_Vector3 & getOrig() const
void changedPosition(gu_sdf_qelem *e, unsigned int idx) const override
static bool isMultithreaded(const GU_SDFParms &parms)
Returns whether the specified build mode is multithreaded.
fpreal myOffset
This defines how far we should shift the zero isosurface of the SDF.
#define THREADED_METHOD3(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1, PARMTYPE2, PARMNAME2, PARMTYPE3, PARMNAME3)
gu_sdf_voxpos(int px, int py, int pz)
UT_VoxelArrayF * myVoxels
void setOffset(fpreal offset)
fpreal getVoxelDiameter() const
fpreal getSweepThreshold() const
sdfImplicitType myImplicitType
const UT_Vector3 & getImplicitNormal() const
int getIterationsFIM() const
UT_IntArray myQueueFreeList
This class provides a way to manage a reference to an attribute permitting Read-Only access...
void setInverted(bool invert)
void setVolumeBuildFIM(bool activator)
#define THREADED_METHOD2(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1, PARMTYPE2, PARMNAME2)
const UT_Vector3 & getSize() const
fpreal getToleranceFIM() const
UT_Vector3 myImplicitNormal
UT_VoxelArrayF * getFunction() const
void setIterationsFIM(int iters)
GLfloat GLfloat GLfloat alpha
const GEO_PrimVolumeXform & getHeightXform() const
Returns the transform of a heightfield SDF.
#define THREADED_METHOD5(CLASSNAME, DOMULTI, METHOD, PARMTYPE1, PARMNAME1, PARMTYPE2, PARMNAME2, PARMTYPE3, PARMNAME3, PARMTYPE4, PARMNAME4, PARMTYPE5, PARMNAME5)
int getSweepCount() const
GLboolean GLboolean GLboolean b
bool getVolumeBuildFIM() const
bool operator()(const gu_sdf_qelem *e1, const gu_sdf_qelem *e2) const
exint entries() const
Alias of size(). size() is preferred.
fpreal getIsoContour() const
void setToleranceFIM(fpreal tol)
UT_Vector3 myVoxelSize
This stores the size of a voxel along each axis.
bool operator()(const gu_sdf_qelem &e1, const gu_sdf_qelem &e2) const
sdfImplicitType getImplicitType() const
Returns the type of implicit surface, if any.
UT_VoxelArray< int > * myQueueIndices
int getHeightAxis() const
Returns the vertical axis of a heightfield SDF.
fpreal myVoxelDiameter
This caches the diameter of a voxel cell. Ie, myVoxelSize.length()
bool getAlignedVolume() const
UT_ValArray< gu_sdf_qelem * > myQueueElements
GU_ConstDetailHandle myGDH