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

Classes

class  DistMapImproveDirectionParameters
 
class  FindParams
 
class  FixParams
 
class  ImproveDirectionParameters
 

Static Public Member Functions

Vector3f distMapImproveDirection (Mesh mesh, FixUndercuts.DistMapImproveDirectionParameters params)
 
float find (Mesh mesh, FixUndercuts.FindParams params, FaceBitSet outUndercuts, func_double_from_TypedBitSet_Id_FaceTag_FixUndercuts_FindParams metric='{}')
 
None find (Mesh mesh, FixUndercuts.FindParams params, VertBitSet outUndercuts)
 
None fix (Mesh mesh, FixUndercuts.FixParams params)
 
func_double_from_TypedBitSet_Id_FaceTag_FixUndercuts_FindParams getUndercutAreaMetric (Mesh mesh)
 
func_double_from_TypedBitSet_Id_FaceTag_FixUndercuts_FindParams getUndercutAreaProjectionMetric (Mesh mesh)
 
Vector3f improveDirection (Mesh mesh, FixUndercuts.ImproveDirectionParameters params, func_double_from_TypedBitSet_Id_FaceTag_FixUndercuts_FindParams metric)
 
float scoreUndercuts (Mesh mesh, Vector3f upDirection, Vector2i resolution)
 

Detailed Description

This is a namespace.

Member Function Documentation

◆ distMapImproveDirection()

Vector3f mrmeshpy.FixUndercuts.distMapImproveDirection ( Mesh mesh,
FixUndercuts.DistMapImproveDirectionParameters params )
static
Score candidates with distance maps, lower resolution -> faster score
\\note does not support wallAngle yet

◆ find() [1/2]

float mrmeshpy.FixUndercuts.find ( Mesh mesh,
FixUndercuts.FindParams params,
FaceBitSet outUndercuts,
func_double_from_TypedBitSet_Id_FaceTag_FixUndercuts_FindParams metric = '{}' )
static
Adds undercuts to \\param outUndercuts
if metric is set returns metric of found undercuts, otherwise returns DBL_MAX

◆ find() [2/2]

None mrmeshpy.FixUndercuts.find ( Mesh mesh,
FixUndercuts.FindParams params,
VertBitSet outUndercuts )
static
Adds undercuts to \\param outUndercuts

◆ fix()

None mrmeshpy.FixUndercuts.fix ( Mesh mesh,
FixUndercuts.FixParams params )
static
Fixes undercut areas by building vertical walls under it,
algorithm is performed in voxel space, so the mesh is completely rebuilt after this operation

◆ getUndercutAreaMetric()

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

◆ getUndercutAreaProjectionMetric()

func_double_from_TypedBitSet_Id_FaceTag_FixUndercuts_FindParams mrmeshpy.FixUndercuts.getUndercutAreaProjectionMetric ( Mesh mesh)
static
returns the metric that computes summed absolute projected area of undercut

◆ improveDirection()

Vector3f mrmeshpy.FixUndercuts.improveDirection ( Mesh mesh,
FixUndercuts.ImproveDirectionParameters params,
func_double_from_TypedBitSet_Id_FaceTag_FixUndercuts_FindParams metric )
static
Parallel finds best of several directions defined by ImproveDirectionParameters struct
 \\note does not support wallAngle yet
                      ________
        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
\\note does not support wallAngle yet

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