MeshLib C++ Docs
Loading...
Searching...
No Matches
MRVoxels/MRVoxelsFwd.h
Go to the documentation of this file.
1#pragma once
2
3#include "config.h"
4
5#ifdef _WIN32
6# ifdef MRVoxels_EXPORTS
7# define MRVOXELS_API __declspec(dllexport)
8# else
9# define MRVOXELS_API __declspec(dllimport)
10# endif
11# define MRVOXELS_CLASS
12#else
13# define MRVOXELS_API __attribute__((visibility("default")))
14# define MRVOXELS_CLASS __attribute__((visibility("default")))
15#endif
16
17#include <MRMesh/MRMeshFwd.h>
18
19namespace MR
20{
21
22class ObjectVoxels;
23
24class FloatGrid;
25
27 ( SimpleVolumeMinMax, VoxelsVolumeMinMax<Vector<float, VoxelId>> )
28 ( SimpleVolumeMinMaxU16, VoxelsVolumeMinMax<Vector<uint16_t, VoxelId>> )
30)
31
32using VdbVolumes = std::vector<VdbVolume>;
33
34template <typename T>
35using VoxelValueGetter = std::function<T ( const Vector3i& )>;
36
37MR_CANONICAL_TYPEDEFS( (template <typename T> struct), MRVOXELS_CLASS VoxelsVolume,
38 ( FunctionVolume, VoxelsVolume<VoxelValueGetter<float>> )
39 ( FunctionVolumeU8, VoxelsVolume<VoxelValueGetter<uint8_t>> )
40 ( SimpleVolume, VoxelsVolume<Vector<float, VoxelId>> )
41 ( SimpleVolumeU16, VoxelsVolume<Vector<uint16_t, VoxelId>> )
42 ( SimpleBinaryVolume, VoxelsVolume<VoxelBitSet> )
43)
44
45namespace VoxelsLoad
46{
47MR_CANONICAL_TYPEDEFS( (template <typename T> struct), MRVOXELS_CLASS DicomVolumeT,
48 ( DicomVolume, DicomVolumeT<SimpleVolumeMinMax> )
49 ( DicomVolumeAsVdb, DicomVolumeT<VdbVolume> )
50)
51} // namespace VoxelsLoad
52
53} // namespace MR
#define MR_CANONICAL_TYPEDEFS(type_, name_, aliases_)
Definition MRCanonicalTypedefs.h:23
#define MRVOXELS_CLASS
Definition MRVoxels/MRVoxelsFwd.h:14
std::vector<T>-like container that requires specific indexing type,
Definition MRMesh/MRVector.h:19
Definition MRCameraOrientationPlugin.h:8
std::function< T(const Vector3i &)> VoxelValueGetter
Definition MRVoxels/MRVoxelsFwd.h:35
Definition MRVoxelsVolume.h:62
represents a box in 3D space subdivided on voxels stored in T
Definition MRVoxelsVolume.h:48