Vtk-based mapper to draw Lines from PointSet. More...
#include <mitkLineVtkMapper3D.h>


Public Types | |
| typedef LineVtkMapper3D | Self |
| typedef PointSetVtkMapper3D | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| LineVtkMapper3D () | |
| virtual | ~LineVtkMapper3D () |
| virtual void | GenerateData (mitk::BaseRenderer *renderer) |
| Generate the data needed for rendering into renderer. | |
Vtk-based mapper to draw Lines from PointSet.
Definition at line 53 of file mitkLineVtkMapper3D.h.
| typedef itk::SmartPointer<const Self> mitk::LineVtkMapper3D::ConstPointer |
Reimplemented from mitk::PointSetVtkMapper3D.
Definition at line 57 of file mitkLineVtkMapper3D.h.
| typedef itk::SmartPointer<Self> mitk::LineVtkMapper3D::Pointer |
Reimplemented from mitk::PointSetVtkMapper3D.
Definition at line 57 of file mitkLineVtkMapper3D.h.
Reimplemented from mitk::PointSetVtkMapper3D.
Definition at line 57 of file mitkLineVtkMapper3D.h.
Reimplemented from mitk::PointSetVtkMapper3D.
Definition at line 57 of file mitkLineVtkMapper3D.h.
| mitk::LineVtkMapper3D::LineVtkMapper3D | ( | ) | [protected] |
Definition at line 28 of file mitkLineVtkMapper3D.cpp.
: PointSetVtkMapper3D()//constructor of superclass { }
| mitk::LineVtkMapper3D::~LineVtkMapper3D | ( | ) | [protected, virtual] |
Definition at line 33 of file mitkLineVtkMapper3D.cpp.
{
}
| void mitk::LineVtkMapper3D::GenerateData | ( | mitk::BaseRenderer * | renderer ) | [protected, virtual] |
Generate the data needed for rendering into renderer.
Reimplemented from mitk::PointSetVtkMapper3D.
Definition at line 37 of file mitkLineVtkMapper3D.cpp.
{//from PointListVTKMapper3D and a little re-layouted!
if(IsVisible(renderer)==false)
{
m_Actor->VisibilityOff();
return;
}
m_Actor->VisibilityOn();
m_vtkPointList->Delete();
m_vtkTextList->Delete();
m_contour->Delete();
m_tubefilter->Delete();
m_vtkPointList = vtkAppendPolyData::New();
m_vtkTextList = vtkAppendPolyData::New();
m_contour = vtkPolyData::New();
m_tubefilter = vtkTubeFilter::New();
mitk::PointSet::Pointer input = const_cast<mitk::PointSet*>(this->GetInput());
mitk::PointSet::PointSetType::Pointer pointList;
pointList = input->GetPointList();
mitk::PointSet::PointsContainer::Iterator i;
int j;
bool makeContour;
if (dynamic_cast<mitk::BoolProperty *>(this->GetDataNode()->GetProperty("show contour").GetPointer()) == NULL)
makeContour = false;
else
makeContour = dynamic_cast<mitk::BoolProperty *>(this->GetDataNode()->GetProperty("show contour").GetPointer())->GetValue();
vtkPoints *points = vtkPoints::New();
vtkCellArray *polys = vtkCellArray::New();
for (j=0, i=pointList->GetPoints()->Begin(); i!=pointList->GetPoints()->End() ; i++,j++)
{
int cell[2] = {j-1,j};
points->InsertPoint(j,i.Value()[0],i.Value()[1],i.Value()[2]);
if (j>0)
polys->InsertNextCell(2,cell);
}
bool close;
if (dynamic_cast<mitk::BoolProperty *>(this->GetDataNode()->GetProperty("close contour").GetPointer()) == NULL)
close = false;
else
close = dynamic_cast<mitk::BoolProperty *>(this->GetDataNode()->GetProperty("close contour").GetPointer())->GetValue();
if (close)
{
int cell[2] = {j-1,0};
polys->InsertNextCell(2,cell);
}
m_contour->SetPoints(points);
points->Delete();
m_contour->SetLines(polys);
polys->Delete();
m_contour->Update();
m_tubefilter->SetInput(m_contour);
m_tubefilter->SetRadius(1);
m_tubefilter->Update();;
m_vtkPointList->AddInput(m_tubefilter->GetOutput());
// check for color prop and use it for rendering if it exists
float rgba[4]={1.0f,1.0f,1.0f,1.0f};
GetColor(rgba, renderer);
for (j=0, i=pointList->GetPoints()->Begin(); i!=pointList->GetPoints()->End() ; i++,j++)
{
vtkSphereSource *sphere = vtkSphereSource::New();
sphere->SetRadius(2);
sphere->SetCenter(i.Value()[0],i.Value()[1],i.Value()[2]);
m_vtkPointList->AddInput(sphere->GetOutput());
if (dynamic_cast<mitk::StringProperty *>(this->GetDataNode()->GetProperty("label").GetPointer()) == NULL)
{
}
else
{
const char * pointLabel =dynamic_cast<mitk::StringProperty *>(this->GetDataNode()->GetProperty("label").GetPointer())->GetValue();
char buffer[20];
std::string l = pointLabel;
if (input->GetSize()>1)
{
sprintf(buffer,"%d",j+1);
l.append(buffer);
}
// Define the text for the label
vtkVectorText *label = vtkVectorText::New();
label->SetText(l.c_str());
// Set up a transform to move the label to a new position.
vtkTransform *aLabelTransform =vtkTransform::New();
aLabelTransform->Identity();
aLabelTransform->Translate(i.Value()[0]+2,i.Value()[1]+2,i.Value()[2]);
aLabelTransform->Scale(5.7,5.7,5.7);
// Move the label to a new position.
vtkTransformPolyDataFilter *labelTransform = vtkTransformPolyDataFilter::New();
labelTransform->SetTransform(aLabelTransform);
labelTransform->SetInput(label->GetOutput());
m_vtkPointList->AddInput(labelTransform->GetOutput());
}
}
m_VtkPolyDataMapper->SetInput(m_vtkPointList->GetOutput());
m_Actor->GetProperty()->SetColor(rgba);
}
| virtual const char* mitk::LineVtkMapper3D::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::PointSetVtkMapper3D.
| static Pointer mitk::LineVtkMapper3D::New | ( | ) | [static] |
Reimplemented from mitk::PointSetVtkMapper3D.
1.7.2