Classes | |
struct | DistMapImproveDirectionParameters |
struct | FindParams |
Parameters that is used to find undercuts. More... | |
struct | FixParams |
Fix undercuts function paramters. More... | |
struct | ImproveDirectionParameters |
Typedefs | |
using | UndercutMetric = std::function<double( const FaceBitSet&, const FindParams& params )> |
Functions | |
MRVOXELS_API void | fixUndercuts (Mesh &mesh, const Vector3f &upDirection, float voxelSize=0.0f, float bottomExtension=0.0f) |
MRVOXELS_API void | fixUndercuts (Mesh &mesh, const FaceBitSet &selectedArea, const Vector3f &upDirection, float voxelSize=0.0f, float bottomExtension=0.0f) |
MRVOXELS_API Expected< void > | fix (Mesh &mesh, const FixParams ¶ms) |
MRVOXELS_API UndercutMetric | getUndercutAreaMetric (const Mesh &mesh) |
returns the metric that computes total area of undercut faces | |
MRVOXELS_API UndercutMetric | getUndercutAreaProjectionMetric (const Mesh &mesh) |
returns the metric that computes summed absolute projected area of undercut | |
MRVOXELS_API void | findUndercuts (const Mesh &mesh, const Vector3f &upDirection, FaceBitSet &outUndercuts) |
Adds to. | |
MRVOXELS_API void | findUndercuts (const Mesh &mesh, const Vector3f &upDirection, VertBitSet &outUndercuts) |
Adds to. | |
MRVOXELS_API double | findUndercuts (const Mesh &mesh, const Vector3f &upDirection, FaceBitSet &outUndercuts, const UndercutMetric &metric) |
MRVOXELS_API double | find (const Mesh &mesh, const FindParams ¶ms, FaceBitSet &outUndercuts, const UndercutMetric &metric={}) |
MRVOXELS_API void | find (const Mesh &mesh, const FindParams ¶ms, VertBitSet &outUndercuts) |
Adds undercuts to. | |
MRVOXELS_API double | scoreUndercuts (const Mesh &mesh, const Vector3f &upDirection, const Vector2i &resolution) |
MRVOXELS_API Vector3f | improveDirection (const Mesh &mesh, const ImproveDirectionParameters ¶ms, const UndercutMetric &metric) |
MRVOXELS_API Vector3f | distMapImproveDirection (const Mesh &mesh, const DistMapImproveDirectionParameters ¶ms) |
using MR::FixUndercuts::UndercutMetric = std::function<double( const FaceBitSet&, const FindParams& params )> |
|
nodiscard |
Score candidates with distance maps, lower resolution -> faster score
MRVOXELS_API double MR::FixUndercuts::find | ( | const Mesh & | mesh, |
const FindParams & | params, | ||
FaceBitSet & | outUndercuts, | ||
const UndercutMetric & | metric = {} ) |
Adds undercuts to
outUndercuts | if metric is set returns metric of found undercuts, otherwise returns DBL_MAX |
MRVOXELS_API void MR::FixUndercuts::find | ( | const Mesh & | mesh, |
const FindParams & | params, | ||
VertBitSet & | outUndercuts ) |
Adds undercuts to.
outUndercuts |
MRVOXELS_API void MR::FixUndercuts::findUndercuts | ( | const Mesh & | mesh, |
const Vector3f & | upDirection, | ||
FaceBitSet & | outUndercuts ) |
Adds to.
outUndercuts | undercut faces |
|
nodiscard |
Adds to
outUndercuts | undercut faces Returns summary metric of undercut faces |
MRVOXELS_API void MR::FixUndercuts::findUndercuts | ( | const Mesh & | mesh, |
const Vector3f & | upDirection, | ||
VertBitSet & | outUndercuts ) |
Adds to.
outUndercuts | undercut vertices |
MRVOXELS_API Expected< void > MR::FixUndercuts::fix | ( | Mesh & | mesh, |
const FixParams & | params ) |
Fixes undercut areas by building vertical walls under it, algorithm is performed in voxel space, so the mesh is completely rebuilt after this operation
MRVOXELS_API void MR::FixUndercuts::fixUndercuts | ( | Mesh & | mesh, |
const FaceBitSet & | selectedArea, | ||
const Vector3f & | upDirection, | ||
float | voxelSize = 0.0f, | ||
float | bottomExtension = 0.0f ) |
MRVOXELS_API void MR::FixUndercuts::fixUndercuts | ( | Mesh & | mesh, |
const Vector3f & | upDirection, | ||
float | voxelSize = 0.0f, | ||
float | bottomExtension = 0.0f ) |
|
nodiscard |
returns the metric that computes total area of undercut faces
|
nodiscard |
returns the metric that computes summed absolute projected area of undercut
|
nodiscard |
|
nodiscard |
Fast score undercuts projected area via distance map with given resolution lower resolution means lower precision, but faster work