glviewvol

view src/volume.h @ 2:701507c8238f

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