#include <mitkCoreObjectFactory.h>
Public Member Functions | |
mitkClassMacro (CoreObjectFactory, CoreObjectFactoryBase) | |
itkFactorylessNewMacro (CoreObjectFactory) | |
virtual Mapper::Pointer | CreateMapper (mitk::DataNode *node, MapperSlotId slotId) |
virtual void | SetDefaultProperties (mitk::DataNode *node) |
virtual const char * | GetFileExtensions () |
This method gets the supported (open) file extensions as string. This string is can then used by the QT QFileDialog widget. | |
virtual MultimapType | GetFileExtensionsMap () |
get the defined (open) file extension map | |
virtual const char * | GetSaveFileExtensions () |
This method gets the supported (save) file extensions as string. This string is can then used by the QT QFileDialog widget. | |
virtual MultimapType | GetSaveFileExtensionsMap () |
get the defined (save) file extension map | |
virtual FileWriterList | GetFileWriters () |
virtual void | MapEvent (const mitk::Event *event, const int eventID) |
virtual void | RegisterExtraFactory (CoreObjectFactoryBase *factory) |
Static Public Member Functions | |
static Pointer | GetInstance () |
Protected Types | |
typedef std::list < mitk::CoreObjectFactoryBase::Pointer > | ExtraFactoriesList |
Protected Member Functions | |
CoreObjectFactory () | |
void | MergeFileExtensions (MultimapType &fileExtensionsMap, MultimapType inputMap) |
Merge the input map into the fileExtensionsMap. Duplicate entries are removed. | |
void | CreateFileExtensionsMap () |
initialze the file extension entries for open and save | |
void | CreateSaveFileExtensions () |
Protected Attributes | |
ExtraFactoriesList | m_ExtraFactories |
std::string | m_FileExtensions |
MultimapType | m_FileExtensionsMap |
std::string | m_SaveFileExtensions |
MultimapType | m_SaveFileExtensionsMap |
Static Protected Attributes | |
static FileWriterList | m_FileWriters |
Definition at line 30 of file mitkCoreObjectFactory.h.
typedef std::list<mitk::CoreObjectFactoryBase::Pointer> mitk::CoreObjectFactory::ExtraFactoriesList [protected] |
Definition at line 50 of file mitkCoreObjectFactory.h.
mitk::CoreObjectFactory::CoreObjectFactory | ( | ) | [protected] |
Definition at line 119 of file mitkCoreObjectFactory.cpp.
References MITK_INFO, mitk::ImageWriterFactory::RegisterOneFactory(), mitk::PointSetWriterFactory::RegisterOneFactory(), and mitk::SurfaceVtkWriterFactory::RegisterOneFactory().
{ static bool alreadyDone = false; if (!alreadyDone) { MITK_INFO << "CoreObjectFactory c'tor" << std::endl; itk::ObjectFactoryBase::RegisterFactory( PicFileIOFactory::New() ); itk::ObjectFactoryBase::RegisterFactory( PointSetIOFactory::New() ); itk::ObjectFactoryBase::RegisterFactory( STLFileIOFactory::New() ); itk::ObjectFactoryBase::RegisterFactory( VtkSurfaceIOFactory::New() ); itk::ObjectFactoryBase::RegisterFactory( VtkImageIOFactory::New() ); itk::ObjectFactoryBase::RegisterFactory( VtiFileIOFactory::New() ); itk::ObjectFactoryBase::RegisterFactory( ItkImageFileIOFactory::New() ); itk::ObjectFactoryBase::RegisterFactory( PicVolumeTimeSeriesIOFactory::New() ); mitk::SurfaceVtkWriterFactory::RegisterOneFactory(); mitk::PointSetWriterFactory::RegisterOneFactory(); mitk::ImageWriterFactory::RegisterOneFactory(); CreateFileExtensionsMap(); alreadyDone = true; } }
void mitk::CoreObjectFactory::CreateFileExtensionsMap | ( | ) | [protected] |
initialze the file extension entries for open and save
Definition at line 296 of file mitkCoreObjectFactory.cpp.
{ m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.dcm", "DICOM files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.DCM", "DICOM files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.dc3", "DICOM files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.DC3", "DICOM files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.gdcm", "DICOM files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.seq", "DKFZ Pic")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.pic", "DKFZ Pic")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.pic.gz", "DKFZ Pic")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.mhd", "MetaImage")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.seq.gz", "DKFZ Pic")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.nrrd", "NRRD Vector Images")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.nhdr", "NRRD Vector Images")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.mps", "Point sets")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.pic", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.pic.gz", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.bmp", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.png", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.jpg", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.jpeg", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.dcm", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.gdcm", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.ima", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.tiff", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.tif", "Sets of 2D slices")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.stl", "Surface files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.vtk", "Surface files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.vtp", "Surface files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.obj", "Surface files")); m_FileExtensionsMap.insert(std::pair<std::string, std::string>("*.nii", "NIfTI format")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.pic", "DKFZ Pic")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.mhd", "MetaImage")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.vtk", "Surface Files")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.vti", "VTK Image Data Files")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.hdr", "Image Header Files")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.png", "Sets of 2D slices")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.tiff", "Sets of 2D slices")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.tif", "Sets of 2D slices")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.jpg", "Sets of 2D slices")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.jpeg", "Sets of 2D slices")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.bmp", "Sets of 2D slices")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.dcm", "Sets of 2D slices")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.gipl", "UMDS GIPL Format Files")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.nii", "NIfTI format")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.nrrd", "NRRD Vector Images")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.nhdr", "NRRD Vector Images")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.spr", "Stimulate Files")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.lsm", "Microscope Images")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.dwi", "Diffusion Weighted Images")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.hdwi", "Diffusion Weighted Images")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.qbi", "Q-Ball Images")); m_SaveFileExtensionsMap.insert(std::pair<std::string, std::string>("*.hqbi", "Q-Ball Images")); }
mitk::Mapper::Pointer mitk::CoreObjectFactory::CreateMapper | ( | mitk::DataNode * | node, |
MapperSlotId | slotId | ||
) | [virtual] |
Implements mitk::CoreObjectFactoryBase.
Definition at line 145 of file mitkCoreObjectFactory.cpp.
References mitk::DataNode::GetData(), mitk::PointSetVtkMapper3D::New(), mitk::SurfaceVtkMapper3D::New(), mitk::Geometry2DDataVtkMapper3D::New(), mitk::VolumeDataVtkMapper3D::New(), mitk::PointSetGLMapper2D::New(), mitk::SurfaceGLMapper2D::New(), mitk::Geometry2DDataMapper2D::New(), mitk::ImageMapperGL2D::New(), mitk::SurfaceGLMapper2D::SetDataNode(), mitk::BaseRenderer::Standard2D, and mitk::BaseRenderer::Standard3D.
{ mitk::Mapper::Pointer newMapper = NULL; mitk::Mapper::Pointer tmpMapper = NULL; // check whether extra factories provide mapper for (ExtraFactoriesList::iterator it = m_ExtraFactories.begin(); it != m_ExtraFactories.end() ; it++ ) { tmpMapper = (*it)->CreateMapper(node,id); if(tmpMapper.IsNotNull()) newMapper = tmpMapper; } if (newMapper.IsNull()) { mitk::BaseData *data = node->GetData(); if ( id == mitk::BaseRenderer::Standard2D ) { if((dynamic_cast<Image*>(data)!=NULL)) { mitk::Image::Pointer image = dynamic_cast<mitk::Image*>(data); newMapper = mitk::ImageMapperGL2D::New(); newMapper->SetDataNode(node); } else if((dynamic_cast<Geometry2DData*>(data)!=NULL)) { newMapper = mitk::Geometry2DDataMapper2D::New(); newMapper->SetDataNode(node); } else if((dynamic_cast<Surface*>(data)!=NULL)) { newMapper = mitk::SurfaceGLMapper2D::New(); // cast because SetDataNode is not virtual mitk::SurfaceGLMapper2D *castedMapper = dynamic_cast<mitk::SurfaceGLMapper2D*>(newMapper.GetPointer()); castedMapper->SetDataNode(node); } else if((dynamic_cast<PointSet*>(data)!=NULL)) { newMapper = mitk::PointSetGLMapper2D::New(); newMapper->SetDataNode(node); } } else if ( id == mitk::BaseRenderer::Standard3D ) { if((dynamic_cast<Image*>(data) != NULL)) { newMapper = mitk::VolumeDataVtkMapper3D::New(); newMapper->SetDataNode(node); } else if((dynamic_cast<Geometry2DData*>(data)!=NULL)) { newMapper = mitk::Geometry2DDataVtkMapper3D::New(); newMapper->SetDataNode(node); } else if((dynamic_cast<Surface*>(data)!=NULL)) { newMapper = mitk::SurfaceVtkMapper3D::New(); newMapper->SetDataNode(node); } else if((dynamic_cast<PointSet*>(data)!=NULL)) { newMapper = mitk::PointSetVtkMapper3D::New(); //newMapper = mitk::EnhancedPointSetVtkMapper3D::New(); // <-- use this if you want to try the new work in progres point set mapper newMapper->SetDataNode(node); } } } return newMapper; }
void mitk::CoreObjectFactory::CreateSaveFileExtensions | ( | ) | [protected] |
const char * mitk::CoreObjectFactory::GetFileExtensions | ( | ) | [virtual] |
This method gets the supported (open) file extensions as string. This string is can then used by the QT QFileDialog widget.
Implements mitk::CoreObjectFactoryBase.
Definition at line 238 of file mitkCoreObjectFactory.cpp.
{ MultimapType aMap; for (ExtraFactoriesList::iterator it = m_ExtraFactories.begin(); it != m_ExtraFactories.end() ; it++ ) { aMap = (*it)->GetFileExtensionsMap(); this->MergeFileExtensions(m_FileExtensionsMap, aMap); } this->CreateFileExtensions(m_FileExtensionsMap, m_FileExtensions); return m_FileExtensions.c_str(); }
mitk::CoreObjectFactoryBase::MultimapType mitk::CoreObjectFactory::GetFileExtensionsMap | ( | ) | [virtual] |
get the defined (open) file extension map
Implements mitk::CoreObjectFactoryBase.
Definition at line 288 of file mitkCoreObjectFactory.cpp.
{ return m_FileExtensionsMap; }
mitk::CoreObjectFactory::FileWriterList mitk::CoreObjectFactory::GetFileWriters | ( | ) | [virtual] |
Reimplemented from mitk::CoreObjectFactoryBase.
Definition at line 379 of file mitkCoreObjectFactory.cpp.
{ FileWriterList allWriters = m_FileWriters; for (ExtraFactoriesList::iterator it = m_ExtraFactories.begin(); it != m_ExtraFactories.end() ; it++ ) { FileWriterList list2 = (*it)->GetFileWriters(); allWriters.merge(list2); } return allWriters; }
mitk::CoreObjectFactory::Pointer mitk::CoreObjectFactory::GetInstance | ( | ) | [static] |
Definition at line 76 of file mitkCoreObjectFactory.cpp.
Referenced by mitk::BinaryThresholdTool::BinaryThresholdTool(), mitk::BinaryThresholdULTool::BinaryThresholdULTool(), mitk::DataNodeFactory::DataNodeFactory(), mitk::DiffusionImagingObjectFactory::DiffusionImagingObjectFactory(), CommonFunctionality::FileOpen(), CommonFunctionality::FileOpenImageSequence(), mitk::DataNode::GetMapper(), QmitkDataManagerView::Load(), mitk::EventMapper::MapEvent(), mitkCoreExtObjectFactoryTest(), mitkCoreObjectFactoryTest(), mitkFactoryRegistrationTest(), CommonFunctionality::OpenVolumeOrSliceStack(), QmitkSlicesInterpolator::QmitkSlicesInterpolator(), RegisterCoreExtObjectFactory(), RegisterDiffusionImagingObjectFactory(), RegisterPlanarFigureObjectFactory(), QmitkFileOpenAction::Run(), QmitkExtFileOpenAction::Run(), CommonFunctionality::SaveBaseData(), CommonFunctionality::SaveImage(), mitk::DataNode::SetData(), and mitk::ToolManager::ToolManager().
{ static mitk::CoreObjectFactory::Pointer instance; if (instance.IsNull()) { instance = mitk::CoreObjectFactory::New(); } return instance; }
const char * mitk::CoreObjectFactory::GetSaveFileExtensions | ( | ) | [virtual] |
This method gets the supported (save) file extensions as string. This string is can then used by the QT QFileDialog widget.
Implements mitk::CoreObjectFactoryBase.
Definition at line 358 of file mitkCoreObjectFactory.cpp.
{ MultimapType aMap; for (ExtraFactoriesList::iterator it = m_ExtraFactories.begin(); it != m_ExtraFactories.end() ; it++ ) { aMap = (*it)->GetSaveFileExtensionsMap(); this->MergeFileExtensions(m_SaveFileExtensionsMap, aMap); } this->CreateFileExtensions(m_SaveFileExtensionsMap, m_SaveFileExtensions); return m_SaveFileExtensions.c_str(); };
mitk::CoreObjectFactoryBase::MultimapType mitk::CoreObjectFactory::GetSaveFileExtensionsMap | ( | ) | [virtual] |
get the defined (save) file extension map
Implements mitk::CoreObjectFactoryBase.
Definition at line 374 of file mitkCoreObjectFactory.cpp.
{ return m_SaveFileExtensionsMap; }
mitk::CoreObjectFactory::itkFactorylessNewMacro | ( | CoreObjectFactory | ) |
void mitk::CoreObjectFactory::MapEvent | ( | const mitk::Event * | event, |
const int | eventID | ||
) | [virtual] |
Definition at line 387 of file mitkCoreObjectFactory.cpp.
{ }
void mitk::CoreObjectFactory::MergeFileExtensions | ( | MultimapType & | fileExtensionsMap, |
MultimapType | inputMap | ||
) | [protected] |
Merge the input map into the fileExtensionsMap. Duplicate entries are removed.
fileExtensionsMap | the existing map, it contains value pairs like ("*.dcm", "DICOM files"),("*.dc3", "DICOM files"). This map is extented/merged with the values from the input map. |
inputMap | the input map, it contains value pairs like ("*.dcm", "DICOM files"),("*.dc3", "DICOM files") returned by the extra factories. |
Definition at line 258 of file mitkCoreObjectFactory.cpp.
{ bool duplicateFound = false; std::pair<MultimapType::iterator, MultimapType::iterator> pairOfIter; for (MultimapType::iterator it = inputMap.begin(); it != inputMap.end(); ++it) { duplicateFound = false; pairOfIter = fileExtensionsMap.equal_range((*it).first); for (MultimapType::iterator it2 = pairOfIter.first; it2 != pairOfIter.second; ++it2) { //cout << " [" << (*it).first << ", " << (*it).second << "]" << endl; std::string aString = (*it2).second; if (aString.compare((*it).second) == 0) { //cout << " DUP!! [" << (*it).first << ", " << (*it).second << "]" << endl; duplicateFound = true; break; } } if (!duplicateFound) { fileExtensionsMap.insert(std::pair<std::string, std::string>((*it).first, (*it).second)); } } }
mitk::CoreObjectFactory::mitkClassMacro | ( | CoreObjectFactory | , |
CoreObjectFactoryBase | |||
) |
void mitk::CoreObjectFactory::RegisterExtraFactory | ( | CoreObjectFactoryBase * | factory ) | [virtual] |
Definition at line 71 of file mitkCoreObjectFactory.cpp.
References m_ExtraFactories, and MITK_INFO.
{ MITK_INFO << "CoreObjectFactory: registering extra factory of type " << factory->GetNameOfClass(); m_ExtraFactories.push_back(CoreObjectFactoryBase::Pointer(factory)); }
void mitk::CoreObjectFactory::SetDefaultProperties | ( | mitk::DataNode * | node ) | [virtual] |
Implements mitk::CoreObjectFactoryBase.
Definition at line 87 of file mitkCoreObjectFactory.cpp.
References mitk::DataNode::GetData(), mitk::PointSetVtkMapper3D::SetDefaultProperties(), mitk::PointSetGLMapper2D::SetDefaultProperties(), mitk::SurfaceVtkMapper3D::SetDefaultProperties(), mitk::SurfaceGLMapper2D::SetDefaultProperties(), mitk::VolumeDataVtkMapper3D::SetDefaultProperties(), and mitk::ImageMapperGL2D::SetDefaultProperties().
{ if(node==NULL) return; mitk::DataNode::Pointer nodePointer = node; mitk::Image::Pointer image = dynamic_cast<mitk::Image*>(node->GetData()); if(image.IsNotNull() && image->IsInitialized()) { mitk::ImageMapperGL2D::SetDefaultProperties(node); mitk::VolumeDataVtkMapper3D::SetDefaultProperties(node); } mitk::Surface::Pointer surface = dynamic_cast<mitk::Surface*>(node->GetData()); if(surface.IsNotNull()) { mitk::SurfaceGLMapper2D::SetDefaultProperties(node); mitk::SurfaceVtkMapper3D::SetDefaultProperties(node); } mitk::PointSet::Pointer pointSet = dynamic_cast<mitk::PointSet*>(node->GetData()); if(pointSet.IsNotNull()) { mitk::PointSetGLMapper2D::SetDefaultProperties(node); mitk::PointSetVtkMapper3D::SetDefaultProperties(node); } for (ExtraFactoriesList::iterator it = m_ExtraFactories.begin(); it != m_ExtraFactories.end() ; it++ ) { (*it)->SetDefaultProperties(node); } }
Definition at line 51 of file mitkCoreObjectFactory.h.
Referenced by RegisterExtraFactory().
std::string mitk::CoreObjectFactory::m_FileExtensions [protected] |
Definition at line 53 of file mitkCoreObjectFactory.h.
Definition at line 54 of file mitkCoreObjectFactory.h.
mitk::CoreObjectFactory::FileWriterList mitk::CoreObjectFactory::m_FileWriters [static, protected] |
Reimplemented from mitk::CoreObjectFactoryBase.
Definition at line 52 of file mitkCoreObjectFactory.h.
std::string mitk::CoreObjectFactory::m_SaveFileExtensions [protected] |
Definition at line 55 of file mitkCoreObjectFactory.h.
Definition at line 56 of file mitkCoreObjectFactory.h.