00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __mitkGLSLIsosurfaceVRScene_h
00011 #define __mitkGLSLIsosurfaceVRScene_h
00012
00013 #include "mitkVis2Scene3D.h"
00014 #include "modules/mitkGLSLIsosurfaceVR.h"
00015
00016 #include "mitkRCPtr.h"
00017 #include "mitkICVolume.h"
00018
00025 class MITK_VISUALIZATION2_API mitkGLSLIsosurfaceVRScene : public mitkVis2Scene3D
00026 {
00027 public:
00028 MITK_TYPE(mitkGLSLIsosurfaceVRScene,mitkVis2Scene3D)
00029 mitkGLSLIsosurfaceVRScene();
00030
00034 virtual void RenderGL();
00035
00040 void SetData(mitkICVolume *data);
00041
00045 void SetDataModified();
00046
00053 void SetBackGroundColor(float r,float g, float b);
00054
00061 void GetBackGroundColor(float& r,float& g,float& b);
00062
00067 void SetIsovalue(float isovalue);
00068
00073 float GetIsovalue();
00074
00081 void SetSurfaceColor(float r,float g,float b);
00082
00089 void GetSurfaceColor(float &r,float &g,float &b);
00090
00097 void SetLightDirection(float x,float y,float z);
00098
00103 void SetLightIntensity(float intensity);
00104
00111 void SetLightColor(float r,float g,float b);
00112
00117 void SetAmbient(float value);
00118
00123 float GetAmbient();
00124
00129 void SetDiffuse(float value);
00130
00135 float GetDiffuse();
00136
00141 void SetSpecular(float value);
00142
00147 float GetSpecular();
00148
00153 void SetSpecularPower(float value);
00154
00159 float GetSpecularPower();
00160
00165 void SetSampleDistance(float sd);
00166
00171 float GetSampleDistance();
00172
00177 void RotateLightDirection(bool turnOn);
00178
00182 virtual void OnMouseDown(int mouseButton, bool ctrlDown, bool shiftDown, int xPos, int yPos);
00186 virtual void OnMouseUp(int mouseButton, bool ctrlDown, bool shiftDown, int xPos, int yPos);
00190 virtual void OnMouseMove(bool ctrlDown, bool shiftDown, int xPos, int yPos);
00191
00192 mitkGLSLIsosurfaceVR& GetKernelModule() { return m_module; }
00193
00194 protected:
00195 virtual ~mitkGLSLIsosurfaceVRScene();
00196 virtual void GetSize3D(float size[3]);
00197
00198 private:
00199 mitkGLSLIsosurfaceVRScene(const mitkGLSLIsosurfaceVRScene&);
00200 void operator = (const mitkGLSLIsosurfaceVRScene&);
00201
00202 private:
00203 mitkRCPtr<mitkICVolume> m_Data;
00204
00205
00206 mitkGLSLIsosurfaceVR m_module;
00207
00208 bool m_glewInit;
00209 bool m_dataModified;
00210
00211 bool m_RotateLightDirection;
00212 bool m_RotatingLightDirection;
00213
00214 mitkVis2Vector4 m_OldLightDirection;
00215
00216 };
00217
00218 #endif