Carna Version 3.3.3
Loading...
Searching...
No Matches
IntensityVolume.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2021 Leonid Kostrykin
3 *
4 */
5
6#ifndef INTENSITYVOLUME_H_6014714286
7#define INTENSITYVOLUME_H_6014714286
8
19
20namespace Carna
21{
22
23namespace base
24{
25
26
27
28// ----------------------------------------------------------------------------------
29// IntensityVolume
30// ----------------------------------------------------------------------------------
31
39class CARNA_LIB IntensityVolume : public math::VectorField< float >
40{
41
43
44public:
45
50
54 explicit IntensityVolume( const math::Vector3ui& size );
55
60
64 virtual float operator()( unsigned int x
65 , unsigned int y
66 , unsigned int z ) const override = 0;
67
70 virtual float operator()( const math::Vector3ui& at ) const override = 0;
71
72}; // IntensityVolume
73
74
75
76} // namespace Carna :: base
77
78} // namespace Carna
79
80#endif // INTENSITYVOLUME_H_6014714286
Defines Carna::base::math::VectorField.
Represents an association.
Definition Association.h:45
Defines interface to volume data.
virtual float operator()(unsigned int x, unsigned int y, unsigned int z) const override=0
Returns intensity of specified voxel.
IntensityVolume(const math::Vector3ui &size)
Instantiates.
IntensityVolume()
Instantiates.
math::Vector3ui size
Holds the resolution.
virtual float operator()(const math::Vector3ui &at) const override=0
Abstract definition of an vector field where is ValueType.
Definition VectorField.h:50
Eigen::Matrix< unsigned int, 3, 1 > Vector3ui
Defines vector.
Definition math.h:199
#define NON_COPYABLE
Features class it is placed in as non-copyable.