glviewvol

view src/volume.h @ 0:7bdf40403b9c

dicom viewer project underway
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 27 Dec 2014 02:35:58 +0200
parents
children cc9e0d8590e2
line source
1 #ifndef VOLUME_H_
2 #define VOLUME_H_
4 #include "image.h"
6 class Volume {
7 public:
8 virtual ~Volume();
10 // returns -1 if the volume is continuously defined
11 virtual int num_samples(int dim) const;
13 // central differences offset will be delta / num_samples
14 virtual void normalf(float *norm, float x, float y, float z, float delta = 1.0);
15 virtual void normali(float *norm, int x, int y, int z);
17 virtual float valuef(float x, float y, float z) const = 0;
18 virtual float valuei(int x, int y, int z) const = 0;
19 };
21 class VoxelVolume : public Volume {
22 protected:
23 std::vector<Image> slices;
25 public:
26 VoxelVolume();
27 ~VoxelVolume();
29 bool load(const char *fname);
31 int num_samples(int dim) const;
33 float valuef(float x, float y, float z) const;
34 float valuei(int x, int y, int z) const;
35 };
37 #endif // VOLUME_H_