12#ifndef VOLUMESEGMENT_H_6014714286
13#define VOLUMESEGMENT_H_6014714286
23#include <Carna/Carna.h>
47template<
typename SegmentNormalsVolumeType >
53 std::unique_ptr< Association< SegmentNormalsVolumeType > > myNormals;
85template<
typename SegmentNormalsVolumeType >
91template<
typename SegmentNormalsVolumeType >
94 myNormals.reset( normals );
98template<
typename SegmentNormalsVolumeType >
106template<
typename SegmentNormalsVolumeType >
114template<
typename SegmentNormalsVolumeType >
117 return myNormals.
get() !=
nullptr && myNormals->
get() !=
nullptr;
162template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
229 std::unique_ptr< Association< SegmentIntensityVolumeType > > myIntensities;
234template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
242template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
245 myIntensities.reset( intensities );
249template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
253 return **myIntensities;
257template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
261 return **myIntensities;
265template<
typename SegmentIntensityVolumeType,
typename SegmentNormalsVolumeType >
268 return myIntensities.
get() !=
nullptr && myIntensities->
get() !=
nullptr;
Defines Carna::base::Association.
Defines Carna::base::CarnaException, Carna::base::AssertionFailure.
#define CARNA_ASSERT(expression)
If the given expression is false, a break point is raised in debug mode and an AssertionFailure throw...
Defines Carna::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.
const SegmentNormalsVolumeType & normals() const
bool hasNormals() const
Tells whether this partition has a normal map associated.
void setNormals(Association< SegmentNormalsVolumeType > *volume)
Sets the normal map of this partition.
virtual ~VolumeSegmentNormalsComponent()
Deletes.
SegmentNormalsVolumeType & normals()
References the normal map of this partition.
Represents a single volumetric data partition.
Grid & grid
References the volumetric data partitioning this partition belongs to.
void setIntensities(Association< SegmentIntensityVolumeType > *intensities)
Sets the intensity volume data of this partition.
VolumeGrid< SegmentIntensityVolumeType, SegmentNormalsVolumeType > Grid
Reflects the type to use for representation of the whole volumetric data partitioning.
SegmentIntensityVolumeType IntensityVolume
Reflects the type to use for storing the intensity volume of a single partition.
const SegmentIntensityVolumeType & intensities() const
math::Vector3ui offset
Holds the coordinate offset this partition within the whole volumetric data partitioning.
bool hasIntensities() const
Tells whether this partition has intensity volume data associated.
VolumeSegment(Grid &grid)
Instantiates.
SegmentNormalsVolumeType NormalsVolume
Reflects the type to use for storing the normal map of a single partition.
SegmentIntensityVolumeType & intensities()
References the intensity volume data of this partition.
Eigen::Matrix< unsigned int, 3, 1 > Vector3ui
Defines vector.
#define NON_COPYABLE
Features class it is placed in as non-copyable.