void mitk::SimulationReader::GenerateData() { Simulation::Pointer simulation = static_cast<mitk::Simulation*>(this->GetOutput()); sofa::simulation::Simulation::SPtr sofaSimulation = simulation->GetSimulation(); ISimulationService* simulationService = GetSimulationService(); Simulation::Pointer currentSimulation = simulationService->GetSimulation(); simulationService->SetSimulation(simulation); std::string path = sofa::helper::system::SetDirectory::GetParentDir(m_FileName.c_str()); sofa::helper::system::DataRepository.addFirstPath(path); sofa::simulation::Node::SPtr rootNode = sofa::core::objectmodel::SPtr_dynamic_cast<sofa::simulation::Node>(sofaSimulation->load(m_FileName.c_str())); if (!rootNode) { sofa::helper::system::DataRepository.removePath(path); mitkThrow() << "Could not load '" << m_FileName << "'!"; } simulation->SetRootNode(rootNode); sofaSimulation->init(rootNode.get()); sofaSimulation->reset(rootNode.get()); simulation->UpdateOutputInformation(); sofa::helper::system::DataRepository.removePath(path); simulationService->SetSimulation(currentSimulation); }
mitk::vtkSimulationPolyDataMapper3D::vtkSimulationPolyDataMapper3D() : m_SimulationService(GetSimulationService()) { }