Hello List,
I wanted to try the curved MPR component in MITK. I followed some
previous posts and found that PointSetToCurvedGeometryFilter does the
same.
Here“s the code. Am I missing anything? It crashes when rendering the
curved plane at the end (my system, Windows XP, MITK svn, vtk 5.4.2,
itk 3.16)
mitk::DataTreeNode* node =
m_Controls->m_TreeNodeSelector->GetSelectedNode();
if (!node)
{
// Nothing selected. Inform the user and return
return;
}
mitk::Image::Pointer image = dynamic_cast<mitk::Image*>( node->GetData() );
if ( image.IsNull() ) return;
if ( m_PointSet->GetSize() == 0 )
{
// no points set. return
return;
}
mitk::PointSetToCurvedGeometryFilter::Pointer filter =
mitk::PointSetToCurvedGeometryFilter::New();
int selection = m_Controls->m_ProjectionSelect->currentIndex();
if (selection == 0)
filter->SetProjectionMode(mitk::PointSetToCurvedGeometryFilter::Sphere);
else if (selection == 1)
filter->SetProjectionMode(mitk::PointSetToCurvedGeometryFilter::XYPlane);
else if (selection == 2)
filter->SetProjectionMode(mitk::PointSetToCurvedGeometryFilter::XZPlane);
else if (selection == 3)
filter->SetProjectionMode(mitk::PointSetToCurvedGeometryFilter::YZPlane);
filter->SetImageToBeMapped(image);
filter->SetSigma(1000);
filter->SetInput(m_PointSet);
try
{
this->BusyCursorOn();
filter->UpdateLargestPossibleRegion();
this->BusyCursorOff();
}
catch(itk::ExceptionObject& exception)
{
exception.Print(std::cout);
this->BusyCursorOff();
return;
}
mitk::GeometryData::Pointer tpsGeometry = filter->GetOutput();
tpsGeometry->DisconnectPipeline();
mitk::DataTreeNode::Pointer tpsNode = mitk::DataTreeNode::New();
tpsNode->SetData( tpsGeometry );
mitk::PointSetToCurvedGeometryFilter::SetDefaultCurvedGeometryProperties(tpsNode);
mitk::BaseRenderer* mappingRenderer =
mitk::BaseRenderer::GetInstance(m_MultiWidget->mitkWidget4->GetRenderWindow());
mappingRenderer->SetWorldGeometry(
tpsGeometry->GetTimeSlicedGeometry()->GetGeometry3D(0) );
// add result to data tree
this->GetDefaultDataStorage()->Add( tpsNode );
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
thank you,
sebastian
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users