00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __mitkCUDAWallPenetrateVRScene_h
00011 #define __mitkCUDAWallPenetrateVRScene_h
00012
00013 #include "mitkRCPtr.h"
00014 #include "mitkVis2Scene3D.h"
00015 #include "mitkCUDAVolumeRenderingIncludes.h"
00016 #include "modules/mitkCUDAWallPenetrateVR.h"
00017 #include "mitkICVolume.h"
00018 #include "mitkRGBATransferFunction1D.h"
00019
00020 class MITK_CUDA_VOLUME_RENDERING_API mitkCUDAWallPenetrateVRScene : public mitkVis2Scene3D
00021 {
00022 public:
00023 MITK_TYPE(mitkCUDAWallPenetrateVRScene,mitkVis2Scene3D)
00024 mitkCUDAWallPenetrateVRScene();
00025
00026 virtual void RenderGL();
00027
00028 void SetData(mitkICVolume *data);
00029 void SetDataModified();
00030
00031 void SetBackGroundColor(float r,float g, float b);
00032 void GetBackGroundColor(float &r,float &g, float &b);
00033
00034 mitkRGBATransferFunction1D* GetTransferFunction();
00035 void SetTransferFunction(mitkRGBATransferFunction1D* tf);
00036
00037 void SetShade(bool shade);
00038 bool GetShade();
00039
00040 void ShadeOn();
00041 void ShadeOff();
00042
00043 void SetViewDistance(float viewDistance);
00044 float GetViewDistance();
00045
00046 void SetViewDependent(bool dep=true);
00047 void SetViewIndependent(bool indep=true);
00048 bool GetViewIndependent();
00049
00050 void SetLightDirection(float x,float y,float z);
00051 void GetLightDirection(float &x,float &y,float &z);
00052
00053 void SetLightIntensity(float intensity);
00054 void SetLightColor(float r,float g,float b);
00055 void SetAmbient(float value);
00056 float GetAmbient();
00057 void SetDiffuse(float value);
00058 float GetDiffuse();
00059 void SetSpecular(float value);
00060 float GetSpecular();
00061 void SetSpecularPower(float value);
00062 float GetSpecularPower();
00063 void RotateLightDirection(bool turnOn);
00064
00065 virtual void OnMouseDown(int mouseButton, bool ctrlDown, bool shiftDown, int xPos, int yPos);
00066 virtual void OnMouseUp(int mouseButton, bool ctrlDown, bool shiftDown, int xPos, int yPos);
00067 virtual void OnMouseMove(bool ctrlDown, bool shiftDown, int xPos, int yPos);
00068
00069 void SetCroppingBounds(const float CroppingBounds[6]);
00070 void GetCroppingBounds(float CroppingBounds[6]);
00071
00072 void SetIsovalue(float iso);
00073 float GetIsovalue();
00074
00075 mitkCUDAWallPenetrateVR& GetKernelModule() { return m_module; }
00076
00077 protected:
00078 virtual ~mitkCUDAWallPenetrateVRScene();
00079 virtual void GetSize3D(float size[3]);
00080
00081 private:
00082 mitkCUDAWallPenetrateVRScene(const mitkCUDAWallPenetrateVRScene&);
00083 void operator = (const mitkCUDAWallPenetrateVRScene&);
00084
00085 private:
00086 mitkRCPtr<mitkICVolume> m_Data;
00087
00088 mitkRCPtr<mitkRGBATransferFunction1D> m_TF;
00089 mitkLocalVersion m_TFVersion;
00090
00091 mitkCUDAWallPenetrateVR m_module;
00092
00093 bool m_glewInit;
00094 bool m_dataModified;
00095
00096 bool m_RotateLightDirection;
00097 bool m_RotatingLightDirection;
00098
00099 mitkVis2Vector4 m_OldLightDirection;
00100 };
00101
00102
00103 #endif