Public Types | Public Member Functions | Static Public Member Functions

mitk::SceneReader Class Reference

#include <mitkSceneReader.h>

Inheritance diagram for mitk::SceneReader:
Inheritance graph
[legend]

List of all members.

Public Types

typedef SceneReader Self
typedef itk::Object Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
virtual bool LoadScene (TiXmlDocument &document, const std::string &workingDirectory, DataStorage *storage)

Static Public Member Functions

static Pointer New ()

Detailed Description

Definition at line 29 of file mitkSceneReader.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::SceneReader::ConstPointer

Reimplemented in mitk::SceneReaderV1.

Definition at line 33 of file mitkSceneReader.h.

typedef itk::SmartPointer<Self> mitk::SceneReader::Pointer

Reimplemented in mitk::SceneReaderV1.

Definition at line 33 of file mitkSceneReader.h.

Reimplemented in mitk::SceneReaderV1.

Definition at line 33 of file mitkSceneReader.h.

typedef itk::Object mitk::SceneReader::Superclass

Reimplemented in mitk::SceneReaderV1.

Definition at line 33 of file mitkSceneReader.h.


Member Function Documentation

virtual const char* mitk::SceneReader::GetClassName (  ) const [virtual]

Reimplemented in mitk::SceneReaderV1.

bool mitk::SceneReader::LoadScene ( TiXmlDocument document,
const std::string &  workingDirectory,
DataStorage storage 
) [virtual]

Reimplemented in mitk::SceneReaderV1.

Definition at line 20 of file mitkSceneReader.cpp.

References TiXmlNode::FirstChildElement(), MITK_ERROR, MITK_WARN, TiXmlElement::QueryIntAttribute(), and TIXML_SUCCESS.

{
  // find version node --> note version in some variable
  int fileVersion = 1;
  TiXmlElement* versionObject = document.FirstChildElement("Version");
  if (versionObject)
  {
    if ( versionObject->QueryIntAttribute( "FileVersion", &fileVersion ) != TIXML_SUCCESS )
    {
      MITK_ERROR << "Scene file " << workingDirectory + "/index.xml" << " does not contain version information! Trying version 1 format." << std::endl;
    }
  }
  
  std::stringstream sceneReaderClassName;
  sceneReaderClassName << "SceneReaderV" << fileVersion;

  std::list<itk::LightObject::Pointer> sceneReaders = itk::ObjectFactoryBase::CreateAllInstance(sceneReaderClassName.str().c_str());
  if (sceneReaders.size() < 1)
  {
    MITK_ERROR << "No scene reader found for scene file version " << fileVersion;
  }
  if (sceneReaders.size() > 1)
  {
    MITK_WARN << "Multiple scene readers found for scene file version " << fileVersion << ". Using arbitrary first one.";
  }

  for ( std::list<itk::LightObject::Pointer>::iterator iter = sceneReaders.begin();
        iter != sceneReaders.end();
        ++iter )
  {
    if (SceneReader* reader = dynamic_cast<SceneReader*>( iter->GetPointer() ) )
    {
      if ( !reader->LoadScene( document, workingDirectory, storage ) )
      {
        MITK_ERROR << "There were errors while loding scene file " << workingDirectory + "/index.xml. Your data may be corrupted";
        return false;
      }
      else
      {
        return true;
      }
    }
  }
  return false;
}
static Pointer mitk::SceneReader::New (  ) [static]

Reimplemented in mitk::SceneReaderV1.

Referenced by mitk::SceneIO::LoadScene().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines