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.