MeshLib C++ Docs
Loading...
Searching...
No Matches
Basic Structures

This chapter represents documentation about basic structures elements. More...

Topics

 Raster

Classes

struct  MR::Image
struct  MR::MeshTexture
struct  MR::SceneColors
class  MR::SceneSettings
class  MR::FloatGrid
 wrapper class that helps mrbind to avoid excess MRVDBFloatGrid.h includes More...
struct  MR::OpenVdbFloatGrid
 this class just hides very complex type of typedef openvdb::FloatGrid More...

Typedefs

typedef std::function< bool(float)> MR::ProgressCallback

Functions

size_t MR::heapBytes (const FloatGrid &grid)
 returns the amount of heap memory occupied by grid
FloatGrid MR::resampled (const FloatGrid &grid, float voxelScale, ProgressCallback cb={})
 resample this grid to fit voxelScale
FloatGrid MR::resampled (const FloatGrid &grid, const Vector3f &voxelScale, ProgressCallback cb={})
 resample this grid to fit voxelScale
FloatGrid MR::cropped (const FloatGrid &grid, const Box3i &box, ProgressCallback cb={})
 returns cropped grid
size_t MR::countVoxelsWithValuePred (const FloatGrid &grid, const std::function< bool(float)> &pred)
 returns number of velxes in the grid with pred(value) == true
size_t MR::countVoxelsWithValueLess (const FloatGrid &grid, float value)
 returns number of voxels in the grid with value less than given
size_t MR::countVoxelsWithValueGreater (const FloatGrid &grid, float value)
 returns number of voxels in the grid with value greater than given
void MR::gaussianFilter (FloatGrid &grid, int width, int iters, ProgressCallback cb={})
 returns grid with gaussian filter applied
FloatGrid MR::gaussianFiltered (const FloatGrid &grid, int width, int iters, ProgressCallback cb={})
float MR::getValue (const FloatGrid &grid, const Vector3i &p)
 returns the value at given voxel
void MR::setValue (FloatGrid &grid, const Vector3i &p, float value)
void MR::setValue (FloatGrid &grid, const VoxelBitSet &region, float value)
Box3i MR::findActiveBounds (const FloatGrid &grid)
void MR::setValues (FloatGrid &grid, const VoxelBitSet &region, const std::vector< float > &values)
void MR::setLevelSetType (FloatGrid &grid)
 sets type of this grid as LEVEL SET (for normal flipping)
FloatGrid MR::operator+= (FloatGrid &a, FloatGrid &&b)
FloatGrid MR::operator-= (FloatGrid &a, FloatGrid &&b)
FloatGrid MR::operator*= (FloatGrid &a, FloatGrid &&b)
FloatGrid MR::operator+ (const FloatGrid &a, const FloatGrid &b)
FloatGrid MR::operator- (const FloatGrid &a, const FloatGrid &b)
FloatGrid MR::operator* (const FloatGrid &a, const FloatGrid &b)
openvdb::FloatGrid & MR::ovdb (OpenVdbFloatGrid &v)
const openvdb::FloatGrid & MR::ovdb (const OpenVdbFloatGrid &v)
FloatGrid MR::MakeFloatGrid (const FloatGrid &)=delete
 prohibit unnecessary conversion
FloatGrid MR::MakeFloatGrid (openvdb::FloatGrid::Ptr &&p)
 makes MR::FloatGrid shared pointer taking the contents of the input pointer
Vector3i MR::fromVdb (const openvdb::Coord &v)
openvdb::Coord MR::toVdb (const Vector3i &v)
Box3i MR::fromVdbBox (const openvdb::CoordBBox &box)
openvdb::CoordBBox MR::toVdbBox (const Box3i &box)
openvdb::CoordBBox MR::toVdbBox (const Vector3i &dims)
void MR::putSimpleVolumeInDenseGrid (openvdb::FloatGrid &grid, const Vector3i &minCoord, const SimpleVolume &simpleVolume, ProgressCallback cb={})
 Copy given simpleVolume into the grid, starting at minCoord Uses multithreaded copying, so the function is not thread safe.
void MR::putSimpleVolumeInDenseGrid (openvdb::FloatGrid::Accessor &gridAccessor, const Vector3i &minCoord, const SimpleVolume &simpleVolume, ProgressCallback cb={})
 Copy given simpleVolume into the grid of gridAccessor, starting at minCoord Can be called from different threads on the same grid, provided that the accessors are different.

Detailed Description

This chapter represents documentation about basic structures elements.

Typedef Documentation

◆ ProgressCallback

typedef std::function<bool( float )> MR::ProgressCallback

#include <MRMesh/MRMeshFwd.h>

Argument value - progress in [0,1]; returns true to continue the operation and returns false to stop the operation

Function Documentation

◆ countVoxelsWithValueGreater()

size_t MR::countVoxelsWithValueGreater ( const FloatGrid & grid,
float value )
nodiscard

#include <MRVoxels/MRFloatGrid.h>

returns number of voxels in the grid with value greater than given

◆ countVoxelsWithValueLess()

size_t MR::countVoxelsWithValueLess ( const FloatGrid & grid,
float value )
nodiscard

#include <MRVoxels/MRFloatGrid.h>

returns number of voxels in the grid with value less than given

◆ countVoxelsWithValuePred()

size_t MR::countVoxelsWithValuePred ( const FloatGrid & grid,
const std::function< bool(float)> & pred )
nodiscard

#include <MRVoxels/MRFloatGrid.h>

returns number of velxes in the grid with pred(value) == true

◆ cropped()

FloatGrid MR::cropped ( const FloatGrid & grid,
const Box3i & box,
ProgressCallback cb = {} )

#include <MRVoxels/MRFloatGrid.h>

returns cropped grid

◆ findActiveBounds()

Box3i MR::findActiveBounds ( const FloatGrid & grid)
nodiscard

#include <MRVoxels/MRFloatGrid.h>

returns bounding box of active voxels in grid min: including max: excluding

◆ fromVdb()

Vector3i MR::fromVdb ( const openvdb::Coord & v)
inline

◆ fromVdbBox()

Box3i MR::fromVdbBox ( const openvdb::CoordBBox & box)
inline

◆ gaussianFilter()

void MR::gaussianFilter ( FloatGrid & grid,
int width,
int iters,
ProgressCallback cb = {} )

#include <MRVoxels/MRFloatGrid.h>

returns grid with gaussian filter applied

◆ gaussianFiltered()

FloatGrid MR::gaussianFiltered ( const FloatGrid & grid,
int width,
int iters,
ProgressCallback cb = {} )

◆ getValue()

float MR::getValue ( const FloatGrid & grid,
const Vector3i & p )
nodiscard

#include <MRVoxels/MRFloatGrid.h>

returns the value at given voxel

◆ heapBytes()

size_t MR::heapBytes ( const FloatGrid & grid)
nodiscard

#include <MRVoxels/MRFloatGrid.h>

returns the amount of heap memory occupied by grid

◆ MakeFloatGrid() [1/2]

FloatGrid MR::MakeFloatGrid ( const FloatGrid & )
inlinedelete

#include <MRVoxels/MRVDBFloatGrid.h>

prohibit unnecessary conversion

◆ MakeFloatGrid() [2/2]

FloatGrid MR::MakeFloatGrid ( openvdb::FloatGrid::Ptr && p)
inline

#include <MRVoxels/MRVDBFloatGrid.h>

makes MR::FloatGrid shared pointer taking the contents of the input pointer

◆ operator*()

FloatGrid MR::operator* ( const FloatGrid & a,
const FloatGrid & b )

#include <MRVoxels/MRFloatGrid.h>

intersection operation on two signed distance fields

Note
this operation returns new FloatGrid keeping a,b untouched

◆ operator*=()

FloatGrid MR::operator*= ( FloatGrid & a,
FloatGrid && b )

#include <MRVoxels/MRFloatGrid.h>

intersection operation on two signed distance fields

Note
this operation consumes FloatGrid b

◆ operator+()

FloatGrid MR::operator+ ( const FloatGrid & a,
const FloatGrid & b )

#include <MRVoxels/MRFloatGrid.h>

union operation on two signed distance fields

Note
this operation returns new FloatGrid keeping a,b untouched

◆ operator+=()

FloatGrid MR::operator+= ( FloatGrid & a,
FloatGrid && b )

#include <MRVoxels/MRFloatGrid.h>

union operation on two signed distance fields

Note
this operation consumes FloatGrid b

◆ operator-()

FloatGrid MR::operator- ( const FloatGrid & a,
const FloatGrid & b )

#include <MRVoxels/MRFloatGrid.h>

difference operation on two signed distance fields

Note
this operation returns new FloatGrid keeping a,b untouched

◆ operator-=()

FloatGrid MR::operator-= ( FloatGrid & a,
FloatGrid && b )

#include <MRVoxels/MRFloatGrid.h>

difference operation on two signed distance fields

Note
this operation consumes FloatGrid b

◆ ovdb() [1/2]

const openvdb::FloatGrid & MR::ovdb ( const OpenVdbFloatGrid & v)
inline

◆ ovdb() [2/2]

openvdb::FloatGrid & MR::ovdb ( OpenVdbFloatGrid & v)
inline

◆ putSimpleVolumeInDenseGrid() [1/2]

void MR::putSimpleVolumeInDenseGrid ( openvdb::FloatGrid & grid,
const Vector3i & minCoord,
const SimpleVolume & simpleVolume,
ProgressCallback cb = {} )

#include <MRVoxels/MRVDBFloatGrid.h>

Copy given simpleVolume into the grid, starting at minCoord Uses multithreaded copying, so the function is not thread safe.

◆ putSimpleVolumeInDenseGrid() [2/2]

void MR::putSimpleVolumeInDenseGrid ( openvdb::FloatGrid::Accessor & gridAccessor,
const Vector3i & minCoord,
const SimpleVolume & simpleVolume,
ProgressCallback cb = {} )

#include <MRVoxels/MRVDBFloatGrid.h>

Copy given simpleVolume into the grid of gridAccessor, starting at minCoord Can be called from different threads on the same grid, provided that the accessors are different.

◆ resampled() [1/2]

FloatGrid MR::resampled ( const FloatGrid & grid,
const Vector3f & voxelScale,
ProgressCallback cb = {} )

#include <MRVoxels/MRFloatGrid.h>

resample this grid to fit voxelScale

◆ resampled() [2/2]

FloatGrid MR::resampled ( const FloatGrid & grid,
float voxelScale,
ProgressCallback cb = {} )

#include <MRVoxels/MRFloatGrid.h>

resample this grid to fit voxelScale

◆ setLevelSetType()

void MR::setLevelSetType ( FloatGrid & grid)

#include <MRVoxels/MRFloatGrid.h>

sets type of this grid as LEVEL SET (for normal flipping)

◆ setValue() [1/2]

void MR::setValue ( FloatGrid & grid,
const Vector3i & p,
float value )

#include <MRVoxels/MRFloatGrid.h>

sets given region voxels value

Note
region is in grid space (0 voxel id is minimum active voxel in grid)

◆ setValue() [2/2]

void MR::setValue ( FloatGrid & grid,
const VoxelBitSet & region,
float value )

#include <MRVoxels/MRFloatGrid.h>

sets given region voxels value

Note
region is in grid space (0 voxel id is minimum active voxel in grid)

◆ setValues()

void MR::setValues ( FloatGrid & grid,
const VoxelBitSet & region,
const std::vector< float > & values )

#include <MRVoxels/MRFloatGrid.h>

sets given region voxels value one by one

Note
region is in grid space (0 voxel id is minimum active voxel in grid)

◆ toVdb()

openvdb::Coord MR::toVdb ( const Vector3i & v)
inline

◆ toVdbBox() [1/2]

openvdb::CoordBBox MR::toVdbBox ( const Box3i & box)
inline

◆ toVdbBox() [2/2]

openvdb::CoordBBox MR::toVdbBox ( const Vector3i & dims)
inline