annotate src/volume.h @ 11:73edd1b7c2da
changed the name to glviewvol
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Wed, 31 Dec 2014 07:53:53 +0200 |
parents |
cc9e0d8590e2 |
children |
773f89037a35 |
rev |
line source |
nuclear@0
|
1 #ifndef VOLUME_H_
|
nuclear@0
|
2 #define VOLUME_H_
|
nuclear@0
|
3
|
nuclear@1
|
4 #include <vector>
|
nuclear@0
|
5 #include "image.h"
|
nuclear@0
|
6
|
nuclear@0
|
7 class Volume {
|
nuclear@0
|
8 public:
|
nuclear@0
|
9 virtual ~Volume();
|
nuclear@0
|
10
|
nuclear@1
|
11 // returns 0 if the volume is continuously defined
|
nuclear@0
|
12 virtual int num_samples(int dim) const;
|
nuclear@0
|
13
|
nuclear@1
|
14 // central differences offset will be delta / num_samples for discrete volumes
|
nuclear@1
|
15 // and delta for continuous volumes
|
nuclear@0
|
16 virtual void normalf(float *norm, float x, float y, float z, float delta = 1.0);
|
nuclear@0
|
17 virtual void normali(float *norm, int x, int y, int z);
|
nuclear@0
|
18
|
nuclear@0
|
19 virtual float valuef(float x, float y, float z) const = 0;
|
nuclear@0
|
20 virtual float valuei(int x, int y, int z) const = 0;
|
nuclear@0
|
21 };
|
nuclear@0
|
22
|
nuclear@0
|
23 class VoxelVolume : public Volume {
|
nuclear@0
|
24 protected:
|
nuclear@1
|
25 int size[3];
|
nuclear@0
|
26 std::vector<Image> slices;
|
nuclear@0
|
27
|
nuclear@0
|
28 public:
|
nuclear@0
|
29 VoxelVolume();
|
nuclear@3
|
30 ~VoxelVolume();
|
nuclear@0
|
31
|
nuclear@0
|
32 bool load(const char *fname);
|
nuclear@0
|
33
|
nuclear@0
|
34 int num_samples(int dim) const;
|
nuclear@0
|
35
|
nuclear@0
|
36 float valuef(float x, float y, float z) const;
|
nuclear@0
|
37 float valuei(int x, int y, int z) const;
|
nuclear@0
|
38 };
|
nuclear@0
|
39
|
nuclear@0
|
40 #endif // VOLUME_H_
|