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 00011 #ifndef __mitkSurfaceModel_h 00012 #define __mitkSurfaceModel_h 00013 00014 #include "mitkDataModel.h" 00015 #include "mitkRCPtr.h" 00016 #include "mitkMesh.h" 00017 #include "mitkSurfaceProperty.h" 00018 #include "mitkSurfaceRenderer.h" 00019 00026 class MITK_VISUALIZATION_API mitkSurfaceModel : public mitkDataModel 00027 { 00028 public: 00029 MITK_TYPE(mitkSurfaceModel, mitkDataModel) 00030 00031 virtual void PrintSelf(ostream &os); 00032 00036 mitkSurfaceModel(); 00037 00045 virtual int Render(mitkScene *scene); 00046 00047 00055 virtual mitkRenderer* GetBasicRenderer() { return m_Renderer; } 00056 00061 void SetRenderer(mitkSurfaceRenderer *renderer) { m_Renderer = renderer; } 00062 00067 mitkSurfaceRenderer* GetRenderer(); 00068 00073 void SetProperty(mitkSurfaceProperty *prop) { m_Property = prop; } 00074 00079 mitkSurfaceProperty* GetProperty(); 00080 00085 void SetData(mitkMesh *data); 00086 00091 mitkMesh* GetData() { return m_Data; } 00092 00097 virtual bool IsOpaque() { return (this->GetProperty()->GetOpacity()>=1.0f); } 00098 00099 protected: 00100 virtual ~mitkSurfaceModel(); 00101 00102 virtual float* _getBounds(); 00103 00104 mitkRCPtr<mitkMesh> m_Data; 00105 mitkRCPtr<mitkSurfaceProperty> m_Property; 00106 mitkRCPtr<mitkSurfaceRenderer> m_Renderer; 00107 00108 private: 00109 mitkSurfaceModel(const mitkSurfaceModel&); 00110 void operator = (const mitkSurfaceModel&); 00111 }; 00112 00113 00114 //#define DEFINED_mitkSurfaceModel 00115 00116 00117 00118 #endif 00119