00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2010-04-16 16:53:19 +0200 (Fr, 16 Apr 2010) $ 00006 Version: $Revision: 16916 $ 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 #include "mitkPlanarFigureObjectFactory.h" 00019 00020 #include "mitkCoreObjectFactory.h" 00021 00022 #include "mitkPlanarFigureIOFactory.h" 00023 #include "mitkPlanarFigureWriterFactory.h" 00024 #include "mitkPlanarFigure.h" 00025 #include "mitkPlanarFigureMapper2D.h" 00026 00027 typedef std::multimap<std::string, std::string> MultimapType; 00028 00029 mitk::PlanarFigureObjectFactory::PlanarFigureObjectFactory() 00030 { 00031 static bool alreadyDone = false; 00032 if ( !alreadyDone ) 00033 { 00034 MITK_INFO << "PlanarFigureObjectFactory c'tor" << std::endl; 00035 RegisterIOFactories(); 00036 00037 itk::ObjectFactoryBase::RegisterFactory( PlanarFigureIOFactory::New() ); 00038 00039 PlanarFigureWriterFactory::RegisterOneFactory(); 00040 00041 CreateFileExtensionsMap(); 00042 00043 alreadyDone = true; 00044 } 00045 } 00046 00047 mitk::Mapper::Pointer mitk::PlanarFigureObjectFactory::CreateMapper(mitk::DataNode* node, MapperSlotId id) 00048 { 00049 mitk::Mapper::Pointer newMapper=NULL; 00050 mitk::BaseData *data = node->GetData(); 00051 00052 if ( id == mitk::BaseRenderer::Standard2D ) 00053 { 00054 if ( dynamic_cast<PlanarFigure*>(data) != NULL ) 00055 { 00056 newMapper = mitk::PlanarFigureMapper2D::New(); 00057 newMapper->SetDataNode(node); 00058 } 00059 } 00060 else if ( id == mitk::BaseRenderer::Standard3D ) 00061 { 00062 } 00063 00064 return newMapper; 00065 } 00066 00067 void mitk::PlanarFigureObjectFactory::SetDefaultProperties(mitk::DataNode* node) 00068 { 00069 00070 if ( node == NULL ) 00071 { 00072 return; 00073 } 00074 00075 mitk::DataNode::Pointer nodePointer = node; 00076 00077 mitk::PlanarFigure::Pointer pf = dynamic_cast<mitk::PlanarFigure*>( node->GetData() ); 00078 if ( pf.IsNotNull() ) 00079 { 00080 mitk::PlanarFigureMapper2D::SetDefaultProperties(node); 00081 } 00082 } 00083 00084 const char* mitk::PlanarFigureObjectFactory::GetFileExtensions() 00085 { 00086 return ""; 00087 }; 00088 00089 mitk::CoreObjectFactoryBase::MultimapType mitk::PlanarFigureObjectFactory::GetFileExtensionsMap() 00090 { 00091 return m_FileExtensionsMap; 00092 } 00093 00094 const char* mitk::PlanarFigureObjectFactory::GetSaveFileExtensions() 00095 { 00096 //return ";;Planar Figures (*.pf)"; // for mitk::PlanarFigure and derived classes 00097 std::string fileExtension; 00098 this->CreateFileExtensions(m_SaveFileExtensionsMap, fileExtension); 00099 return fileExtension.c_str(); 00100 }; 00101 00102 mitk::CoreObjectFactoryBase::MultimapType mitk::PlanarFigureObjectFactory::GetSaveFileExtensionsMap() 00103 { 00104 return m_SaveFileExtensionsMap; 00105 } 00106 00107 void mitk::PlanarFigureObjectFactory::CreateFileExtensionsMap() 00108 { 00109 m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.pf", "Planar Figure Files")); 00110 } 00111 00112 void mitk::PlanarFigureObjectFactory::RegisterIOFactories() 00113 { 00114 } 00115 00116 void RegisterPlanarFigureObjectFactory() 00117 { 00118 static bool oneObjectFactoryRegistered = false; 00119 if ( !oneObjectFactoryRegistered ) 00120 { 00121 MITK_INFO << "Registering PlanarFigureObjectFactory..." << std::endl; 00122 mitk::CoreObjectFactory::GetInstance()->RegisterExtraFactory( mitk::PlanarFigureObjectFactory::New() ); 00123 oneObjectFactoryRegistered = true; 00124 } 00125 }