CTL  0.6.1
Computed Tomography Library
lineardynamicvolume.h
1 #ifndef CTL_LINEARDYNAMICVOLUME_H
2 #define CTL_LINEARDYNAMICVOLUME_H
3 
4 #include "abstractdynamicvolumedata.h"
5 #include <cmath>
6 
7 namespace CTL {
8 
30 {
31  // abstract interface
32  protected: void updateVolume() override;
33  public: SpectralVolumeData* clone() const override;
34 
35 public:
36  LinearDynamicVolume(float slope,
37  float offset,
38  const VoxelVolume<float>::Dimensions& nbVoxel,
45 
46  static LinearDynamicVolume ball(float radius, float voxelSize, float slope, float offset);
47  static LinearDynamicVolume cube(uint nbVoxel, float voxelSize, float slope, float offset);
48  static LinearDynamicVolume cylinderX(float radius, float height, float voxelSize, float slope, float offset);
49  static LinearDynamicVolume cylinderY(float radius, float height, float voxelSize, float slope, float offset);
50  static LinearDynamicVolume cylinderZ(float radius, float height, float voxelSize, float slope, float offset);
51 
52  XYDataSeries timeCurve(uint x, uint y, uint z, const std::vector<float>& timePoints) override;
53 
55 
56 private:
57  VoxelVolume<float> _lag;
58  VoxelVolume<float> _slope;
59 };
60 
61 } // namespace CTL
62 
63 #endif // CTL_LINEARDYNAMICVOLUME_H
XYDataSeries timeCurve(uint x, uint y, uint z, const std::vector< float > &timePoints) override
Definition: lineardynamicvolume.cpp:177
static LinearDynamicVolume cylinderX(float radius, float height, float voxelSize, float slope, float offset)
Definition: lineardynamicvolume.cpp:122
The VoxelVolume class provides a simple container for storage of voxelized 3D volume data.
Definition: ctsystemview.h:14
virtual XYDataSeries timeCurve(uint x, uint y, uint z, const std::vector< float > &timePoints)
Definition: abstractdynamicvolumedata.h:57
static LinearDynamicVolume ball(float radius, float voxelSize, float slope, float offset)
Definition: lineardynamicvolume.cpp:85
const Offset & offset() const
Definition: voxelvolume.tpp:1021
The LinearDynamicVolume class is an implementation of AbstractDynamicVolumeData with a linear relatio...
Definition: lineardynamicvolume.h:29
static LinearDynamicVolume cube(uint nbVoxel, float voxelSize, float slope, float offset)
Definition: lineardynamicvolume.cpp:101
The XYDataSeries class is container for a series of data points, each representing x and y value pair...
Definition: xydataseries.h:60
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
static LinearDynamicVolume cylinderY(float radius, float height, float voxelSize, float slope, float offset)
Definition: lineardynamicvolume.cpp:143
The SpectralVolumeData class holds voxelized data (for a single material) along with information on i...
Definition: spectralvolumedata.h:40
Definition: abstractdynamicvolumedata.h:14
void updateVolume() override
Definition: lineardynamicvolume.cpp:199
const VoxelSize & voxelSize() const
Definition: voxelvolume.tpp:1062
static LinearDynamicVolume cylinderZ(float radius, float height, float voxelSize, float slope, float offset)
Definition: lineardynamicvolume.cpp:164