MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::Cuda::FastWindingNumber Class Reference

#include <MRCudaFastWindingNumber.h>

+ Inheritance diagram for MR::Cuda::FastWindingNumber:

Public Member Functions

MRCUDA_API FastWindingNumber (const Mesh &mesh)
 constructs this from AABB tree of given mesh;
 
MRCUDA_API Expected< void > calcFromVector (std::vector< float > &res, const std::vector< Vector3f > &points, float beta, FaceId skipFace, const ProgressCallback &cb) override
 see methods' descriptions in IFastWindingNumber
 
MRCUDA_API Expected< void > calcSelfIntersections (FaceBitSet &res, float beta, const 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 self-intersected
 
MRCUDA_API Expected< void > calcFromGrid (std::vector< float > &res, const Vector3i &dims, const AffineXf3f &gridToMeshXf, float beta, const ProgressCallback &cb) override
 calculates winding numbers in each point from a three-dimensional grid
 
MRCUDA_API Expected< void > calcFromGridWithDistances (std::vector< float > &res, const Vector3i &dims, const AffineXf3f &gridToMeshXf, const DistanceToMeshOptions &options, const ProgressCallback &cb) override
 calculates distances with the sign obtained from generalized winding number in each point from a three-dimensional grid; if sqr(res) < minDistSq or sqr(res) >= maxDistSq, then NaN is returned for such point
 
MRCUDA_API Expected< void > calcFromGridByParts (GridByPartsFunc resFunc, const Vector3i &dims, const AffineXf3f &gridToMeshXf, float beta, int layerOverlap, const ProgressCallback &cb) override
 see methods' descriptions in IFastWindingNumberByParts
 
MRCUDA_API Expected< void > calcFromGridWithDistancesByParts (GridByPartsFunc resFunc, const Vector3i &dims, const AffineXf3f &gridToMeshXf, const DistanceToMeshOptions &options, int layerOverlap, const ProgressCallback &cb) override
 calculates distances with the sign obtained from generalized winding number in each point from a three-dimensional grid; if sqr(res) < minDistSq or sqr(res) >= maxDistSq, then NaN is returned for such point
 
- Public Member Functions inherited from MR::IFastWindingNumber
virtual ~IFastWindingNumber ()=default
 
- Public Member Functions inherited from MR::IFastWindingNumberByParts
virtual ~IFastWindingNumberByParts ()=default
 

Additional Inherited Members

- Public Types inherited from MR::IFastWindingNumberByParts
using GridByPartsFunc = std::function<Expected<void> ( std::vector<float>&& data, const Vector3i& dims, int zOffset )>
 

Detailed Description

the class for fast approximate computation of winding number for a mesh (using its AABB tree)


The documentation for this class was generated from the following file: