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_