00001 #pragma once
00002
00003 #ifndef SCENERENDER_H
00004 #define SCENERENDER_H
00005
00006 #include "SourceLight.h"
00007 #include "glut.h"
00008 #include "Shaders.h"
00009
00010
00014 class SceneRender
00015 {
00016 public:
00017 SceneRender(SourceLight *_light, Shaders *_shader, int _renderCoordSystem, int _enablePostprocessing,
00018 int _showTransferFunc, float *_clippingX, float *_clippingY, float *_clippingZ,
00019 float *_clippingInversX, float *_clippingInversY, float *_clippingInversZ);
00020 ~SceneRender();
00021 void render();
00022 void drawBox();
00023 void drawScene();
00024 void updateFBOs();
00025 void drawCoordSys(bool value);
00026 void deleteTextures();
00027 void setClippingX(float value);
00028 void setClippingY(float value);
00029 void setClippingZ(float value);
00030 void setClippingInvX(float value);
00031 void setClippingInvY(float value);
00032 void setClippingInvZ(float value);
00033 void setPostProcessing(bool value);
00034 void setShowTransferFunc(bool value);
00035 float getClippingX();
00036 float getClippingY();
00037 float getClippingZ();
00038 float getClippingInvX();
00039 float getClippingInvY();
00040 float getClippingInvZ();
00041
00042 protected:
00043 void drawLightVector();
00044 void drawCoordOrigin();
00045
00046 private:
00048 float *clipX;
00050 float *clipY;
00052 float *clipZ;
00054 float *clipInvX;
00056 float *clipInvY;
00058 float *clipInvZ;
00060 SourceLight *sourcelight;
00062 Shaders *shader;
00064 GLuint fboTextureFront;
00066 GLuint fboTextureBack;
00068 GLuint fBufferFront;
00070 GLuint fBufferBack;
00072 bool renderCoordSys;
00074 bool creationFBOs;
00075
00077 GLuint fboTextureFinalImage;
00079 GLuint fBufferFinalImage;
00081 bool enablePostProc;
00083 bool showTransFunc;
00084
00085 void createFBOs();
00086
00087 };
00088 #endif SCENERENDER_H