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) |
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")]]`.
|
static |
| None mrmeshpy.FastWindingNumber.__init__ | ( | self, | |
| Mesh | mesh ) |
constructs this from AABB tree of given mesh; this remains valid only if tree is valid
| None mrmeshpy.FastWindingNumber.__init__ | ( | self, | |
| FastWindingNumber | arg0 ) |
Implicit copy constructor.
| 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.
| 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.
| 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.
| 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.
| float mrmeshpy.FastWindingNumber.calcWithDistances | ( | self, | |
| Vector3f | p, | ||
| DistanceToMeshOptions | options ) |