15#ifndef VOLUMESEGMENT_H_6014714286
16#define VOLUMESEGMENT_H_6014714286
46template<
typename SegmentNormalsVolumeType >
52 std::unique_ptr< Association< SegmentNormalsVolumeType > > myNormals;
84template<
typename SegmentNormalsVolumeType >
90template<
typename SegmentNormalsVolumeType >
93 myNormals.reset( normals );
97template<
typename SegmentNormalsVolumeType >
105template<
typename SegmentNormalsVolumeType >
113template<
typename SegmentNormalsVolumeType >
116 return myNormals.
get() !=
nullptr && myNormals->
get() !=
nullptr;
159template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
226 std::unique_ptr< Association< SegmentIntensityVolumeType > > myIntensities;
231template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
239template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
242 myIntensities.reset( intensities );
246template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
250 return **myIntensities;
254template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
258 return **myIntensities;
262template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
265 return myIntensities.
get() !=
nullptr && myIntensities->
get() !=
nullptr;
Defines LibCarna::base::Association.
Defines LibCarna::base::LibCarnaException and LibCarna::base::AssertionFailure.
#define LIBCARNA_ASSERT(expression)
If the given expression is false, a break point is raised in debug mode and an AssertionFailure throw...
Contains forward-declarations.
Defines LibCarna::base::VolumeGrid.
AssociatedObjectType * get() const
Returns raw pointer to the referenced object.
Represents a particular partitioning of volumetric data.
Represents the normal map component of an VolumeSegment object.
virtual ~VolumeSegmentNormalsComponent()
Deletes.
SegmentNormalsVolumeType & normals()
References the normal map of this partition.
bool hasNormals() const
Tells whether this partition has a normal map associated.
void setNormals(Association< SegmentNormalsVolumeType > *volume)
Sets the normal map of this partition.
const SegmentNormalsVolumeType & normals() const
Represents a single volumetric data partition.
math::Vector3ui offset
Holds the coordinate offset this partition within the whole volumetric data partitioning.
SegmentNormalsVolumeType NormalsVolume
Reflects the type to use for storing the normal map of a single partition.
bool hasIntensities() const
Tells whether this partition has intensity volume data associated.
VolumeGrid< SegmentIntensityVolumeType, SegmentNormalsVolumeType > Grid
Reflects the type to use for representation of the whole volumetric data partitioning.
const SegmentIntensityVolumeType & intensities() const
Grid & grid
References the volumetric data partitioning this partition belongs to.
SegmentIntensityVolumeType IntensityVolume
Reflects the type to use for storing the intensity volume of a single partition.
VolumeSegment(Grid &grid)
Instantiates.
SegmentIntensityVolumeType & intensities()
References the intensity volume data of this partition.
void setIntensities(Association< SegmentIntensityVolumeType > *intensities)
Sets the intensity volume data of this partition.
Eigen::Matrix< unsigned int, 3, 1 > Vector3ui
Defines vector.
#define NON_COPYABLE
Marks the class that it is placed in as non-copyable.