annotate src/renderer.h @ 5:5417c25cb238
moving to a simpler transfer function
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Mon, 29 Dec 2014 15:59:55 +0200 |
parents |
04330eb80b36 |
children |
f22be47a3572 |
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@5
|
17 float xfer_low, xfer_high; // simple transfer function bounds
|
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@4
|
29 virtual Curve &transfer_curve(int color);
|
nuclear@4
|
30 virtual const Curve &transfer_curve(int color) const;
|
nuclear@4
|
31
|
nuclear@5
|
32 virtual void set_simple_transfer(float low, float high);
|
nuclear@5
|
33 virtual void get_simple_transfer(float *low, float *high) 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_
|