glviewvol

view 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
line source
1 #ifndef RENDERER_H_
2 #define RENDERER_H_
4 #include "volume.h"
5 #include "xfermap.h"
7 #define MAX_CLIP_PLANES 4
9 class Renderer {
10 protected:
11 int view_width, view_height;
12 Volume *vol;
14 float clip_plane[MAX_CLIP_PLANES][4]; // nx,ny,nz,dist
16 TransferFunc *xfer;
17 float zscale;
19 public:
20 Renderer();
21 virtual ~Renderer();
23 virtual bool init();
24 virtual void destroy();
26 virtual void set_volume(Volume *vol);
27 virtual Volume *get_volume() const;
29 virtual void set_zscale(float zs);
30 virtual float get_zscale() const;
32 virtual void set_transfer_function(TransferFunc *xfer);
33 virtual TransferFunc *get_transfer_function() const;
35 virtual void set_clipping_plane(int idx, float nx, float ny, float nz, float dist);
36 virtual void disable_clipping_plane(int idx);
38 virtual void reshape(int x, int y);
40 virtual void update(unsigned int msec);
41 virtual void render() const = 0;
42 };
44 #endif // RENDERER_H_