2#include "MRVoxelsFwd.h"
29[[nodiscard]] MRVOXELS_API
float suggestVoxelSize(
const MeshPart & mp,
float approxNumVoxels );
51 std::shared_ptr<IFastWindingNumber>
fwn;
92 const OffsetParameters& params = {}, Vector<VoxelId, FaceId>* outMap = nullptr );
120 const PartMapping & map = {} );
std::vector<T>-like container that requires specific indexing type,
Definition MRVector.h:23
SignDetectionMode
how to determine the sign of distances from a mesh
Definition MRSignDetectionMode.h:13
float voxelSize
Definition MROffset.h:22
bool closeHolesInHoleWindingNumber
whether to construct closed mesh in signMode = SignDetectionModeShort::HoleWindingNumber
Definition MROffset.h:37
ProgressCallback callBack
Progress callback.
Definition MROffset.h:25
MRVOXELS_API Expected< Mesh > mcShellMeshRegion(const Mesh &mesh, const FaceBitSet ®ion, float offset, const BaseShellParameters ¶ms, Vector< VoxelId, FaceId > *outMap=nullptr)
MRVOXELS_API Expected< Mesh > mcOffsetMesh(const MeshPart &mp, float offset, const OffsetParameters ¶ms={}, Vector< VoxelId, FaceId > *outMap=nullptr)
Mode mode
Definition MROffset.h:108
MRVOXELS_API float suggestVoxelSize(const MeshPart &mp, float approxNumVoxels)
computes size of a cubical voxel to get approximately given number of voxels during rasterization
float maxNewRank2VertDev
maximal surface deviation to introduce new rank 2 vertex (on intersection of 2 planes),...
Definition MROffset.h:70
float maxNewRank3VertDev
maximal surface deviation to introduce new rank 3 vertex (on intersection of 3 planes),...
Definition MROffset.h:72
MRVOXELS_API Expected< Mesh > generalOffsetMesh(const MeshPart &mp, float offset, const GeneralOffsetParameters ¶ms)
std::shared_ptr< IFastWindingNumber > fwn
Definition MROffset.h:51
UndirectedEdgeBitSet * outSharpEdges
if non-null then created sharp edges will be saved here
Definition MROffset.h:66
tl::expected< T, E > Expected
Definition MRExpected.h:31
MRVOXELS_API Expected< Mesh > thickenMesh(const Mesh &mesh, float offset, const GeneralOffsetParameters ¶ms={}, const PartMapping &map={})
mapping between original mesh and thicken result
MRVOXELS_API Expected< Mesh > offsetOneDirection(const MeshPart &mp, float offset, const GeneralOffsetParameters ¶ms={})
SignDetectionMode signDetectionMode
determines the method to compute distance sign
Definition MROffset.h:34
MRVOXELS_API Expected< Mesh > offsetPolyline(const Polyline3 &polyline, float offset, const OffsetParameters ¶ms={})
MRVOXELS_API Expected< Mesh > offsetMesh(const MeshPart &mp, float offset, const OffsetParameters ¶ms={})
float windingNumberThreshold
Definition MROffset.h:42
OffsetMode
Definition MREnums.h:71
bool memoryEfficient
Definition MROffset.h:60
MRVOXELS_API Expected< Mesh > sharpOffsetMesh(const MeshPart &mp, float offset, const SharpOffsetParameters ¶ms={})
MRVOXELS_API Expected< Mesh > doubleOffsetMesh(const MeshPart &mp, float offsetA, float offsetB, const OffsetParameters ¶ms={})
float windingNumberBeta
Definition MROffset.h:46
float minNewVertDev
minimal surface deviation to introduce new vertex in a voxel, measured in voxelSize
Definition MROffset.h:68
float maxOldVertPosCorrection
Definition MROffset.h:75
@ OpenVDB
sign detection from OpenVDB library, which is good and fast if input geometry is closed
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
allows the user to select in the parameters which offset algorithm to call
Definition MROffset.h:106