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

#include <MRFastWindingNumber.h>

+ Inheritance diagram for MR::FastWindingNumber:

Public Member Functions

MRMESH_API FastWindingNumber (const Mesh &mesh)
 
MRMESH_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
 
MRMESH_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
 
MRMESH_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
 
MRMESH_API float calcWithDistances (const Vector3f &p, const DistanceToMeshOptions &options)
 
MRMESH_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
 
- Public Member Functions inherited from MR::IFastWindingNumber
virtual ~IFastWindingNumber ()=default
 

Detailed Description

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

Note, this used to be [[nodiscard]], but GCC 12 doesn't understand both [[...]] and __attribute__(...) on the same class. A possible fix is to change MRMESH_CLASS globally to [[__gnu__::__visibility__("default")]].


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