MeshLib Python Docs
Loading...
Searching...
No Matches
mrmeshpy.FixUndercuts Class Reference

Classes

class  DistMapImproveDirectionParameters
 
class  ImproveDirectionParameters
 

Static Public Member Functions

Vector3f distMapImproveDirection (Mesh mesh, FixUndercuts.DistMapImproveDirectionParameters params)
 
None findUndercuts (Mesh mesh, Vector3f upDirection, FaceBitSet outUndercuts)
 
None findUndercuts (Mesh mesh, Vector3f upDirection, VertBitSet outUndercuts)
 
float findUndercuts (Mesh mesh, Vector3f upDirection, FaceBitSet outUndercuts, func_double_from_TaggedBitSet_FaceTag_Vector3_float metric)
 
None fixUndercuts (Mesh mesh, Vector3f upDirection, float voxelSize=0.0, float bottomExtension=0.0)
 
None fixUndercuts (Mesh mesh, FaceBitSet selectedArea, Vector3f upDirection, float voxelSize=0.0, float bottomExtension=0.0)
 
func_double_from_TaggedBitSet_FaceTag_Vector3_float getUndercutAreaMetric (Mesh mesh)
 
func_double_from_TaggedBitSet_FaceTag_Vector3_float getUndercutAreaProjectionMetric (Mesh mesh)
 
Vector3f improveDirection (Mesh mesh, FixUndercuts.ImproveDirectionParameters params, func_double_from_TaggedBitSet_FaceTag_Vector3_float metric)
 
float scoreUndercuts (Mesh mesh, Vector3f upDirection, Vector2i resolution)
 

Static Protected Member Functions

 _pybind11_conduit_v1_ (*args, **kwargs)
 

Detailed Description

This is a namespace.

Member Function Documentation

◆ _pybind11_conduit_v1_()

mrmeshpy.FixUndercuts._pybind11_conduit_v1_ ( * args,
** kwargs )
staticprotected

◆ distMapImproveDirection()

Vector3f mrmeshpy.FixUndercuts.distMapImproveDirection ( Mesh mesh,
FixUndercuts.DistMapImproveDirectionParameters params )
static
Score candidates with distance maps, lower resolution -> faster score

◆ findUndercuts() [1/3]

None mrmeshpy.FixUndercuts.findUndercuts ( Mesh mesh,
Vector3f upDirection,
FaceBitSet outUndercuts )
static
Adds to \\param outUndercuts undercut faces

◆ findUndercuts() [2/3]

float mrmeshpy.FixUndercuts.findUndercuts ( Mesh mesh,
Vector3f upDirection,
FaceBitSet outUndercuts,
func_double_from_TaggedBitSet_FaceTag_Vector3_float metric )
static
Adds to \\param outUndercuts undercut faces
Returns summary metric of undercut faces

◆ findUndercuts() [3/3]

None mrmeshpy.FixUndercuts.findUndercuts ( Mesh mesh,
Vector3f upDirection,
VertBitSet outUndercuts )
static
Adds to \\param outUndercuts undercut vertices

◆ fixUndercuts() [1/2]

None mrmeshpy.FixUndercuts.fixUndercuts ( Mesh mesh,
FaceBitSet selectedArea,
Vector3f upDirection,
float voxelSize = 0.0,
float bottomExtension = 0.0 )
static
Changes mesh:
Fills all holes first, then:
fixes undercuts (in selected area) via prolonging widest points down
Requires to update RenderObject after using
upDirection is in mesh space
voxelSize -  size of voxel in mesh rasterization, precision grows with lower voxelSize
bottomExtension - this parameter specifies how long should bottom prolongation be, if (bottomExtension <= 0) bottomExtension = 2*voxelSize
  if mesh is not closed this is used to prolong hole and make bottom

if voxelSize == 0.0f it will be counted automaticly

◆ fixUndercuts() [2/2]

None mrmeshpy.FixUndercuts.fixUndercuts ( Mesh mesh,
Vector3f upDirection,
float voxelSize = 0.0,
float bottomExtension = 0.0 )
static
Changes mesh:
Fills all holes first, then:
fixes undercuts via prolonging widest points down
Requires to update RenderObject after using
upDirection is in mesh space
voxelSize -  size of voxel in mesh rasterization, precision grows with lower voxelSize
bottomExtension - this parameter specifies how long should bottom prolongation be, if (bottomExtension <= 0) bottomExtension = 2*voxelSize
  if mesh is not closed this is used to prolong hole and make bottom

if voxelSize == 0.0f it will be counted automaticly

◆ getUndercutAreaMetric()

func_double_from_TaggedBitSet_FaceTag_Vector3_float mrmeshpy.FixUndercuts.getUndercutAreaMetric ( Mesh mesh)
static
returns the metric that computes total area of undercut faces

◆ getUndercutAreaProjectionMetric()

func_double_from_TaggedBitSet_FaceTag_Vector3_float mrmeshpy.FixUndercuts.getUndercutAreaProjectionMetric ( Mesh mesh)
static
returns the metric that computes summed absolute area of undercut faces as visible if look from upDir

◆ improveDirection()

Vector3f mrmeshpy.FixUndercuts.improveDirection ( Mesh mesh,
FixUndercuts.ImproveDirectionParameters params,
func_double_from_TaggedBitSet_FaceTag_Vector3_float metric )
static
Parallel finds best of several directions defined by ImproveDirectionParameters struct
                     ________ 
       Top view:    /  \\__/  \\-----> maximum radial line   Side view:  |    /    _/
                   /  / \\/ \\  \\                                        |   /   _/ - maxBaseAngle
                  |--|------|--|                                       |  /  _/     difference between two angles is baseAngleStep
                   \\  \\_/\\_/  /                                        | / _/
                    \\__/__\\__/                                         |/_/
This picture shows polarAngle = 60 deg

◆ scoreUndercuts()

float mrmeshpy.FixUndercuts.scoreUndercuts ( Mesh mesh,
Vector3f upDirection,
Vector2i resolution )
static
Fast score undercuts projected area via distance map with given resolution
lower resolution means lower precision, but faster work

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