69 [[nodiscard]]
float calc_(
const Vector3f & q,
float beta, FaceId skipFace = {} )
const;
73 const Dipoles & dipoles_;
86 using GridByPartsFunc = std::function<Expected<void> ( std::vector<float>&& data,
const Vector3i& dims,
int zOffset )>;
97 const AffineXf3f& gridToMeshXf,
float beta,
int layerOverlap,
const ProgressCallback& cb ) = 0;
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:79
#define MRMESH_CLASS
Definition MRMesh/MRMeshFwd.h:83
Definition MRAABBTree.h:16
Definition MRFastWindingNumber.h:55
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 FastWindingNumber(const Mesh &mesh)
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 thre...
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 g...
MRMESH_API Expected< void > calcFromVector(std::vector< float > &res, const std::vector< Vector3f > &points, float beta, FaceId skipFace, const ProgressCallback &cb) override
calculates winding numbers in the points from given vector
Abstract class that complements IFastWindingNumber with chunked processing variants of its methods.
Definition MRFastWindingNumber.h:78
virtual Expected< void > calcFromGridByParts(GridByPartsFunc resFunc, const Vector3i &dims, const AffineXf3f &gridToMeshXf, float beta, int layerOverlap, const ProgressCallback &cb)=0
calculates winding numbers in each point from a three-dimensional grid
std::function< Expected< void >(std::vector< float > &&data, const Vector3i &dims, int zOffset)> GridByPartsFunc
Definition MRFastWindingNumber.h:86
virtual Expected< void > calcFromGridWithDistancesByParts(GridByPartsFunc resFunc, const Vector3i &dims, const AffineXf3f &gridToMeshXf, const DistanceToMeshOptions &options, int layerOverlap, const ProgressCallback &cb)=0
calculates distances with the sign obtained from generalized winding number in each point from a thre...
virtual ~IFastWindingNumberByParts()=default
Abstract class for fast approximate computation of generalized winding number for a mesh (using its A...
Definition MRFastWindingNumber.h:12
virtual Expected< void > calcFromGrid(std::vector< float > &res, const Vector3i &dims, const AffineXf3f &gridToMeshXf, float beta, const ProgressCallback &cb={})=0
calculates winding numbers in each point from a three-dimensional grid
virtual Expected< void > calcFromVector(std::vector< float > &res, const std::vector< Vector3f > &points, float beta, FaceId skipFace={}, const ProgressCallback &cb={})=0
calculates winding numbers in the points from given vector
virtual Expected< void > calcSelfIntersections(FaceBitSet &res, float beta, const ProgressCallback &cb={})=0
calculates winding numbers for all centers of mesh's triangles. if winding number is less than 0 or g...
virtual Expected< void > calcFromGridWithDistances(std::vector< float > &res, const Vector3i &dims, const AffineXf3f &gridToMeshXf, const DistanceToMeshOptions &options, const ProgressCallback &cb)=0
calculates distances with the sign obtained from generalized winding number in each point from a thre...
virtual ~IFastWindingNumber()=default
std::function< bool(float)> ProgressCallback
Definition MRMesh/MRMeshFwd.h:636
tl::expected< T, E > Expected
Definition MRExpected.h:59
options determining computation of distance from a point to a mesh
Definition MRDistanceToMeshOptions.h:11
Definition MRMesh/MRMesh.h:23