Index: Modules/MitkExt/Algorithms/mitkCoreExtObjectFactory.cpp =================================================================== --- Modules/MitkExt/Algorithms/mitkCoreExtObjectFactory.cpp (Revision 21303) +++ Modules/MitkExt/Algorithms/mitkCoreExtObjectFactory.cpp (Arbeitskopie) @@ -207,7 +207,10 @@ mitk::GPUVolumeMapper3D::SetDefaultProperties(node); } - + if (dynamic_cast(node->GetData())) + { + mitk::UnstructuredGridVtkMapper3D::SetDefaultProperties(node); + } } Index: Modules/MitkExt/Rendering/mitkUnstructuredGridMapper2D.cpp =================================================================== --- Modules/MitkExt/Rendering/mitkUnstructuredGridMapper2D.cpp (Revision 21303) +++ Modules/MitkExt/Rendering/mitkUnstructuredGridMapper2D.cpp (Arbeitskopie) @@ -54,6 +54,7 @@ #include #include #include +#include #include @@ -234,7 +235,7 @@ vlines->GetNextCell( cellSize, cell ); float rgba[4] = {1.0f, 1.0f, 1.0f, 0}; - if (m_ScalarVisibility->GetValue()) + if (m_ScalarVisibility->GetValue() && vcellscalars) { if ( m_ScalarMode->GetVtkScalarMode() == VTK_SCALAR_MODE_DEFAULT || m_ScalarMode->GetVtkScalarMode() == VTK_SCALAR_MODE_USE_CELL_DATA ) @@ -298,7 +299,7 @@ vpolys->GetNextCell( cellSize, cell ); float rgba[4] = {1.0f, 1.0f, 1.0f, 0}; - if (m_ScalarVisibility->GetValue()) + if (m_ScalarVisibility->GetValue() && vcellscalars) { if ( m_ScalarMode->GetVtkScalarMode() == VTK_SCALAR_MODE_DEFAULT || m_ScalarMode->GetVtkScalarMode() == VTK_SCALAR_MODE_USE_CELL_DATA ) @@ -397,13 +398,8 @@ vtkAbstractMapper3D* mitk::UnstructuredGridMapper2D -::GetVtkAbstractMapper3D(mitk::BaseRenderer * /*renderer*/) +::GetVtkAbstractMapper3D(mitk::BaseRenderer * renderer) { - - return NULL; - - /* - //MITK_INFO << "GETVTKABSTRACTMAPPER3D\n"; mitk::DataTreeNode::ConstPointer node = this->GetDataTreeNode(); if ( node.IsNull() ) @@ -417,20 +413,43 @@ mitkMapper->Update(renderer); - vtkActor* actor = dynamic_cast( mitkMapper->GetVtkProp() ); - if (actor) + vtkAssembly* assembly = dynamic_cast(mitkMapper->GetVtkProp(renderer)); + if (assembly) { - return dynamic_cast( actor->GetMapper() ); + vtkProp3DCollection* collection = assembly->GetParts(); + collection->InitTraversal(); + vtkProp3D* prop3d = 0; + do + { + prop3d = collection->GetNextProp3D(); + vtkActor* actor = dynamic_cast( prop3d ); + if (actor) + { + return dynamic_cast( actor->GetMapper() ); + } + + vtkVolume* volume = dynamic_cast( prop3d ); + if (volume) + { + return dynamic_cast( volume->GetMapper() ); + } + } while (prop3d != collection->GetLastProp3D()); } - - vtkVolume* volume = dynamic_cast( mitkMapper->GetVtkProp() ); - if (volume) + else { - return dynamic_cast( volume->GetMapper() ); + vtkActor* actor = dynamic_cast( mitkMapper->GetVtkProp(renderer) ); + if (actor) + { + return dynamic_cast( actor->GetMapper() ); + } + + vtkVolume* volume = dynamic_cast( mitkMapper->GetVtkProp(renderer) ); + if (volume) + { + return dynamic_cast( volume->GetMapper() ); + } } - return 0; - */ } Index: Modules/MitkExt/Rendering/mitkUnstructuredGridVtkMapper3D.cpp =================================================================== --- Modules/MitkExt/Rendering/mitkUnstructuredGridVtkMapper3D.cpp (Revision 21303) +++ Modules/MitkExt/Rendering/mitkUnstructuredGridVtkMapper3D.cpp (Arbeitskopie) @@ -191,19 +191,21 @@ // // apply properties read from the PropertyList // - SetProperties(renderer); + ApplyProperties(0, renderer); } -void mitk::UnstructuredGridVtkMapper3D::SetProperties(mitk::BaseRenderer* renderer) +void mitk::UnstructuredGridVtkMapper3D::ApplyProperties(vtkActor* actor, mitk::BaseRenderer* renderer) { - mitk::DataTreeNode::Pointer node = this->GetDataTreeNode(); + Superclass::ApplyProperties(m_Actor, renderer); + Superclass::ApplyProperties(m_ActorWireframe, renderer); + vtkVolumeProperty* volProp = m_Volume->GetProperty(); vtkProperty* property = m_Actor->GetProperty(); + mitk::DataTreeNode* node = this->GetDataTreeNode(); - mitk::MaterialProperty* materialProperty; - this->GetDataTreeNode()->GetProperty(materialProperty, "material"); - if ( materialProperty != 0 ) + mitk::MaterialProperty::Pointer materialProperty; + if (node->GetProperty(materialProperty, "material")) { if ( materialProperty->GetRenderer() == 0 || materialProperty->GetRenderer() == renderer ) { @@ -352,6 +354,15 @@ // // m_VtkVolumeRayCastMapper->SetScalarRange(scalarsMin,scalarsMax); // } +} +void mitk::UnstructuredGridVtkMapper3D::SetDefaultProperties(mitk::DataTreeNode* node, mitk::BaseRenderer* renderer, bool overwrite) +{ + node->AddProperty("material", MaterialProperty::New(), 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); + + Superclass::SetDefaultProperties(node, renderer, overwrite); } Index: Modules/MitkExt/Rendering/mitkUnstructuredGridVtkMapper3D.h =================================================================== --- Modules/MitkExt/Rendering/mitkUnstructuredGridVtkMapper3D.h (Revision 21303) +++ Modules/MitkExt/Rendering/mitkUnstructuredGridVtkMapper3D.h (Arbeitskopie) @@ -56,7 +56,10 @@ virtual const mitk::UnstructuredGrid* GetInput(); virtual vtkProp* GetVtkProp(mitk::BaseRenderer* renderer); + + static void SetDefaultProperties(mitk::DataTreeNode* node, mitk::BaseRenderer* renderer = NULL, bool overwrite = false); + void ApplyProperties(vtkActor* actor, mitk::BaseRenderer* renderer); protected: