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 Protected Member Functions | |
_pybind11_conduit_v1_ (*args, **kwargs) | |
Generated from: MR::FastWindingNumber the class for fast approximate computation of winding number for a mesh (using its AABB tree) \\ingroup AABBTreeGroup 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")]]`.
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.
|
staticprotected |
Reimplemented from mrmeshpy.IFastWindingNumber.
None mrmeshpy.FastWindingNumber.calcFromGrid | ( | self, | |
std_vector_float | res, | ||
Vector3i | dims, | ||
AffineXf3f | gridToMeshXf, | ||
float | beta, | ||
func_bool_from_float | cb ) |
<summary> calculates winding numbers in each point from a three-dimensional grid </summary> <param name="res">resulting winding numbers, will be resized automatically</param> <param name="dims">dimensions of the grid</param> <param name="gridToMeshXf">transform from integer grid locations to voxel's centers in mesh reference frame</param> <param name="beta">determines the precision of the approximation: the more the better, recommended value 2 or more</param>
Reimplemented from mrmeshpy.IFastWindingNumber.
None mrmeshpy.FastWindingNumber.calcFromGridWithDistances | ( | self, | |
std_vector_float | res, | ||
Vector3i | dims, | ||
AffineXf3f | gridToMeshXf, | ||
DistanceToMeshOptions | options, | ||
func_bool_from_float | cb ) |
<summary> 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 </summary> <param name="res">resulting signed distances, will be resized automatically</param> <param name="dims">dimensions of the grid</param>
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 ) |
<summary> 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 </summary> <param name="res">resulting bit set</param> <param name="beta">determines the precision of the approximation: the more the better, recommended value 2 or more</param>
Reimplemented from mrmeshpy.IFastWindingNumber.
float mrmeshpy.FastWindingNumber.calcWithDistances | ( | self, | |
Vector3f | p, | ||
DistanceToMeshOptions | options ) |