#include <MRCudaFastWindingNumber.h>
Public Member Functions  
MRCUDA_API  FastWindingNumber (const Mesh &mesh) 
constructs this from AABB tree of given mesh;  
MRCUDA_API void  calcFromVector (std::vector< float > &res, const std::vector< Vector3f > &points, float beta, FaceId skipFace={}) override 
calculates winding numbers in the points from given vector  
MRCUDA_API bool  calcSelfIntersections (FaceBitSet &res, float beta, ProgressCallback cb) override 
calculates winding numbers for all centers of mesh's triangles. if winding number is less than 0 or greater then 1, that face is marked as selfintersected  
MRCUDA_API VoidOrErrStr  calcFromGrid (std::vector< float > &res, const Vector3i &dims, const AffineXf3f &gridToMeshXf, float beta, ProgressCallback cb) override 
calculates winding numbers in each point from a threedimensional grid  
MRCUDA_API float  calcWithDistances (const Vector3f &p, float windingNumberThreshold, float beta, float maxDistSq, float minDistSq) 
MRCUDA_API VoidOrErrStr  calcFromGridWithDistances (std::vector< float > &res, const Vector3i &dims, const AffineXf3f &gridToMeshXf, float windingNumberThreshold, float beta, float maxDistSq, float minDistSq, ProgressCallback cb) override 
calculates distances with the sign obtained from winding number in each point from a threedimensional grid  
Public Member Functions inherited from MR::IFastWindingNumber  
virtual  ~IFastWindingNumber ()=default 
the class for fast approximate computation of winding number for a mesh (using its AABB tree)
MRCUDA_API MR::Cuda::FastWindingNumber::FastWindingNumber  (  const Mesh &  mesh  ) 
constructs this from AABB tree of given mesh;

overridevirtual 
calculates winding numbers in each point from a threedimensional grid
res  resulting winding numbers, will be resized automatically 
dims  dimensions of the grid 
gridToMeshXf  transform from integer grid locations to voxel's centers in mesh reference frame 
beta  determines the precision of the approximation: the more the better, recommended value 2 or more 
Implements MR::IFastWindingNumber.

overridevirtual 
calculates distances with the sign obtained from winding number in each point from a threedimensional grid
res  resulting signed distances, will be resized automatically 
dims  dimensions of the grid 
gridToMeshXf  transform from integer grid locations to voxel's centers in mesh reference frame 
windingNumberThreshold  positive distance if winding number below or equal this threshold 
beta  determines the precision of the approximation: the more the better, recommended value 2 or more 
Implements MR::IFastWindingNumber.

overridevirtual 
calculates winding numbers in the points from given vector
res  resulting winding numbers, will be resized automatically 
points  incoming points 
beta  determines the precision of the approximation: the more the better, recommended value 2 or more 
skipFace  this triangle (if it is close to q ) will be skipped from summation 
Implements MR::IFastWindingNumber.

overridevirtual 
calculates winding numbers for all centers of mesh's triangles. if winding number is less than 0 or greater then 1, that face is marked as selfintersected
res  resulting bit set 
beta  determines the precision of the approximation: the more the better, recommended value 2 or more 
Implements MR::IFastWindingNumber.
MRCUDA_API float MR::Cuda::FastWindingNumber::calcWithDistances  (  const Vector3f &  p, 
float  windingNumberThreshold,  
float  beta,  
float  maxDistSq,  
float  minDistSq ) 