Vtk-based mapper for mitk::Contour. More...
#include <mitkContourSetVtkMapper3D.h>


Public Types | |
| typedef ContourSetVtkMapper3D | Self |
| typedef VtkMapper3D | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| virtual const mitk::ContourSet * | GetInput () |
| virtual vtkProp * | GetVtkProp (mitk::BaseRenderer *renderer) |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| ContourSetVtkMapper3D () | |
| virtual | ~ContourSetVtkMapper3D () |
| virtual void | GenerateData (mitk::BaseRenderer *renderer) |
| Generate the data needed for rendering into renderer. | |
Protected Attributes | |
| vtkPolyDataMapper * | m_VtkPolyDataMapper |
| vtkTubeFilter * | m_TubeFilter |
| vtkPolyData * | m_ContourSet |
| vtkActor * | m_Actor |
Vtk-based mapper for mitk::Contour.
Definition at line 40 of file mitkContourSetVtkMapper3D.h.
| typedef itk::SmartPointer<const Self> mitk::ContourSetVtkMapper3D::ConstPointer |
Reimplemented from mitk::VtkMapper3D.
Definition at line 44 of file mitkContourSetVtkMapper3D.h.
| typedef itk::SmartPointer<Self> mitk::ContourSetVtkMapper3D::Pointer |
Reimplemented from mitk::VtkMapper3D.
Definition at line 44 of file mitkContourSetVtkMapper3D.h.
Reimplemented from mitk::VtkMapper3D.
Definition at line 44 of file mitkContourSetVtkMapper3D.h.
Reimplemented from mitk::VtkMapper3D.
Definition at line 44 of file mitkContourSetVtkMapper3D.h.
| mitk::ContourSetVtkMapper3D::ContourSetVtkMapper3D | ( | ) | [protected] |
Definition at line 46 of file mitkContourSetVtkMapper3D.cpp.
References m_Actor, m_ContourSet, m_TubeFilter, m_VtkPolyDataMapper, and New().
{
m_VtkPolyDataMapper = vtkPolyDataMapper::New();
m_Actor = vtkActor::New();
m_Actor->SetMapper(m_VtkPolyDataMapper);
m_ContourSet = vtkPolyData::New();
m_TubeFilter = vtkTubeFilter::New();
}
| mitk::ContourSetVtkMapper3D::~ContourSetVtkMapper3D | ( | ) | [protected, virtual] |
Definition at line 56 of file mitkContourSetVtkMapper3D.cpp.
{
if( m_VtkPolyDataMapper )
m_VtkPolyDataMapper->Delete();;
if( m_TubeFilter )
m_TubeFilter->Delete();;
if( m_ContourSet )
m_ContourSet->Delete();;
if( m_Actor )
m_Actor->Delete();;
}
| void mitk::ContourSetVtkMapper3D::GenerateData | ( | mitk::BaseRenderer * | renderer ) | [protected, virtual] |
Generate the data needed for rendering into renderer.
Reimplemented from mitk::Mapper.
Definition at line 76 of file mitkContourSetVtkMapper3D.cpp.
References mitk::Contour::GetClosed(), mitk::Contour::GetContourPath(), mitk::ContourSet::GetContours(), mitk::BaseRenderer::GetDisplayGeometryUpdateTime(), and mitk::Contour::GetPoints().
{
if(IsVisible(renderer)==false)
{
m_Actor->VisibilityOff();
return;
}
m_Actor->VisibilityOn();
mitk::ContourSet::Pointer input = const_cast<mitk::ContourSet*>(this->GetInput());
if ( renderer->GetDisplayGeometryUpdateTime() > this->GetInput()->GetMTime() )
{
m_ContourSet = vtkPolyData::New();
vtkPoints *points = vtkPoints::New();
vtkCellArray *lines = vtkCellArray::New();
mitk::ContourSet::Pointer input = const_cast<mitk::ContourSet*>(this->GetInput());
mitk::ContourSet::ContourVectorType contourVec = input->GetContours();
mitk::ContourSet::ContourIterator contourIt = contourVec.begin();
vtkIdType firstPointIndex= 0, lastPointIndex=0;
vtkIdType ptIndex = 0;
while ( contourIt != contourVec.end() )
{
mitk::Contour* nextContour = (mitk::Contour*) (*contourIt).second;
Contour::InputType idx = nextContour->GetContourPath()->StartOfInput();
Contour::InputType end = nextContour->GetContourPath()->EndOfInput();
if (end > 50000) end = 0;
mitk::Contour::PointsContainerPointer contourPoints = nextContour->GetPoints();
mitk::Contour::PointsContainerIterator pointsIt = contourPoints->Begin();
unsigned int counter = 0;
firstPointIndex=ptIndex;
while ( pointsIt != contourPoints->End() )
{
if (counter %2 == 0)
{
Contour::BoundingBoxType::PointType point;
point = pointsIt.Value();
points->InsertPoint(ptIndex, point[0],point[1],point[2]);
if (ptIndex > firstPointIndex)
{
int cell[2] = {ptIndex-1,ptIndex};
lines->InsertNextCell((vtkIdType)2,(vtkIdType*) cell);
}
lastPointIndex=ptIndex;
ptIndex++;
}
pointsIt++;
idx+=1;
}
if (nextContour->GetClosed())
{
int cell[2] = {lastPointIndex,firstPointIndex};
lines->InsertNextCell((vtkIdType)2,(vtkIdType*) cell);
}
contourIt++;
}
m_ContourSet->SetPoints(points);
m_ContourSet->SetLines(lines);
m_ContourSet->Update();
m_TubeFilter->SetInput(m_ContourSet);
m_TubeFilter->SetRadius(1);
m_TubeFilter->Update();
m_VtkPolyDataMapper->SetInput(m_TubeFilter->GetOutput());
vtkFloatingPointType rgba[4]={0.0f,1.0f,0.0f,0.6f};
m_Actor->GetProperty()->SetColor(rgba);
m_Actor->SetMapper(m_VtkPolyDataMapper);
}
SetVtkMapperImmediateModeRendering(m_VtkPolyDataMapper);
}
| virtual const char* mitk::ContourSetVtkMapper3D::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::VtkMapper3D.
| const mitk::ContourSet * mitk::ContourSetVtkMapper3D::GetInput | ( | void | ) | [virtual] |
Definition at line 160 of file mitkContourSetVtkMapper3D.cpp.
{
return static_cast<const mitk::ContourSet* > ( GetData() );
}
| vtkProp * mitk::ContourSetVtkMapper3D::GetVtkProp | ( | mitk::BaseRenderer * | renderer ) | [virtual] |
Implements mitk::VtkMapper3D.
Definition at line 71 of file mitkContourSetVtkMapper3D.cpp.
{
return m_Actor;
}
| static Pointer mitk::ContourSetVtkMapper3D::New | ( | ) | [static] |
vtkActor* mitk::ContourSetVtkMapper3D::m_Actor [protected] |
Definition at line 64 of file mitkContourSetVtkMapper3D.h.
Referenced by ContourSetVtkMapper3D().
vtkPolyData* mitk::ContourSetVtkMapper3D::m_ContourSet [protected] |
Definition at line 63 of file mitkContourSetVtkMapper3D.h.
Referenced by ContourSetVtkMapper3D().
vtkTubeFilter* mitk::ContourSetVtkMapper3D::m_TubeFilter [protected] |
Definition at line 61 of file mitkContourSetVtkMapper3D.h.
Referenced by ContourSetVtkMapper3D().
vtkPolyDataMapper* mitk::ContourSetVtkMapper3D::m_VtkPolyDataMapper [protected] |
Definition at line 60 of file mitkContourSetVtkMapper3D.h.
Referenced by ContourSetVtkMapper3D().
1.7.2