volmetrics
annotate src/volume.h @ 8:928954bfefd7
added mesh (draw: immediate mode - todo: displ. list)
author | Eleni Maria Stea <elene.mst@gmail.com> |
---|---|
date | Sat, 25 Jan 2014 19:25:32 +0200 |
parents | e6485ef45e6e |
children | 40febfed6cff |
rev | line source |
---|---|
eleni@0 | 1 #ifndef VOLUME_H_ |
eleni@0 | 2 #define VOLUME_H_ |
eleni@0 | 3 |
elene@3 | 4 #include <vector> |
elene@3 | 5 #include "image.h" |
elene@3 | 6 |
eleni@1 | 7 class Volume { |
eleni@1 | 8 private: |
elene@3 | 9 std::vector<Image> slices; |
elene@6 | 10 |
elene@4 | 11 int width; |
elene@4 | 12 int height; |
elene@5 | 13 float zaspect; |
eleni@1 | 14 |
elene@6 | 15 unsigned int vol_tex; |
elene@6 | 16 mutable bool vol_tex_valid; |
elene@6 | 17 |
elene@6 | 18 void create_vol_tex() const; |
elene@6 | 19 |
elene@3 | 20 public: |
elene@3 | 21 Volume(); |
elene@6 | 22 ~Volume(); |
elene@3 | 23 |
elene@6 | 24 bool load(const char *fname); |
elene@6 | 25 |
elene@4 | 26 bool push_slice(Image &&slice); |
elene@6 | 27 const Image *get_slice(int num_slice) const; |
elene@6 | 28 const Image *get_slice_by_z(float z) const; |
elene@6 | 29 int get_slice_count() const; |
elene@6 | 30 |
elene@6 | 31 int get_slice_idx_by_z(float z) const; |
elene@6 | 32 |
elene@6 | 33 unsigned int get_texture() const; |
elene@3 | 34 |
elene@8 | 35 void draw() const; |
eleni@1 | 36 }; |
eleni@1 | 37 |
eleni@0 | 38 #endif // VOLUME_H_ |