MeshLib C++ Docs
Loading...
Searching...
No Matches
MRVoxelsVolume.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRVoxelsFwd.h"
4
5#include "MRMesh/MRVector3.h"
6#include "MRMesh/MRBox.h"
8#include "MRMesh/MRExpected.h"
9#include "MRMesh/MRVector.h"
10#include <limits>
11
12namespace MR
13{
14
15template <typename T>
17
18template <typename T>
19struct VoxelTraits<Vector<T, VoxelId>>
20{
21 using ValueType = T;
22};
23
24template <>
25struct VoxelTraits<VoxelBitSet>
26{
27 using ValueType = bool;
28};
29
30template <typename T>
32{
33 using ValueType = T;
34};
35
36template <>
38{
39 using ValueType = float;
40};
41
43template <typename T>
45{
47
49 Vector3i dims;
50 Vector3f voxelSize{ 1.f, 1.f, 1.f };
51
52 [[nodiscard]] size_t heapBytes() const { return MR::heapBytes( data ); }
53};
54
57template <typename T>
58struct VoxelsVolumeMinMax : VoxelsVolume<T>, MinMax<typename VoxelsVolume<T>::ValueType>
59{
60 using typename VoxelsVolume<T>::ValueType;
61 using VoxelsVolume<T>::data;
62 using VoxelsVolume<T>::dims;
65};
66
67
70
71} //namespace MR
#define MRVOXELS_API
Definition MRVoxels/MRVoxelsFwd.h:13
std::vector<T>-like container that requires specific indexing type,
Definition MRMesh/MRVector.h:19
size_t heapBytes(const BitSet &bs)
returns the amount of memory given BitSet occupies on heap
Definition MRMesh/MRBitSet.h:219
std::function< bool(float)> ProgressCallback
Definition MRMesh/MRMeshFwd.h:663
Definition MRCameraOrientationPlugin.h:8
std::shared_ptr< OpenVdbFloatGrid > FloatGrid
Definition MRVoxels/MRVoxelsFwd.h:25
MRVOXELS_API Expected< SimpleVolumeMinMax > functionVolumeToSimpleVolume(const FunctionVolume &volume, const ProgressCallback &callback={})
converts function volume into simple volume
tl::expected< T, E > Expected
Definition MRExpected.h:25
MRMESH_API double volume(const MeshTopology &topology, const VertCoords &points, const FaceBitSet *region=nullptr)
std::function< T(const Vector3i &)> VoxelValueGetter
Definition MRVoxels/MRVoxelsFwd.h:36
float ValueType
Definition MRVoxelsVolume.h:39
T ValueType
Definition MRVoxelsVolume.h:21
bool ValueType
Definition MRVoxelsVolume.h:27
T ValueType
Definition MRVoxelsVolume.h:33
Definition MRVoxelsVolume.h:16
Definition MRVoxelsVolume.h:59
represents a box in 3D space subdivided on voxels stored in T
Definition MRVoxelsVolume.h:45
Vector3f voxelSize
Definition MRVoxelsVolume.h:50
size_t heapBytes() const
Definition MRVoxelsVolume.h:52
T data
Definition MRVoxelsVolume.h:48
Vector3i dims
Definition MRVoxelsVolume.h:49
typename VoxelTraits< T >::ValueType ValueType
Definition MRVoxelsVolume.h:46