|
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) |
|
◆ _pybind11_conduit_v1_()
mrmeshpy.FixUndercuts._pybind11_conduit_v1_ |
( |
* | args, |
|
|
** | kwargs ) |
|
staticprotected |
◆ distMapImproveDirection()
Score candidates with distance maps, lower resolution -> faster score
◆ findUndercuts() [1/3]
Adds to \\param outUndercuts undercut faces
◆ findUndercuts() [2/3]
Adds to \\param outUndercuts undercut faces
Returns summary metric of undercut faces
◆ findUndercuts() [3/3]
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()
returns the metric that computes total area of undercut faces
◆ getUndercutAreaProjectionMetric()
returns the metric that computes summed absolute area of undercut faces as visible if look from upDir
◆ improveDirection()
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()
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: