Carna  Version 3.3.2
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 
18 #include <Carna/base/noncopyable.h>
19 
20 namespace Carna
21 {
22 
23 namespace base
24 {
25 
26 
27 
28 // ----------------------------------------------------------------------------------
29 // IntensityVolume
30 // ----------------------------------------------------------------------------------
31 
39 class CARNA_LIB IntensityVolume : public math::VectorField< float >
40 {
41 
43 
44 public:
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 interface to volume data.
Eigen::Matrix< unsigned int, 3, 1 > Vector3ui
Defines vector.
Definition: math.h:199
Abstract definition of an vector field where is ValueType.
Definition: VectorField.h:49
math::Vector3ui size
Holds the resolution.
Defines Carna::base::math::VectorField.
#define NON_COPYABLE
Features class it is placed in as non-copyable.
Definition: noncopyable.h:109