MeshLib C++ Docs
Loading...
Searching...
No Matches

#include <MRMesh/MRFastWindingNumber.h>

Inheritance diagram for MR::FastWindingNumber:

Public Member Functions

 FastWindingNumber (const Mesh &mesh)
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
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
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
float calcWithDistances (const Vector3f &p, const DistanceToMeshOptions &options)
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: