MeshLib Python Docs
Loading...
Searching...
No Matches
mrmeshpy.FastWindingNumber Class Reference
Inheritance diagram for mrmeshpy.FastWindingNumber:

Public Member Functions

None __init__ (self, Mesh mesh)
None __init__ (self, FastWindingNumber arg0)
None calcFromGrid (self, std_vector_float res, Vector3i dims, AffineXf3f gridToMeshXf, float beta, func_bool_from_float cb)
None calcFromGridWithDistances (self, std_vector_float res, Vector3i dims, AffineXf3f gridToMeshXf, DistanceToMeshOptions options, func_bool_from_float cb)
None calcFromVector (self, std_vector_float res, std_vector_Vector3_float points, float beta, FaceId skipFace, func_bool_from_float cb)
None calcSelfIntersections (self, FaceBitSet res, float beta, func_bool_from_float cb)
float calcWithDistances (self, Vector3f p, DistanceToMeshOptions options)

Static Public Member Functions

None __init__ (*args, **kwargs)
Static Public Member Functions inherited from mrmeshpy.IFastWindingNumber
IFastWindingNumber operator (*args, **kwargs)

Detailed Description

Generated from:  MR::FastWindingNumber

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")]]`.

Constructor & Destructor Documentation

◆ __init__() [1/3]

None mrmeshpy.FastWindingNumber.__init__ ( * args,
** kwargs )
static

◆ __init__() [2/3]

None mrmeshpy.FastWindingNumber.__init__ ( self,
Mesh mesh )
constructs this from AABB tree of given mesh;
this remains valid only if tree is valid

◆ __init__() [3/3]

None mrmeshpy.FastWindingNumber.__init__ ( self,
FastWindingNumber arg0 )
Implicit copy constructor.

Member Function Documentation

◆ calcFromGrid()

None mrmeshpy.FastWindingNumber.calcFromGrid ( self,
std_vector_float res,
Vector3i dims,
AffineXf3f gridToMeshXf,
float beta,
func_bool_from_float cb )
calculates winding numbers in each point from a three-dimensional grid
\\param res resulting winding numbers, will be resized automatically
\\param dims dimensions of the grid
\\param gridToMeshXf transform from integer grid locations to voxel's centers in mesh reference frame
\\param beta determines the precision of the approximation: the more the better, recommended value 2 or more

Reimplemented from mrmeshpy.IFastWindingNumber.

◆ calcFromGridWithDistances()

None mrmeshpy.FastWindingNumber.calcFromGridWithDistances ( self,
std_vector_float res,
Vector3i dims,
AffineXf3f gridToMeshXf,
DistanceToMeshOptions options,
func_bool_from_float cb )
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
\\param res resulting signed distances, will be resized automatically
\\param dims dimensions of the grid

Reimplemented from mrmeshpy.IFastWindingNumber.

◆ calcFromVector()

None mrmeshpy.FastWindingNumber.calcFromVector ( self,
std_vector_float res,
std_vector_Vector3_float points,
float beta,
FaceId skipFace,
func_bool_from_float cb )
see methods' descriptions in IFastWindingNumber

Reimplemented from mrmeshpy.IFastWindingNumber.

◆ calcSelfIntersections()

None mrmeshpy.FastWindingNumber.calcSelfIntersections ( self,
FaceBitSet res,
float beta,
func_bool_from_float cb )
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
\\param res resulting bit set
\\param beta determines the precision of the approximation: the more the better, recommended value 2 or more

Reimplemented from mrmeshpy.IFastWindingNumber.

◆ calcWithDistances()

float mrmeshpy.FastWindingNumber.calcWithDistances ( self,
Vector3f p,
DistanceToMeshOptions options )

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