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

Reply via email to