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_TaggedBitSet_FaceTag_FixUndercuts_FindParams metric='{}')
 
None find (Mesh mesh, FixUndercuts.FindParams params, VertBitSet outUndercuts)
 
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_FixUndercuts_FindParams metric)
 
None fix (Mesh mesh, FixUndercuts.FixParams params)
 
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_FixUndercuts_FindParams getUndercutAreaMetric (Mesh mesh)
 
func_double_from_TaggedBitSet_FaceTag_FixUndercuts_FindParams getUndercutAreaProjectionMetric (Mesh mesh)
 
Vector3f improveDirection (Mesh mesh, FixUndercuts.ImproveDirectionParameters params, func_double_from_TaggedBitSet_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_TaggedBitSet_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

◆ 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_FixUndercuts_FindParams 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

◆ 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

◆ 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_FixUndercuts_FindParams mrmeshpy.FixUndercuts.getUndercutAreaMetric ( Mesh mesh)
static
returns the metric that computes total area of undercut faces

◆ getUndercutAreaProjectionMetric()

func_double_from_TaggedBitSet_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_TaggedBitSet_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: