annotate src/volume.h @ 1:cc9e0d8590e2
foo
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Sat, 27 Dec 2014 06:32:28 +0200 |
parents |
7bdf40403b9c |
children |
32c4a7160350 |
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@0
|
30
|
nuclear@0
|
31 bool load(const char *fname);
|
nuclear@0
|
32
|
nuclear@0
|
33 int num_samples(int dim) const;
|
nuclear@0
|
34
|
nuclear@0
|
35 float valuef(float x, float y, float z) const;
|
nuclear@0
|
36 float valuei(int x, int y, int z) const;
|
nuclear@0
|
37 };
|
nuclear@0
|
38
|
nuclear@0
|
39 #endif // VOLUME_H_
|