Vtk-based mapper for PointList. More...
#include <mitkMeshVtkMapper3D.h>


Public Types | |
| typedef MeshVtkMapper3D | 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::Mesh * | GetInput () |
| virtual vtkProp * | GetVtkProp (mitk::BaseRenderer *renderer) |
| virtual void | UpdateVtkTransform (mitk::BaseRenderer *renderer) |
| Set the vtkTransform of the m_Prop3D for the current time step of renderer. | |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| MeshVtkMapper3D () | |
| virtual | ~MeshVtkMapper3D () |
| virtual void | GenerateData () |
| Generate the data needed for rendering (independent of a specific renderer) | |
| virtual void | GenerateData (mitk::BaseRenderer *renderer) |
| Generate the data needed for rendering into renderer. | |
| virtual void | ResetMapper (BaseRenderer *renderer) |
Protected Attributes | |
| vtkPropAssembly * | m_PropAssembly |
| vtkActor * | m_SpheresActor |
| vtkActor * | m_ContourActor |
| vtkPolyDataMapper * | m_ContourMapper |
| vtkPolyDataMapper * | m_SpheresMapper |
| vtkPolyDataMapper * | m_TextVtkPolyDataMapper |
| vtkAppendPolyData * | m_Spheres |
| vtkPolyData * | m_Contour |
Vtk-based mapper for PointList.
Definition at line 54 of file mitkMeshVtkMapper3D.h.
| typedef itk::SmartPointer<const Self> mitk::MeshVtkMapper3D::ConstPointer |
Reimplemented from mitk::VtkMapper3D.
Definition at line 58 of file mitkMeshVtkMapper3D.h.
| typedef itk::SmartPointer<Self> mitk::MeshVtkMapper3D::Pointer |
Reimplemented from mitk::VtkMapper3D.
Definition at line 58 of file mitkMeshVtkMapper3D.h.
Reimplemented from mitk::VtkMapper3D.
Definition at line 58 of file mitkMeshVtkMapper3D.h.
Reimplemented from mitk::VtkMapper3D.
Definition at line 58 of file mitkMeshVtkMapper3D.h.
| mitk::MeshVtkMapper3D::MeshVtkMapper3D | ( | ) | [protected] |
Definition at line 58 of file mitkMeshVtkMapper3D.cpp.
References m_Contour, m_ContourActor, m_ContourMapper, m_PropAssembly, m_Spheres, m_SpheresActor, m_SpheresMapper, and New().
: m_PropAssembly(NULL) { m_Spheres = vtkAppendPolyData::New(); m_Contour = vtkPolyData::New(); m_SpheresActor = vtkActor::New(); m_SpheresMapper = vtkPolyDataMapper::New(); m_SpheresActor->SetMapper(m_SpheresMapper); m_ContourActor = vtkActor::New(); m_ContourMapper = vtkPolyDataMapper::New(); m_ContourActor->SetMapper(m_ContourMapper); m_ContourActor->GetProperty()->SetAmbient(1.0); m_PropAssembly = vtkPropAssembly::New(); // a vtkPropAssembly is not a sub-class of vtkProp3D, so // we cannot use m_Prop3D. }
| mitk::MeshVtkMapper3D::~MeshVtkMapper3D | ( | ) | [protected, virtual] |
Definition at line 79 of file mitkMeshVtkMapper3D.cpp.
{
m_ContourActor->Delete();
m_SpheresActor->Delete();
m_ContourMapper->Delete();
m_SpheresMapper->Delete();
m_PropAssembly->Delete();
m_Spheres->Delete();
m_Contour->Delete();
}
| void mitk::MeshVtkMapper3D::GenerateData | ( | ) | [protected, virtual] |
Generate the data needed for rendering (independent of a specific renderer)
!define a new ColorProp to be able to pass alpha value
Reimplemented from mitk::Mapper.
Definition at line 90 of file mitkMeshVtkMapper3D.cpp.
References mitk::Mesh::GetMesh(), and mitk::GenericProperty< T >::GetValue().
{
m_PropAssembly->VisibilityOn();
if(m_PropAssembly->GetParts()->IsItemPresent(m_SpheresActor))
m_PropAssembly->RemovePart(m_SpheresActor);
if(m_PropAssembly->GetParts()->IsItemPresent(m_ContourActor))
m_PropAssembly->RemovePart(m_ContourActor);
m_Spheres->RemoveAllInputs();
m_Contour->Initialize();
mitk::Mesh::Pointer input = const_cast<mitk::Mesh*>(this->GetInput());
input->Update();
mitk::Mesh::DataType::Pointer itkMesh = input->GetMesh( this->GetTimestep() );
if ( itkMesh.GetPointer() == NULL)
{
m_PropAssembly->VisibilityOff();
return;
}
mitk::Mesh::PointsContainer::Iterator i;
int j;
float floatRgba[4] = {1.0f,1.0f,1.0f,1.0f};
vtkFloatingPointType doubleRgba[4]={1.0f,1.0f,1.0f,1.0f};
mitk::Color tmpColor;
// check for color prop and use it for rendering if it exists
m_DataNode->GetColor(floatRgba, NULL);
if (dynamic_cast<mitk::ColorProperty*>(this->GetDataNode()->GetProperty("unselectedcolor")) != NULL)
{
tmpColor = dynamic_cast<mitk::ColorProperty *>(this->GetDataNode()->GetProperty("unselectedcolor"))->GetValue();
floatRgba[0] = tmpColor[0];
floatRgba[1] = tmpColor[1];
floatRgba[2] = tmpColor[2];
floatRgba[3] = 1.0f;
doubleRgba[0] = floatRgba[0];
doubleRgba[1] = floatRgba[1];
doubleRgba[2] = floatRgba[2];
doubleRgba[3] = floatRgba[3];
}
if(itkMesh->GetNumberOfPoints()>0)
{
// build m_Spheres->GetOutput() vtkPolyData
float pointSize = 2.0;
mitk::FloatProperty::Pointer pointSizeProp = dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetProperty("pointsize"));
if (pointSizeProp.IsNotNull())
pointSize = pointSizeProp->GetValue();
for (j=0, i=itkMesh->GetPoints()->Begin(); i!=itkMesh->GetPoints()->End() ; i++,j++)
{
vtkSphereSource *sphere = vtkSphereSource::New();
sphere->SetRadius(pointSize);
sphere->SetCenter(i.Value()[0],i.Value()[1],i.Value()[2]);
m_Spheres->AddInput(sphere->GetOutput());
sphere->Delete();
}
// setup mapper, actor and add to assembly
m_SpheresMapper->SetInput(m_Spheres->GetOutput());
m_SpheresActor->GetProperty()->SetColor(doubleRgba);
m_PropAssembly->AddPart(m_SpheresActor);
}
if(itkMesh->GetNumberOfCells()>0)
{
// build m_Contour vtkPolyData
#ifdef VCL_VC60
itkExceptionMacro(<<"MeshVtkMapper3D currently not working for MS Visual C++ 6.0, because MeshUtils are currently not supported.");
#else
m_Contour = MeshUtil<mitk::Mesh::MeshType>::MeshToPolyData(itkMesh.GetPointer(), false, false, 0, NULL, m_Contour);
#endif
if(m_Contour->GetNumberOfCells()>0)
{
// setup mapper, actor and add to assembly
m_ContourMapper->SetInput(m_Contour);
bool wireframe=true;
GetDataNode()->GetVisibility(wireframe, NULL, "wireframe");
if(wireframe)
m_ContourActor->GetProperty()->SetRepresentationToWireframe();
else
m_ContourActor->GetProperty()->SetRepresentationToSurface();
m_ContourActor->GetProperty()->SetColor(doubleRgba);
m_PropAssembly->AddPart(m_ContourActor);
}
}
}
| void mitk::MeshVtkMapper3D::GenerateData | ( | mitk::BaseRenderer * | renderer ) | [protected, virtual] |
Generate the data needed for rendering into renderer.
Reimplemented from mitk::Mapper.
Definition at line 189 of file mitkMeshVtkMapper3D.cpp.
{
SetVtkMapperImmediateModeRendering(m_ContourMapper);
SetVtkMapperImmediateModeRendering(m_SpheresMapper);
if(IsVisible(renderer)==false)
{
m_SpheresActor->VisibilityOff();
m_ContourActor->VisibilityOff();
return;
}
bool makeContour = false;
this->GetDataNode()->GetBoolProperty("show contour", makeContour);
if (makeContour)
{
m_ContourActor->VisibilityOn();
}
else
{
m_ContourActor->VisibilityOff();
}
bool showPoints = true;
this->GetDataNode()->GetBoolProperty("show points", showPoints);
if(showPoints)
{
m_SpheresActor->VisibilityOn();
}
else
{
m_SpheresActor->VisibilityOff();
}
}
| virtual const char* mitk::MeshVtkMapper3D::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::VtkMapper3D.
| const mitk::Mesh * mitk::MeshVtkMapper3D::GetInput | ( | void | ) | [virtual] |
Definition at line 39 of file mitkMeshVtkMapper3D.cpp.
References mitk::Mapper::GetData().
{
return static_cast<const mitk::Mesh * > ( GetData() );
}
| vtkProp * mitk::MeshVtkMapper3D::GetVtkProp | ( | mitk::BaseRenderer * | renderer ) | [virtual] |
Implements mitk::VtkMapper3D.
Definition at line 44 of file mitkMeshVtkMapper3D.cpp.
{
return m_PropAssembly;
}
| static Pointer mitk::MeshVtkMapper3D::New | ( | ) | [static] |
| void mitk::MeshVtkMapper3D::ResetMapper | ( | BaseRenderer * | renderer ) | [protected, virtual] |
Reimplemented from mitk::Mapper.
Definition at line 225 of file mitkMeshVtkMapper3D.cpp.
{
m_PropAssembly->VisibilityOff();
}
| void mitk::MeshVtkMapper3D::UpdateVtkTransform | ( | mitk::BaseRenderer * | renderer ) | [virtual] |
Set the vtkTransform of the m_Prop3D for the current time step of renderer.
Called by mitk::VtkPropRenderer::Update before rendering
Reimplemented from mitk::VtkMapper3D.
Definition at line 49 of file mitkMeshVtkMapper3D.cpp.
{
vtkLinearTransform * vtktransform =
this->GetDataNode()->GetVtkTransform(this->GetTimestep());
m_SpheresActor->SetUserTransform(vtktransform);
m_ContourActor->SetUserTransform(vtktransform);
}
vtkPolyData* mitk::MeshVtkMapper3D::m_Contour [protected] |
Definition at line 88 of file mitkMeshVtkMapper3D.h.
Referenced by MeshVtkMapper3D().
vtkActor* mitk::MeshVtkMapper3D::m_ContourActor [protected] |
Definition at line 81 of file mitkMeshVtkMapper3D.h.
Referenced by MeshVtkMapper3D().
vtkPolyDataMapper* mitk::MeshVtkMapper3D::m_ContourMapper [protected] |
Definition at line 82 of file mitkMeshVtkMapper3D.h.
Referenced by MeshVtkMapper3D().
vtkPropAssembly* mitk::MeshVtkMapper3D::m_PropAssembly [protected] |
Definition at line 78 of file mitkMeshVtkMapper3D.h.
Referenced by MeshVtkMapper3D().
vtkAppendPolyData* mitk::MeshVtkMapper3D::m_Spheres [protected] |
Definition at line 87 of file mitkMeshVtkMapper3D.h.
Referenced by MeshVtkMapper3D().
vtkActor* mitk::MeshVtkMapper3D::m_SpheresActor [protected] |
Definition at line 80 of file mitkMeshVtkMapper3D.h.
Referenced by MeshVtkMapper3D().
vtkPolyDataMapper* mitk::MeshVtkMapper3D::m_SpheresMapper [protected] |
Definition at line 83 of file mitkMeshVtkMapper3D.h.
Referenced by MeshVtkMapper3D().
vtkPolyDataMapper* mitk::MeshVtkMapper3D::m_TextVtkPolyDataMapper [protected] |
Definition at line 85 of file mitkMeshVtkMapper3D.h.
1.7.2