Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::MeshVtkMapper3D Class Reference
[Mapper Classes]

Vtk-based mapper for PointList. More...

#include <mitkMeshVtkMapper3D.h>

Inheritance diagram for mitk::MeshVtkMapper3D:
Inheritance graph
[legend]
Collaboration diagram for mitk::MeshVtkMapper3D:
Collaboration graph
[legend]

List of all members.

Public Types

typedef MeshVtkMapper3D Self
typedef VtkMapper3D Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
virtual const mitk::MeshGetInput ()
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

Detailed Description

Vtk-based mapper for PointList.

Definition at line 54 of file mitkMeshVtkMapper3D.h.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

mitk::MeshVtkMapper3D::MeshVtkMapper3D (  ) [protected]
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();
}

Member Function Documentation

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);
}

Member Data Documentation

vtkPolyData* mitk::MeshVtkMapper3D::m_Contour [protected]

Definition at line 88 of file mitkMeshVtkMapper3D.h.

Referenced by MeshVtkMapper3D().

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().

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.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines