MeshLib C# Docs
Loading...
Searching...
No Matches
MR.IFastWindingNumber Class Reference

Abstract class for fast approximate computation of generalized winding number for a mesh (using its AABB tree) Generated from class MR.IFastWindingNumber. Derived classes: Direct: (non-virtual) MR.FastWindingNumber This is the non-const half of the class. More...

+ Inheritance diagram for MR.IFastWindingNumber:

Public Member Functions

unsafe void calcFromVector (MR.Std.Vector_Float res, MR.Std.Const_Vector_MRVector3f points, float beta, MR._InOpt_FaceId skipFace=default, MR.Std.Const_Function_BoolFuncFromFloat? cb=null)
 calculates winding numbers in the points from given vector
 
unsafe void calcSelfIntersections (MR.FaceBitSet res, float beta, MR.Std.Const_Function_BoolFuncFromFloat? cb=null)
 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
 
unsafe void calcFromGrid (MR.Std.Vector_Float res, in MR.Vector3i dims, in MR.AffineXf3f gridToMeshXf, float beta, MR.Std.Const_Function_BoolFuncFromFloat? cb=null)
 calculates winding numbers in each point from a three-dimensional grid
 
unsafe void calcFromGridWithDistances (MR.Std.Vector_Float res, in MR.Vector3i dims, in MR.AffineXf3f gridToMeshXf, MR.Const_DistanceToMeshOptions options, MR.Std.Const_Function_BoolFuncFromFloat 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
 

Detailed Description

Abstract class for fast approximate computation of generalized winding number for a mesh (using its AABB tree) Generated from class MR.IFastWindingNumber. Derived classes: Direct: (non-virtual) MR.FastWindingNumber This is the non-const half of the class.

Member Function Documentation

◆ calcFromGrid()

unsafe void MR.IFastWindingNumber.calcFromGrid ( MR.Std.Vector_Float res,
in MR.Vector3i dims,
in MR.AffineXf3f gridToMeshXf,
float beta,
MR.Std.Const_Function_BoolFuncFromFloat? cb = null )
inline

calculates winding numbers in each point from a three-dimensional grid

Parameters
resresulting winding numbers, will be resized automatically
dimsdimensions of the grid
gridToMeshXftransform from integer grid locations to voxel's centers in mesh reference frame
betadetermines the precision of the approximation: the more the better, recommended value 2 or more

Generated from method MR.IFastWindingNumber.calcFromGrid. Parameter cb defaults to {}.

◆ calcFromGridWithDistances()

unsafe void MR.IFastWindingNumber.calcFromGridWithDistances ( MR.Std.Vector_Float res,
in MR.Vector3i dims,
in MR.AffineXf3f gridToMeshXf,
MR.Const_DistanceToMeshOptions options,
MR.Std.Const_Function_BoolFuncFromFloat cb )
inline

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

Parameters
resresulting signed distances, will be resized automatically
dimsdimensions of the grid

Generated from method MR.IFastWindingNumber.calcFromGridWithDistances.

◆ calcFromVector()

unsafe void MR.IFastWindingNumber.calcFromVector ( MR.Std.Vector_Float res,
MR.Std.Const_Vector_MRVector3f points,
float beta,
MR._InOpt_FaceId skipFace = default,
MR.Std.Const_Function_BoolFuncFromFloat? cb = null )
inline

calculates winding numbers in the points from given vector

Parameters
resresulting winding numbers, will be resized automatically
pointsincoming points
betadetermines the precision of the approximation: the more the better, recommended value 2 or more
skipFacethis triangle (if it is close to q) will be skipped from summation

Generated from method MR.IFastWindingNumber.calcFromVector. Parameter skipFace defaults to {}. Parameter cb defaults to {}.

◆ calcSelfIntersections()

unsafe void MR.IFastWindingNumber.calcSelfIntersections ( MR.FaceBitSet res,
float beta,
MR.Std.Const_Function_BoolFuncFromFloat? cb = null )
inline

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

Parameters
resresulting bit set
betadetermines the precision of the approximation: the more the better, recommended value 2 or more

Generated from method MR.IFastWindingNumber.calcSelfIntersections. Parameter cb defaults to {}.


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