MeshLib
 
Loading...
Searching...
No Matches
MR::FixUndercuts Namespace Reference

Classes

struct  DistMapImproveDirectionParameters
 
struct  ImproveDirectionParameters
 

Typedefs

using UndercutMetric = std::function<double( const FaceBitSet&, const Vector3f& upDir )>
 

Functions

MRMESH_API void fixUndercuts (Mesh &mesh, const Vector3f &upDirection, float voxelSize=0.0f, float bottomExtension=0.0f)
 
MRMESH_API void fixUndercuts (Mesh &mesh, const FaceBitSet &selectedArea, const Vector3f &upDirection, float voxelSize=0.0f, float bottomExtension=0.0f)
 
MRMESH_API UndercutMetric getUndercutAreaMetric (const Mesh &mesh)
 returns the metric that computes total area of undercut faces
 
MRMESH_API UndercutMetric getUndercutAreaProjectionMetric (const Mesh &mesh)
 returns the metric that computes summed absolute area of undercut faces as visible if look from upDir
 
MRMESH_API void findUndercuts (const Mesh &mesh, const Vector3f &upDirection, FaceBitSet &outUndercuts)
 Adds to.
 
MRMESH_API double findUndercuts (const Mesh &mesh, const Vector3f &upDirection, FaceBitSet &outUndercuts, const UndercutMetric &metric)
 
MRMESH_API double scoreUndercuts (const Mesh &mesh, const Vector3f &upDirection, const Vector2i &resolution)
 
MRMESH_API Vector3f improveDirection (const Mesh &mesh, const ImproveDirectionParameters &params, const UndercutMetric &metric)
 
MRMESH_API Vector3f distMapImproveDirection (const Mesh &mesh, const DistMapImproveDirectionParameters &params)
 

Typedef Documentation

◆ UndercutMetric

using MR::FixUndercuts::UndercutMetric = std::function<double( const FaceBitSet&, const Vector3f& upDir )>

Function Documentation

◆ distMapImproveDirection()

MRMESH_API Vector3f MR::FixUndercuts::distMapImproveDirection ( const Mesh & mesh,
const DistMapImproveDirectionParameters & params )
nodiscard

◆ findUndercuts() [1/2]

MRMESH_API void MR::FixUndercuts::findUndercuts ( const Mesh & mesh,
const Vector3f & upDirection,
FaceBitSet & outUndercuts )

Adds to.

Parameters
outUndercutsundercut faces
outUndercutsundercut vertices

◆ findUndercuts() [2/2]

MRMESH_API double MR::FixUndercuts::findUndercuts ( const Mesh & mesh,
const Vector3f & upDirection,
FaceBitSet & outUndercuts,
const UndercutMetric & metric )
nodiscard

Adds to

Parameters
outUndercutsundercut faces Returns summary metric of undercut faces

◆ fixUndercuts() [1/2]

MRMESH_API void MR::FixUndercuts::fixUndercuts ( Mesh & mesh,
const FaceBitSet & selectedArea,
const Vector3f & upDirection,
float voxelSize = 0.0f,
float bottomExtension = 0.0f )

◆ fixUndercuts() [2/2]

MRMESH_API void MR::FixUndercuts::fixUndercuts ( Mesh & mesh,
const Vector3f & upDirection,
float voxelSize = 0.0f,
float bottomExtension = 0.0f )

◆ getUndercutAreaMetric()

MRMESH_API UndercutMetric MR::FixUndercuts::getUndercutAreaMetric ( const Mesh & mesh)
nodiscard

returns the metric that computes total area of undercut faces

◆ getUndercutAreaProjectionMetric()

MRMESH_API UndercutMetric MR::FixUndercuts::getUndercutAreaProjectionMetric ( const Mesh & mesh)
nodiscard

returns the metric that computes summed absolute area of undercut faces as visible if look from upDir

◆ improveDirection()

MRMESH_API Vector3f MR::FixUndercuts::improveDirection ( const Mesh & mesh,
const ImproveDirectionParameters & params,
const UndercutMetric & metric )
nodiscard

◆ scoreUndercuts()

MRMESH_API double MR::FixUndercuts::scoreUndercuts ( const Mesh & mesh,
const Vector3f & upDirection,
const Vector2i & resolution )
nodiscard