00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision$ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 00019 #ifndef MITKRENDERINGMANAGERFACTORY_H_HEADER_INCLUDED_C135A197 00020 #define MITKRENDERINGMANAGERFACTORY_H_HEADER_INCLUDED_C135A197 00021 00022 #include "mitkRenderingManager.h" 00023 00024 namespace mitk 00025 { 00026 00047 class MITK_CORE_EXPORT RenderingManagerFactory 00048 { 00049 public: 00050 virtual ~RenderingManagerFactory() {}; 00051 00054 virtual RenderingManager::Pointer CreateRenderingManager() const = 0; 00055 00056 protected: 00057 RenderingManagerFactory() 00058 { 00059 }; 00060 00061 private: 00062 00063 }; 00064 00068 class MITK_CORE_EXPORT TestingRenderingManagerFactory : public RenderingManagerFactory 00069 { 00070 public: 00071 TestingRenderingManagerFactory() 00072 { 00073 if ( !mitk::RenderingManager::HasFactory() ) 00074 { 00075 mitk::RenderingManager::SetFactory( this ); 00076 } 00077 }; 00078 00079 virtual ~TestingRenderingManagerFactory() {}; 00080 00081 virtual mitk::RenderingManager::Pointer CreateRenderingManager() const 00082 { 00083 TestingRenderingManager::Pointer specificSmartPtr = TestingRenderingManager::New(); 00084 RenderingManager::Pointer smartPtr = specificSmartPtr.GetPointer(); 00085 return smartPtr; 00086 }; 00087 }; 00088 00089 00090 } // namespace mitk 00091 00092 #endif