21 const Vector3f& voxelSize,
float surfaceOffset = 3,
28 const Vector3f& voxelSize,
float surfaceOffset = 3,
69template <
typename AccessorOrGr
id>
71 AccessorOrGrid& gridAccessor,
72 const Vector3i& minCoord,
const SimpleVolume& simpleVolume,
ProgressCallback cb = {}
81 const VdbVolume& vdbVolume,
const Box3i& activeBox = Box3i(),
ProgressCallback cb = {} );
88 const VdbVolume& vdbVolume,
const Box3i& activeBox = Box3i(), std::optional<MinMaxf> sourceScale = {},
ProgressCallback cb = {} );
95 const VdbVolume& vdbVolume,
const Box3i& activeBox = Box3i(), std::optional<MinMaxf> sourceScale = {},
ProgressCallback cb = {} );
128 std::shared_ptr<IFastWindingNumber>
fwn;
160 std::shared_ptr<IFastWindingNumber>
fwn;
#define MRVOXELS_API
Definition MRVoxels/MRVoxelsFwd.h:13
std::function< bool(float)> ProgressCallback
Definition MRMesh/MRMeshFwd.h:600
MRVOXELS_API Expected< SimpleVolumeMinMax > vdbVolumeToSimpleVolume(const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), ProgressCallback cb={})
MRVOXELS_API Expected< SimpleVolumeMinMaxU16 > vdbVolumeToSimpleVolumeU16(const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), std::optional< MinMaxf > sourceScale={}, ProgressCallback cb={})
MRVOXELS_API FloatGrid meshToDistanceField(const MeshPart &mp, const AffineXf3f &xf, const Vector3f &voxelSize, float surfaceOffset=3, ProgressCallback cb={})
MRVOXELS_API VdbVolume floatGridToVdbVolume(FloatGrid grid)
MRVOXELS_API VdbVolume simpleVolumeToVdbVolume(const SimpleVolumeMinMax &simpleVolume, ProgressCallback cb={})
std::shared_ptr< OpenVdbFloatGrid > FloatGrid
Definition MRVoxels/MRVoxelsFwd.h:25
tl::expected< T, E > Expected
Definition MRExpected.h:58
MRVOXELS_API void evalGridMinMax(const FloatGrid &grid, float &min, float &max)
MRVOXELS_API Expected< SimpleVolumeMinMax > vdbVolumeToSimpleVolumeNorm(const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), std::optional< MinMaxf > sourceScale={}, ProgressCallback cb={})
MRVOXELS_API FloatGrid simpleVolumeToDenseGrid(const SimpleVolume &simpleVolume, float background=0.0f, ProgressCallback cb={})
MRVOXELS_API Expected< Mesh > doubleOffsetVdb(const MeshPart &mp, const DoubleOffsetSettings &settings)
MRVOXELS_API void putSimpleVolumeInDenseGrid(AccessorOrGrid &gridAccessor, const Vector3i &minCoord, const SimpleVolume &simpleVolume, ProgressCallback cb={})
Copy given simpleVolume into the grid, starting at minCoord Instantiated for AccessorOrGrid in { open...
MRVOXELS_API Expected< VdbVolume > meshToVolume(const Mesh &mesh, const MeshToVolumeParams ¶ms={})
MRVOXELS_API void makeVdbTopologyDense(VdbVolume &volume)
Make volume dense without setting any values.
MRVOXELS_API Expected< Mesh > gridToMesh(const FloatGrid &grid, const GridToMeshSettings &settings)
converts OpenVDB Grid into mesh using Dual Marching Cubes algorithm
MRVOXELS_API FloatGrid meshToLevelSet(const MeshPart &mp, const AffineXf3f &xf, const Vector3f &voxelSize, float surfaceOffset=3, ProgressCallback cb={})
MRVOXELS_API Expected< void > makeSignedByWindingNumber(FloatGrid &grid, const Vector3f &voxelSize, const Mesh &refMesh, const MakeSignedByWindingNumberSettings &settings)
set signs for unsigned distance field grid using generalized winding number computed at voxel grid po...
Definition MRVoxels/MRVDBConversions.h:146
std::shared_ptr< IFastWindingNumber > fwn
defines particular implementation of IFastWindingNumber interface that will compute windings....
Definition MRVoxels/MRVDBConversions.h:160
float voxelSize
the size of voxel in intermediate voxel grid representation
Definition MRVoxels/MRVDBConversions.h:148
float offsetB
the amount of second offset
Definition MRVoxels/MRVDBConversions.h:154
float windingNumberThreshold
Definition MRVoxels/MRVDBConversions.h:164
ProgressCallback progress
to report algorithm's progress and to cancel it
Definition MRVoxels/MRVDBConversions.h:170
float adaptivity
in [0; 1] - ratio of combining small triangles into bigger ones (curvature can be lost on high values...
Definition MRVoxels/MRVDBConversions.h:157
float offsetA
the amount of first offset
Definition MRVoxels/MRVDBConversions.h:151
float windingNumberBeta
determines the precision of fast approximation: the more the better, minimum value is 1
Definition MRVoxels/MRVDBConversions.h:167
parameters of OpenVDB Grid to Mesh conversion using Dual Marching Cubes algorithm
Definition MRVoxels/MRVDBConversions.h:99
bool relaxDisorientedTriangles
Definition MRVoxels/MRVDBConversions.h:110
float adaptivity
adaptivity - [0.0;1.0] ratio of combining small triangles into bigger ones (curvature can be lost on ...
Definition MRVoxels/MRVDBConversions.h:105
int maxVertices
if the mesh exceeds this number of vertices, an error returns
Definition MRVoxels/MRVDBConversions.h:109
int maxFaces
if the mesh exceeds this number of faces, an error returns
Definition MRVoxels/MRVDBConversions.h:107
ProgressCallback cb
to receive progress and request cancellation
Definition MRVoxels/MRVDBConversions.h:112
Vector3f voxelSize
the size of each voxel in the grid
Definition MRVoxels/MRVDBConversions.h:101
float isoValue
layer of grid with this value would be converted in mesh; isoValue can be negative only in level set ...
Definition MRVoxels/MRVDBConversions.h:103
Definition MRVoxels/MRVDBConversions.h:123
ProgressCallback progress
to report algorithm's progress and to cancel it
Definition MRVoxels/MRVDBConversions.h:138
float windingNumberThreshold
Definition MRVoxels/MRVDBConversions.h:132
std::shared_ptr< IFastWindingNumber > fwn
defines particular implementation of IFastWindingNumber interface that will compute windings....
Definition MRVoxels/MRVDBConversions.h:128
float windingNumberBeta
determines the precision of fast approximation: the more the better, minimum value is 1
Definition MRVoxels/MRVDBConversions.h:135
AffineXf3f meshToGridXf
defines the mapping from mesh reference from to grid reference frame
Definition MRVoxels/MRVDBConversions.h:125
Definition MRVoxels/MRVDBConversions.h:33
AffineXf3f worldXf
Definition MRVoxels/MRVDBConversions.h:42
AffineXf3f * outXf
Definition MRVoxels/MRVDBConversions.h:43
Type
Definition MRVoxels/MRVDBConversions.h:36
Vector3f voxelSize
Definition MRVoxels/MRVDBConversions.h:41
enum MR::MeshToVolumeParams::Type Unsigned
float surfaceOffset
Definition MRVoxels/MRVDBConversions.h:40
ProgressCallback cb
Definition MRVoxels/MRVDBConversions.h:44
Definition MRMesh/MRMesh.h:23