glviewvol
annotate src/renderer.h @ 4:04330eb80b36
lots of stuff
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 29 Dec 2014 05:41:36 +0200 |
parents | 7bdf40403b9c |
children | 5417c25cb238 |
rev | line source |
---|---|
nuclear@0 | 1 #ifndef RENDERER_H_ |
nuclear@0 | 2 #define RENDERER_H_ |
nuclear@0 | 3 |
nuclear@0 | 4 #include "volume.h" |
nuclear@4 | 5 #include "curve.h" |
nuclear@4 | 6 |
nuclear@4 | 7 #define MAX_CLIP_PLANES 4 |
nuclear@0 | 8 |
nuclear@0 | 9 class Renderer { |
nuclear@0 | 10 protected: |
nuclear@0 | 11 int view_width, view_height; |
nuclear@0 | 12 Volume *vol; |
nuclear@0 | 13 |
nuclear@4 | 14 float clip_plane[MAX_CLIP_PLANES][4]; // nx,ny,nz,dist |
nuclear@4 | 15 |
nuclear@4 | 16 Curve xfer[3]; // rgb transfer function |
nuclear@4 | 17 |
nuclear@0 | 18 public: |
nuclear@0 | 19 Renderer(); |
nuclear@0 | 20 virtual ~Renderer(); |
nuclear@0 | 21 |
nuclear@0 | 22 virtual bool init(); |
nuclear@0 | 23 virtual void destroy(); |
nuclear@0 | 24 |
nuclear@0 | 25 virtual void set_volume(Volume *vol); |
nuclear@0 | 26 virtual Volume *get_volume() const; |
nuclear@0 | 27 |
nuclear@4 | 28 virtual Curve &transfer_curve(int color); |
nuclear@4 | 29 virtual const Curve &transfer_curve(int color) const; |
nuclear@4 | 30 |
nuclear@4 | 31 virtual void set_clipping_plane(int idx, float nx, float ny, float nz, float dist); |
nuclear@4 | 32 virtual void disable_clipping_plane(int idx); |
nuclear@4 | 33 |
nuclear@0 | 34 virtual void reshape(int x, int y); |
nuclear@0 | 35 |
nuclear@0 | 36 virtual void update(unsigned int msec); |
nuclear@0 | 37 virtual void render() const = 0; |
nuclear@0 | 38 }; |
nuclear@0 | 39 |
nuclear@0 | 40 #endif // RENDERER_H_ |