Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkCUDAWallPenetrateVRScene.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
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 

Generated on Tue Feb 25 15:00:36 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3