glviewvol
annotate src/renderer.h @ 10:89efc666105c
mostly done
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 31 Dec 2014 05:21:47 +0200 |
parents | f22be47a3572 |
children | 773f89037a35 |
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@6 | 5 #include "xfermap.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@6 | 16 TransferFunc *xfer; |
nuclear@10 | 17 float zscale; |
nuclear@4 | 18 |
nuclear@0 | 19 public: |
nuclear@0 | 20 Renderer(); |
nuclear@0 | 21 virtual ~Renderer(); |
nuclear@0 | 22 |
nuclear@0 | 23 virtual bool init(); |
nuclear@0 | 24 virtual void destroy(); |
nuclear@0 | 25 |
nuclear@0 | 26 virtual void set_volume(Volume *vol); |
nuclear@0 | 27 virtual Volume *get_volume() const; |
nuclear@0 | 28 |
nuclear@10 | 29 virtual void set_zscale(float zs); |
nuclear@10 | 30 virtual float get_zscale() const; |
nuclear@10 | 31 |
nuclear@6 | 32 virtual void set_transfer_function(TransferFunc *xfer); |
nuclear@6 | 33 virtual TransferFunc *get_transfer_function() const; |
nuclear@5 | 34 |
nuclear@4 | 35 virtual void set_clipping_plane(int idx, float nx, float ny, float nz, float dist); |
nuclear@4 | 36 virtual void disable_clipping_plane(int idx); |
nuclear@4 | 37 |
nuclear@0 | 38 virtual void reshape(int x, int y); |
nuclear@0 | 39 |
nuclear@0 | 40 virtual void update(unsigned int msec); |
nuclear@0 | 41 virtual void render() const = 0; |
nuclear@0 | 42 }; |
nuclear@0 | 43 |
nuclear@0 | 44 #endif // RENDERER_H_ |