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