8#include "MRMesh/MRphmap.h"
24 const int t =
id % 10;
25 const int q =
id / 10;
26 static_assert( q >= 1 && q <= 4 && t >= 1 && t <= 8 );
32 MRVOXELS_API static std::optional<DentalId> fromFDI(
int id );
37 auto operator <=> (
const DentalId& other )
const =
default;
40 constexpr explicit DentalId(
int fdi ):
50struct std::hash<
MR::DentalId>
52 inline size_t operator() (
const MR::DentalId&
id )
const noexcept
54 return hash<int>{}(
id.fdi() );
64class TeethMaskToDirectionVolumeConvertor
70 MRVOXELS_API static Expected<TeethMaskToDirectionVolumeConvertor> create(
const VdbVolume&
volume,
const std::vector<int>& additionalIds = {} );
73 MRVOXELS_API const HashMap<int, Box3i>& getObjectBounds()
const;
76 using DirectionVolume = std::array<SimpleVolumeMinMax, 3>;
84 MRVOXELS_API Expected<ProcessResult> convertObject(
int id )
const;
92 HashMap<int, Box3i> presentObjects_;
#define MRVOXELS_API
Definition MRVoxelsFwd.h:14
Definition MRTeethMaskToDirectionVolume.h:18
unsafe DentalId(MR.Const_DentalId _other)
Definition MRTeethMaskToDirectionVolume.h:65
Definition MRCameraOrientationPlugin.h:8
MRVOXELS_API Expected< std::array< SimpleVolumeMinMax, 3 > > teethMaskToDirectionVolume(const VdbVolume &volume, const std::vector< int > &additionalIds={})
A shortcut for TeethMaskToDirectionVolumeConvertor::create and TeethMaskToDirectionVolumeConvertor::c...
MRMESH_API double volume(const MeshTopology &topology, const VertCoords &points, const FaceBitSet *region=nullptr)
Definition MRTeethMaskToDirectionVolume.h:78
DirectionVolume volume
Definition MRTeethMaskToDirectionVolume.h:79
AffineXf3f xf
Definition MRTeethMaskToDirectionVolume.h:80