annotate 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 |
rev |
line source |
nuclear@0
|
1 #ifndef VOLUME_H_
|
nuclear@0
|
2 #define VOLUME_H_
|
nuclear@0
|
3
|
nuclear@0
|
4 #include "image.h"
|
nuclear@0
|
5
|
nuclear@0
|
6 class Volume {
|
nuclear@0
|
7 public:
|
nuclear@0
|
8 virtual ~Volume();
|
nuclear@0
|
9
|
nuclear@0
|
10 // returns -1 if the volume is continuously defined
|
nuclear@0
|
11 virtual int num_samples(int dim) const;
|
nuclear@0
|
12
|
nuclear@0
|
13 // central differences offset will be delta / num_samples
|
nuclear@0
|
14 virtual void normalf(float *norm, float x, float y, float z, float delta = 1.0);
|
nuclear@0
|
15 virtual void normali(float *norm, int x, int y, int z);
|
nuclear@0
|
16
|
nuclear@0
|
17 virtual float valuef(float x, float y, float z) const = 0;
|
nuclear@0
|
18 virtual float valuei(int x, int y, int z) const = 0;
|
nuclear@0
|
19 };
|
nuclear@0
|
20
|
nuclear@0
|
21 class VoxelVolume : public Volume {
|
nuclear@0
|
22 protected:
|
nuclear@0
|
23 std::vector<Image> slices;
|
nuclear@0
|
24
|
nuclear@0
|
25 public:
|
nuclear@0
|
26 VoxelVolume();
|
nuclear@0
|
27 ~VoxelVolume();
|
nuclear@0
|
28
|
nuclear@0
|
29 bool load(const char *fname);
|
nuclear@0
|
30
|
nuclear@0
|
31 int num_samples(int dim) const;
|
nuclear@0
|
32
|
nuclear@0
|
33 float valuef(float x, float y, float z) const;
|
nuclear@0
|
34 float valuei(int x, int y, int z) const;
|
nuclear@0
|
35 };
|
nuclear@0
|
36
|
nuclear@0
|
37 #endif // VOLUME_H_
|