00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __mitkFullVRScene_h
00011 #define __mitkFullVRScene_h
00012
00013 #include "mitkRCPtr.h"
00014 #include "mitkVis2Scene3D.h"
00015 #include "modules/mitkFullVR.h"
00016 #include "mitkICVolume.h"
00017 #include "mitkRGBATransferFunction1D.h"
00018
00019 class mitkCoherentVolume;
00020
00028 class MITK_VISUALIZATION2_API mitkFullVRScene : public mitkVis2Scene3D
00029 {
00030 public:
00031 MITK_TYPE(mitkFullVRScene,mitkVis2Scene3D)
00032 mitkFullVRScene();
00033
00037 virtual void RenderGL();
00038
00043 void SetData(mitkICVolume *data);
00044
00048 void SetDataModified();
00049
00054 void SetCoherentData(mitkCoherentVolume *CVolume);
00055
00059 void SetCoherentDataModified();
00060
00067 void SetBackGroundColor(float r,float g, float b);
00068
00075 void GetBackGroundColor(float& r,float& g,float& b);
00076
00081 mitkRGBATransferFunction1D* GetTransferFunction();
00082
00087 void SetTransferFunction(mitkRGBATransferFunction1D* tf);
00088
00094 void SetStdSampleDistance(float stdSampleDistance);
00095
00101 float GetStdSampleDistance();
00102
00107 void SetShade(bool shade);
00108
00113 bool GetShade();
00114
00118 void ShadeOn();
00119
00123 void ShadeOff();
00124
00131 void SetLightDirection(float x,float y,float z);
00132
00139 void GetLightDirection(float &x,float &y,float &z);
00140
00145 void SetLightIntensity(float intensity);
00146
00153 void SetLightColor(float r,float g,float b);
00154
00159 void SetAmbient(float value);
00160
00165 float GetAmbient();
00166
00171 void SetDiffuse(float value);
00172
00177 float GetDiffuse();
00178
00183 void SetSpecular(float value);
00184
00189 float GetSpecular();
00190
00195 void SetSpecularPower(float value);
00196
00201 float GetSpecularPower();
00202
00207 void RotateLightDirection(bool turnOn);
00208
00212 virtual void OnMouseDown(int mouseButton, bool ctrlDown, bool shiftDown, int xPos, int yPos);
00216 virtual void OnMouseUp(int mouseButton, bool ctrlDown, bool shiftDown, int xPos, int yPos);
00220 virtual void OnMouseMove(bool ctrlDown, bool shiftDown, int xPos, int yPos);
00221
00226 void SetIllustrativeShading(int illustrative);
00227
00232 bool GetIllustrativeShading();
00233
00238 void SetCroppingBounds(const float CroppingBounds[6]);
00239
00244 void GetCroppingBounds(float CroppingBounds[6]);
00245
00246 mitkFullVR& GetKernelModule() { return m_module; }
00247
00248
00249 protected:
00250 virtual ~mitkFullVRScene();
00251 virtual void GetSize3D(float size[3]);
00252
00253 private:
00254 mitkFullVRScene(const mitkFullVRScene&);
00255 void operator = (const mitkFullVRScene&);
00256
00257 private:
00258 mitkRCPtr<mitkICVolume> m_Data;
00259 mitkRCPtr<mitkRGBATransferFunction1D> m_TF;
00260
00261 mitkLocalVersion m_TFVersion;
00262
00263 mitkFullVR m_module;
00264
00265 bool m_RotateLightDirection;
00266 bool m_RotatingLightDirection;
00267
00268 mitkVis2Vector4 m_OldLightDirection;
00269
00270 };
00271
00272 #endif