Vtk-based mapper for UnstructuredGrid. More...
#include <mitkUnstructuredGridVtkMapper3D.h>


Public Types | |
| typedef UnstructuredGridVtkMapper3D | 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::UnstructuredGrid * | GetInput () |
| virtual vtkProp * | GetVtkProp (mitk::BaseRenderer *renderer) |
| void | ApplyProperties (vtkActor *, mitk::BaseRenderer *renderer) |
| Apply color and opacity read from the PropertyList. | |
Static Public Member Functions | |
| static Pointer | New () |
| static void | SetDefaultProperties (mitk::DataNode *node, mitk::BaseRenderer *renderer=NULL, bool overwrite=false) |
| Set default values of properties used by this mapper to node. | |
Protected Member Functions | |
| UnstructuredGridVtkMapper3D () | |
| virtual | ~UnstructuredGridVtkMapper3D () |
| 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 *) |
| void | SetProperties (mitk::BaseRenderer *renderer) |
Protected Attributes | |
| vtkAssembly * | m_Assembly |
| vtkActor * | m_Actor |
| vtkActor * | m_ActorWireframe |
| vtkVolume * | m_Volume |
| vtkDataSetTriangleFilter * | m_VtkTriangleFilter |
| vtkUnstructuredGridMapper * | m_VtkDataSetMapper |
| vtkUnstructuredGridMapper * | m_VtkDataSetMapper2 |
| vtkUnstructuredGridVolumeRayCastMapper * | m_VtkVolumeRayCastMapper |
Vtk-based mapper for UnstructuredGrid.
Definition at line 48 of file mitkUnstructuredGridVtkMapper3D.h.
| typedef itk::SmartPointer<const Self> mitk::UnstructuredGridVtkMapper3D::ConstPointer |
Reimplemented from mitk::VtkMapper3D.
Definition at line 52 of file mitkUnstructuredGridVtkMapper3D.h.
| typedef itk::SmartPointer<Self> mitk::UnstructuredGridVtkMapper3D::Pointer |
Reimplemented from mitk::VtkMapper3D.
Definition at line 52 of file mitkUnstructuredGridVtkMapper3D.h.
Reimplemented from mitk::VtkMapper3D.
Definition at line 52 of file mitkUnstructuredGridVtkMapper3D.h.
Reimplemented from mitk::VtkMapper3D.
Definition at line 52 of file mitkUnstructuredGridVtkMapper3D.h.
| mitk::UnstructuredGridVtkMapper3D::UnstructuredGridVtkMapper3D | ( | ) | [protected] |
Definition at line 49 of file mitkUnstructuredGridVtkMapper3D.cpp.
References vtkUnstructuredGridMapper::New().
{
m_VtkTriangleFilter = vtkDataSetTriangleFilter::New();
m_Assembly = vtkAssembly::New();
m_Volume = vtkVolume::New();
m_Actor = vtkActor::New();
m_ActorWireframe = vtkActor::New();
m_VtkDataSetMapper = vtkUnstructuredGridMapper::New();
m_VtkDataSetMapper->SetResolveCoincidentTopologyToPolygonOffset();
m_VtkDataSetMapper->SetResolveCoincidentTopologyPolygonOffsetParameters(0,1);
m_Actor->SetMapper(m_VtkDataSetMapper);
m_VtkDataSetMapper2 = vtkUnstructuredGridMapper::New();
m_VtkDataSetMapper2->SetResolveCoincidentTopologyToPolygonOffset();
m_VtkDataSetMapper2->SetResolveCoincidentTopologyPolygonOffsetParameters(1,1);
m_ActorWireframe->SetMapper(m_VtkDataSetMapper2);
m_ActorWireframe->GetProperty()->SetRepresentationToWireframe();
m_Assembly->AddPart(m_Actor);
m_Assembly->AddPart(m_ActorWireframe);
m_Assembly->AddPart(m_Volume);
m_VtkVolumeRayCastMapper = 0;
#if (VTK_MAJOR_VERSION >= 5)
m_VtkPTMapper = 0;
m_VtkVolumeZSweepMapper = 0;
#endif
//m_GenerateNormals = false;
}
| mitk::UnstructuredGridVtkMapper3D::~UnstructuredGridVtkMapper3D | ( | ) | [protected, virtual] |
Definition at line 85 of file mitkUnstructuredGridVtkMapper3D.cpp.
{
if (m_VtkTriangleFilter != 0)
m_VtkTriangleFilter->Delete();
if (m_VtkVolumeRayCastMapper != 0)
m_VtkVolumeRayCastMapper->Delete();
#if (VTK_MAJOR_VERSION >= 5)
if (m_VtkVolumeZSweepMapper != 0)
m_VtkVolumeZSweepMapper->Delete();
if (m_VtkPTMapper != 0)
m_VtkPTMapper->Delete();
#endif
if (m_VtkDataSetMapper != 0)
m_VtkDataSetMapper->Delete();
if (m_VtkDataSetMapper2 != 0)
m_VtkDataSetMapper2->Delete();
if (m_Assembly != 0)
m_Assembly->Delete();
if (m_Actor != 0)
m_Actor->Delete();
if (m_ActorWireframe != 0)
m_ActorWireframe->Delete();
if (m_Volume != 0)
m_Volume->Delete();
}
| void mitk::UnstructuredGridVtkMapper3D::ApplyProperties | ( | vtkActor * | actor, |
| mitk::BaseRenderer * | renderer | ||
| ) | [virtual] |
Apply color and opacity read from the PropertyList.
Reimplemented from mitk::VtkMapper3D.
Definition at line 194 of file mitkUnstructuredGridVtkMapper3D.cpp.
References mitk::SurfaceVtkMapper3D::ApplyMitkPropertiesToVtkProperty(), mitk::GridRepresentationProperty::POINTS, mitk::GridVolumeMapperProperty::RAYCAST, mitk::GridRepresentationProperty::SURFACE, mitk::GridRepresentationProperty::VOLUME, and mitk::GridRepresentationProperty::WIREFRAME.
{
mitk::DataNode::Pointer node = this->GetDataNode();
Superclass::ApplyProperties(m_Actor, renderer);
Superclass::ApplyProperties(m_ActorWireframe, renderer);
vtkVolumeProperty* volProp = m_Volume->GetProperty();
vtkProperty* property = m_Actor->GetProperty();
mitk::SurfaceVtkMapper3D::ApplyMitkPropertiesToVtkProperty(node,property,renderer);
mitk::SurfaceVtkMapper3D::ApplyMitkPropertiesToVtkProperty(node,m_ActorWireframe->GetProperty(),renderer);
mitk::TransferFunctionProperty::Pointer transferFuncProp;
if (node->GetProperty(transferFuncProp, "TransferFunction", renderer))
{
mitk::TransferFunction::Pointer transferFunction = transferFuncProp->GetValue();
volProp->SetColor(transferFunction->GetColorTransferFunction());
volProp->SetScalarOpacity(transferFunction->GetScalarOpacityFunction());
m_VtkDataSetMapper->SetLookupTable(transferFunction->GetColorTransferFunction());
m_VtkDataSetMapper2->SetLookupTable(transferFunction->GetColorTransferFunction());
}
mitk::GridRepresentationProperty::Pointer gridRepProp;
if (node->GetProperty(gridRepProp, "grid representation", renderer))
{
mitk::GridRepresentationProperty::IdType type = gridRepProp->GetValueAsId();
bool isVolume = false;
switch (type) {
case mitk::GridRepresentationProperty::POINTS:
property->SetRepresentationToPoints();
break;
case mitk::GridRepresentationProperty::WIREFRAME:
property->SetRepresentationToWireframe();
break;
case mitk::GridRepresentationProperty::SURFACE:
property->SetRepresentationToSurface();
break;
case mitk::GridRepresentationProperty::VOLUME:
m_Assembly->RemovePart(m_Actor);
m_Assembly->RemovePart(m_ActorWireframe);
m_Assembly->AddPart(m_Volume);
isVolume = true;
break;
}
if (!isVolume) {
m_Assembly->RemovePart(m_Volume);
m_Assembly->AddPart(m_Actor);
if (type == mitk::GridRepresentationProperty::SURFACE)
m_Assembly->AddPart(m_ActorWireframe);
else
m_Assembly->RemovePart(m_ActorWireframe);
}
}
mitk::GridVolumeMapperProperty::Pointer mapperProp;
if (node->GetProperty(mapperProp, "grid volume mapper", renderer))
{
mitk::GridVolumeMapperProperty::IdType type = mapperProp->GetValueAsId();
switch (type) {
case mitk::GridVolumeMapperProperty::RAYCAST:
if (m_VtkVolumeRayCastMapper == 0) {
m_VtkVolumeRayCastMapper = vtkUnstructuredGridVolumeRayCastMapper::New();
m_VtkVolumeRayCastMapper->SetInput(m_VtkTriangleFilter->GetOutput());
}
m_Volume->SetMapper(m_VtkVolumeRayCastMapper);
break;
#if (VTK_MAJOR_VERSION >= 5)
case mitk::GridVolumeMapperProperty::PT:
if (m_VtkPTMapper == 0) {
m_VtkPTMapper = vtkProjectedTetrahedraMapper::New();
m_VtkPTMapper->SetInputConnection(m_VtkTriangleFilter->GetOutputPort());
}
m_Volume->SetMapper(m_VtkPTMapper);
break;
case mitk::GridVolumeMapperProperty::ZSWEEP:
if (m_VtkVolumeZSweepMapper == 0) {
m_VtkVolumeZSweepMapper = vtkUnstructuredGridVolumeZSweepMapper::New();
m_VtkVolumeZSweepMapper->SetInputConnection(m_VtkTriangleFilter->GetOutputPort());
}
m_Volume->SetMapper(m_VtkVolumeZSweepMapper);
break;
#endif
}
}
// mitk::LevelWindow levelWindow;
// if(node->GetLevelWindow(levelWindow, renderer, "levelWindow"))
// {
// m_VtkVolumeRayCastMapper->SetScalarRange(levelWindow.GetMin(),levelWindow.GetMax());
// }
// else
// if(node->GetLevelWindow(levelWindow, renderer))
// {
// m_VtkVolumeRayCastMapper->SetScalarRange(levelWindow.GetMin(),levelWindow.GetMax());
// }
//
// mitk::VtkRepresentationProperty* representationProperty;
// node->GetProperty(representationProperty, "material.representation", renderer);
// if ( representationProperty != NULL )
// m_Volume->GetProperty()->SetRepresentation( representationProperty->GetVtkRepresentation() );
//
// mitk::VtkInterpolationProperty* interpolationProperty;
// node->GetProperty(interpolationProperty, "material.interpolation", renderer);
// if ( interpolationProperty != NULL )
// m_Volume->GetProperty()->SetInterpolation( interpolationProperty->GetVtkInterpolation() );
//
// bool scalarVisibility = false;
// node->GetBoolProperty("scalar visibility", scalarVisibility);
// m_VtkVolumeRayCastMapper->SetScalarVisibility( (scalarVisibility ? 1 : 0) );
//
// if(scalarVisibility)
// {
// mitk::VtkScalarModeProperty* scalarMode;
// if(node->GetProperty(scalarMode, "scalar mode", renderer))
// {
// m_VtkVolumeRayCastMapper->SetScalarMode(scalarMode->GetVtkScalarMode());
// }
// else
// m_VtkVolumeRayCastMapper->SetScalarModeToDefault();
//
// bool colorMode = false;
// node->GetBoolProperty("color mode", colorMode);
// m_VtkVolumeRayCastMapper->SetColorMode( (colorMode ? 1 : 0) );
//
// float scalarsMin = 0;
// if (dynamic_cast<mitk::FloatProperty *>(node->GetProperty("ScalarsRangeMinimum").GetPointer()) != NULL)
// scalarsMin = dynamic_cast<mitk::FloatProperty*>(node->GetProperty("ScalarsRangeMinimum").GetPointer())->GetValue();
//
// float scalarsMax = 1.0;
// if (dynamic_cast<mitk::FloatProperty *>(node->GetProperty("ScalarsRangeMaximum").GetPointer()) != NULL)
// scalarsMax = dynamic_cast<mitk::FloatProperty*>(node->GetProperty("ScalarsRangeMaximum").GetPointer())->GetValue();
//
// m_VtkVolumeRayCastMapper->SetScalarRange(scalarsMin,scalarsMax);
// }
}
| void mitk::UnstructuredGridVtkMapper3D::GenerateData | ( | mitk::BaseRenderer * | renderer ) | [protected, virtual] |
Generate the data needed for rendering into renderer.
Reimplemented from mitk::Mapper.
Definition at line 136 of file mitkUnstructuredGridVtkMapper3D.cpp.
References mitk::BaseRenderer::GetDataStorage(), and mitk::UnstructuredGrid::GetVtkUnstructuredGrid().
{
if(!IsVisible(renderer))
{
m_Assembly->VisibilityOff();
return;
}
//
// get the TimeSlicedGeometry of the input object
//
mitk::UnstructuredGrid::Pointer input = const_cast< mitk::UnstructuredGrid* >( this->GetInput() );
//
// set the input-object at time t for the mapper
//
vtkUnstructuredGrid * grid = input->GetVtkUnstructuredGrid( this->GetTimestep() );
if(grid == 0)
{
m_Assembly->VisibilityOff();
return;
}
m_Assembly->VisibilityOn();
m_VtkTriangleFilter->SetInput(grid);
m_VtkDataSetMapper->SetInput(grid);
m_VtkDataSetMapper2->SetInput(grid);
mitk::DataNode::ConstPointer node = this->GetDataNode();
bool clip = false;
node->GetBoolProperty("enable clipping", clip);
mitk::DataNode::Pointer bbNode = renderer->GetDataStorage()->GetNamedDerivedNode("Clipping Bounding Object", node);
if (clip && bbNode.IsNotNull())
{
m_VtkDataSetMapper->SetBoundingObject(dynamic_cast<mitk::BoundingObject*>(bbNode->GetData()));
m_VtkDataSetMapper2->SetBoundingObject(dynamic_cast<mitk::BoundingObject*>(bbNode->GetData()));
}
else
{
m_VtkDataSetMapper->SetBoundingObject(0);
m_VtkDataSetMapper2->SetBoundingObject(0);
}
//
// apply properties read from the PropertyList
//
ApplyProperties(0, renderer);
}
| void mitk::UnstructuredGridVtkMapper3D::GenerateData | ( | ) | [protected, virtual] |
Generate the data needed for rendering (independent of a specific renderer)
Reimplemented from mitk::Mapper.
Definition at line 127 of file mitkUnstructuredGridVtkMapper3D.cpp.
{
m_Assembly->VisibilityOn();
m_ActorWireframe->GetProperty()->SetAmbient(1.0);
m_ActorWireframe->GetProperty()->SetDiffuse(0.0);
m_ActorWireframe->GetProperty()->SetSpecular(0.0);
}
| virtual const char* mitk::UnstructuredGridVtkMapper3D::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::VtkMapper3D.
| const mitk::UnstructuredGrid * mitk::UnstructuredGridVtkMapper3D::GetInput | ( | void | ) | [virtual] |
Definition at line 43 of file mitkUnstructuredGridVtkMapper3D.cpp.
References mitk::Mapper::GetData().
{
return static_cast<const mitk::UnstructuredGrid * > ( GetData() );
}
| vtkProp * mitk::UnstructuredGridVtkMapper3D::GetVtkProp | ( | mitk::BaseRenderer * | renderer ) | [virtual] |
Implements mitk::VtkMapper3D.
Definition at line 122 of file mitkUnstructuredGridVtkMapper3D.cpp.
{
return m_Assembly;
}
| static Pointer mitk::UnstructuredGridVtkMapper3D::New | ( | ) | [static] |
| void mitk::UnstructuredGridVtkMapper3D::ResetMapper | ( | BaseRenderer * | ) | [protected, virtual] |
Reimplemented from mitk::Mapper.
Definition at line 188 of file mitkUnstructuredGridVtkMapper3D.cpp.
{
m_Assembly->VisibilityOff();
}
| void mitk::UnstructuredGridVtkMapper3D::SetDefaultProperties | ( | mitk::DataNode * | node, |
| mitk::BaseRenderer * | renderer = NULL, |
||
| bool | overwrite = false |
||
| ) | [static] |
Set default values of properties used by this mapper to node.
| node | The node for which the properties are set |
| overwrite | overwrite existing properties (default: false) |
| renderer | defines which property list of node is used (default: NULL, i.e. default property list) |
Reimplemented from mitk::Mapper.
Definition at line 337 of file mitkUnstructuredGridVtkMapper3D.cpp.
References mitk::DataNode::AddProperty(), mitk::IntProperty::New(), mitk::ColorProperty::New(), mitk::BoolProperty::New(), mitk::VtkScalarModeProperty::New(), mitk::GridVolumeMapperProperty::New(), mitk::GridRepresentationProperty::New(), and mitk::SurfaceVtkMapper3D::SetDefaultPropertiesForVtkProperty().
Referenced by mitk::CoreExtObjectFactory::SetDefaultProperties().
{
SurfaceVtkMapper3D::SetDefaultPropertiesForVtkProperty(node, renderer, overwrite);
//node->AddProperty("TransferFunction", TransferFunctionProperty::New(), renderer, overwrite);
node->AddProperty("grid representation", GridRepresentationProperty::New(), renderer, overwrite);
node->AddProperty("grid volume mapper", GridVolumeMapperProperty::New(), renderer, overwrite);
node->AddProperty("scalar mode", VtkScalarModeProperty::New(0), renderer, overwrite);
node->AddProperty("scalar visibility", BoolProperty::New(true), renderer, overwrite);
node->AddProperty("outline polygons", BoolProperty::New(false), renderer, overwrite);
node->AddProperty("color", ColorProperty::New(1.0f, 1.0f, 1.0f), renderer, overwrite);
node->AddProperty("line width", IntProperty::New(1), renderer, overwrite);
Superclass::SetDefaultProperties(node, renderer, overwrite);
}
| void mitk::UnstructuredGridVtkMapper3D::SetProperties | ( | mitk::BaseRenderer * | renderer ) | [protected] |
vtkActor* mitk::UnstructuredGridVtkMapper3D::m_Actor [protected] |
Definition at line 77 of file mitkUnstructuredGridVtkMapper3D.h.
vtkActor* mitk::UnstructuredGridVtkMapper3D::m_ActorWireframe [protected] |
Definition at line 78 of file mitkUnstructuredGridVtkMapper3D.h.
vtkAssembly* mitk::UnstructuredGridVtkMapper3D::m_Assembly [protected] |
Definition at line 76 of file mitkUnstructuredGridVtkMapper3D.h.
vtkVolume* mitk::UnstructuredGridVtkMapper3D::m_Volume [protected] |
Definition at line 79 of file mitkUnstructuredGridVtkMapper3D.h.
Definition at line 83 of file mitkUnstructuredGridVtkMapper3D.h.
Definition at line 84 of file mitkUnstructuredGridVtkMapper3D.h.
vtkDataSetTriangleFilter* mitk::UnstructuredGridVtkMapper3D::m_VtkTriangleFilter [protected] |
Definition at line 81 of file mitkUnstructuredGridVtkMapper3D.h.
vtkUnstructuredGridVolumeRayCastMapper* mitk::UnstructuredGridVtkMapper3D::m_VtkVolumeRayCastMapper [protected] |
Definition at line 86 of file mitkUnstructuredGridVtkMapper3D.h.
1.7.2