#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.
1.7.2