MeshLib C++ Docs
Loading...
Searching...
No Matches
MRVDBConversions.h File Reference
#include "MRVoxelsFwd.h"
#include "MRMesh/MRMeshPart.h"
#include "MRMesh/MRProgressCallback.h"
#include "MRMesh/MRAffineXf3.h"
#include "MRMesh/MRExpected.h"
#include "MRMesh/MRBox.h"
#include <climits>
#include <string>
#include <optional>

Go to the source code of this file.

Classes

struct  MR::MeshToVolumeParams
 
struct  MR::GridToMeshSettings
 parameters of OpenVDB Grid to Mesh conversion using Dual Marching Cubes algorithm More...
 
struct  MR::MakeSignedByWindingNumberSettings
 
struct  MR::DoubleOffsetSettings
 

Namespaces

namespace  MR
 

Functions

MRVOXELS_API FloatGrid MR::meshToLevelSet (const MeshPart &mp, const AffineXf3f &xf, const Vector3f &voxelSize, float surfaceOffset=3, ProgressCallback cb={})
 
MRVOXELS_API FloatGrid MR::meshToDistanceField (const MeshPart &mp, const AffineXf3f &xf, const Vector3f &voxelSize, float surfaceOffset=3, ProgressCallback cb={})
 
MRVOXELS_API void MR::evalGridMinMax (const FloatGrid &grid, float &min, float &max)
 
MRVOXELS_API Expected< VdbVolume > MR::meshToVolume (const Mesh &mesh, const MeshToVolumeParams &params={})
 
MRVOXELS_API VdbVolume MR::floatGridToVdbVolume (FloatGrid grid)
 
MRVOXELS_API FloatGrid MR::simpleVolumeToDenseGrid (const SimpleVolume &simpleVolume, float background=0.0f, ProgressCallback cb={})
 
MRVOXELS_API VdbVolume MR::simpleVolumeToVdbVolume (const SimpleVolumeMinMax &simpleVolume, ProgressCallback cb={})
 
template<typename AccessorOrGrid >
MRVOXELS_API void MR::putSimpleVolumeInDenseGrid (AccessorOrGrid &gridAccessor, const Vector3i &minCoord, const SimpleVolume &simpleVolume, ProgressCallback cb={})
 Copy given simpleVolume into the grid, starting at minCoord Instantiated for AccessorOrGrid in { openvdb::FloatGrid::Accessor, FloatGrid, openvdb::FloatGrid }. The template is used to not include openvdb's mess into this header (forward declaring classes in openvdb is also non-trivial). When used with a Grid, multithreaded implementation of copying is used (so the function is not thread safe). When used with an Accessor, this function could be called from different threads on the same volume (provided that accessors are different, of course).
 
MRVOXELS_API void MR::makeVdbTopologyDense (VdbVolume &volume)
 Make volume dense without setting any values.
 
MRVOXELS_API Expected< SimpleVolumeMinMax > MR::vdbVolumeToSimpleVolume (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), ProgressCallback cb={})
 
MRVOXELS_API Expected< SimpleVolumeMinMax > MR::vdbVolumeToSimpleVolumeNorm (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), std::optional< MinMaxf > sourceScale={}, ProgressCallback cb={})
 
MRVOXELS_API Expected< SimpleVolumeMinMaxU16 > MR::vdbVolumeToSimpleVolumeU16 (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), std::optional< MinMaxf > sourceScale={}, ProgressCallback cb={})
 
MRVOXELS_API Expected< MeshMR::gridToMesh (const FloatGrid &grid, const GridToMeshSettings &settings)
 converts OpenVDB Grid into mesh using Dual Marching Cubes algorithm
 
MRVOXELS_API Expected< MeshMR::gridToMesh (FloatGrid &&grid, const GridToMeshSettings &settings)
 
MRVOXELS_API Expected< void > MR::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 point from refMesh
 
MRVOXELS_API Expected< MeshMR::doubleOffsetVdb (const MeshPart &mp, const DoubleOffsetSettings &settings)