00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __mitkCUDACTSPECTVRScene_h
00011 #define __mitkCUDACTSPECTVRScene_h
00012
00013 #include "mitkRCPtr.h"
00014 #include "mitkVis2Scene3D.h"
00015 #include "mitkCUDAVolumeRenderingIncludes.h"
00016 #include "modules/mitkCUDAStructureFunctionVR.h"
00017 #include "mitkICVolume.h"
00018
00025 class MITK_CUDA_VOLUME_RENDERING_API mitkCUDAStructureFunctionVRScene : public mitkVis2Scene3D
00026 {
00027 public:
00028 MITK_TYPE(mitkCUDAStructureFunctionVRScene,mitkVis2Scene3D)
00029 mitkCUDAStructureFunctionVRScene();
00030
00034 virtual void RenderGL();
00035
00040 void SetStructData(mitkICVolume *data);
00041
00045 void SetStructDataModified();
00046
00051 void SetFuncData(mitkICVolume *data);
00052
00056 void SetFuncDataModified();
00057
00062 void SetTransformFunc(bool trans) {m_TransformFunc=trans;}
00063
00067 virtual void OnMouseDown(int mouseButton, bool ctrlDown, bool shiftDown, int xPos, int yPos);
00071 virtual void OnMouseUp(int mouseButton, bool ctrlDown, bool shiftDown, int xPos, int yPos);
00075 virtual void OnMouseMove(bool ctrlDown, bool shiftDown, int xPos, int yPos);
00076
00081 void SetStruct2FuncMatrix(const mitkVis2Matrix4x4& matrix);
00082
00087 const mitkVis2Matrix4x4& GetStruct2FuncMatrix() const;
00088
00094 void SetStructRange(float StructMin,float StructMax);
00095
00101 void GetStructRange(float &StructMin,float &StructMax);
00102
00108 void SetFuncRange(float FuncMin, float FuncMax);
00109
00115 void GetFuncRange(float &FuncMin, float &FuncMax);
00116
00121 void SetStructOpacity(float StructOpacity);
00122
00127 float GetStructOpacity();
00128
00133 void SetFuncIntensity(float FuncIntensity);
00134
00139 float GetFuncIntensity();
00140
00145 void SetSampleDistance(float sd);
00146
00151 float GetSampleDistance();
00152
00153 protected:
00154 virtual ~mitkCUDAStructureFunctionVRScene();
00155 virtual void GetSize3D(float size[3]);
00156
00157 private:
00158 mitkCUDAStructureFunctionVRScene(const mitkCUDAStructureFunctionVRScene&);
00159 void operator = (const mitkCUDAStructureFunctionVRScene&);
00160
00161 bool _renderCore();
00162
00163 private:
00164 mitkRCPtr<mitkICVolume> m_StructData, m_FuncData;
00165 mitkCUDAStructureFunctionVR m_module;
00166
00167 bool m_glewInit;
00168 bool m_structDataModified;
00169 bool m_funcDataModified;
00170
00171 bool m_TransformFunc;
00172 bool m_RotatingFunc;
00173 bool m_TranslatingFunc;
00174
00175 mitkVis2Matrix4x4 m_OldStruct2FuncMatrix;
00176
00177 };
00178
00179 #endif