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.