Vtk-based mapper for PointSet. More...
#include <mitkPointSetVtkMapper3D.h>
Public Types | |
typedef PointSetVtkMapper3D | 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::PointSet * | 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. | |
void | ReleaseGraphicsResources (vtkWindow *renWin) |
Release vtk-based graphics resources. Must be overwritten in subclasses if vtkProps additional to m_Prop3D are used. | |
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 | |
PointSetVtkMapper3D () | |
virtual | ~PointSetVtkMapper3D () |
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) |
virtual void | ApplyProperties (mitk::BaseRenderer *renderer) |
virtual void | CreateContour (mitk::BaseRenderer *renderer) |
virtual void | CreateVTKRenderObjects () |
Protected Attributes | |
vtkAppendPolyData * | m_vtkSelectedPointList |
vtkAppendPolyData * | m_vtkUnselectedPointList |
vtkPolyDataMapper * | m_VtkSelectedPolyDataMapper |
vtkPolyDataMapper * | m_VtkUnselectedPolyDataMapper |
vtkActor * | m_SelectedActor |
vtkActor * | m_UnselectedActor |
vtkActor * | m_ContourActor |
vtkPropAssembly * | m_PointsAssembly |
vtkAppendPolyData * | m_vtkTextList |
unsigned int | m_NumberOfSelectedAdded |
unsigned int | m_NumberOfUnselectedAdded |
ScalarType | m_PointSize |
ScalarType | m_ContourRadius |
Vtk-based mapper for PointSet.
Due to the need of different colors for selected and unselected points and the facts, that we also have a contour and labels for the points, the vtk structure is build up the following way:
We have two AppendPolyData, one selected, and one unselected and one for a contour between the points. Each one is connected to an own PolyDaraMapper and an Actor. The different color for the unselected and selected state and for the contour is read from properties.
"unselectedcolor", "selectedcolor" and "contourcolor" are the strings, that are looked for. Pointlabels are added besides the selected or the deselected points.
Then the three Actors are combined inside a vtkPropAssembly and this object is returned in GetProp() and so hooked up into the rendering pipeline.
Properties that can be set for point sets and influence the PointSetVTKMapper3D are:
The default properties are:
Other properties looked for are:
Definition at line 93 of file mitkPointSetVtkMapper3D.h.
typedef itk::SmartPointer<const Self> mitk::PointSetVtkMapper3D::ConstPointer |
Reimplemented from mitk::VtkMapper3D.
Reimplemented in mitk::LineVtkMapper3D, and mitk::SplineVtkMapper3D.
Definition at line 96 of file mitkPointSetVtkMapper3D.h.
typedef itk::SmartPointer<Self> mitk::PointSetVtkMapper3D::Pointer |
Reimplemented from mitk::VtkMapper3D.
Reimplemented in mitk::LineVtkMapper3D, and mitk::SplineVtkMapper3D.
Definition at line 96 of file mitkPointSetVtkMapper3D.h.
Reimplemented from mitk::VtkMapper3D.
Reimplemented in mitk::LineVtkMapper3D, and mitk::SplineVtkMapper3D.
Definition at line 96 of file mitkPointSetVtkMapper3D.h.
Reimplemented from mitk::VtkMapper3D.
Reimplemented in mitk::LineVtkMapper3D, and mitk::SplineVtkMapper3D.
Definition at line 96 of file mitkPointSetVtkMapper3D.h.
mitk::PointSetVtkMapper3D::PointSetVtkMapper3D | ( | ) | [protected] |
Definition at line 57 of file mitkPointSetVtkMapper3D.cpp.
References m_ContourActor, m_PointsAssembly, m_SelectedActor, m_UnselectedActor, and New().
: m_vtkSelectedPointList(NULL), m_vtkUnselectedPointList(NULL), //m_vtkContourPolyData(NULL), m_VtkSelectedPolyDataMapper(NULL), m_VtkUnselectedPolyDataMapper(NULL), //m_vtkContourPolyDataMapper(NULL), m_vtkTextList(NULL), //m_Contour(NULL), //m_TubeFilter(NULL), m_NumberOfSelectedAdded(0), m_NumberOfUnselectedAdded(0), m_PointSize(1.0), m_ContourRadius(0.5) { //propassembly m_PointsAssembly = vtkPropAssembly::New(); //creating actors to be able to set transform m_SelectedActor = vtkActor::New(); m_UnselectedActor = vtkActor::New(); m_ContourActor = vtkActor::New(); }
mitk::PointSetVtkMapper3D::~PointSetVtkMapper3D | ( | ) | [protected, virtual] |
Definition at line 81 of file mitkPointSetVtkMapper3D.cpp.
{ m_PointsAssembly->Delete(); m_SelectedActor->Delete(); m_UnselectedActor->Delete(); m_ContourActor->Delete(); }
void mitk::PointSetVtkMapper3D::ApplyProperties | ( | mitk::BaseRenderer * | renderer ) | [protected, virtual] |
!define a new ColorProp to be able to pass alpha value
!define a new ColorProp to be able to pass alpha value
Definition at line 471 of file mitkPointSetVtkMapper3D.cpp.
References mitk::ColorProperty::GetColor(), mitk::GenericProperty< T >::GetValue(), and selectedColor.
{ //check for color props and use it for rendering of selected/unselected points and contour //due to different params in VTK (double/float) we have to convert! //vars to convert to vtkFloatingPointType unselectedColor[4]={1.0f,1.0f,0.0f,1.0f};//yellow vtkFloatingPointType selectedColor[4]={1.0f,0.0f,0.0f,1.0f};//red vtkFloatingPointType contourColor[4]={1.0f,0.0f,0.0f,1.0f};//red //different types for color!!! mitk::Color tmpColor; double opacity = 1.0; //check if there is an unselected property if (dynamic_cast<mitk::ColorProperty*>(this->GetDataNode()->GetPropertyList(renderer)->GetProperty("unselectedcolor")) != NULL) { tmpColor = dynamic_cast<mitk::ColorProperty *>(this->GetDataNode()->GetPropertyList(renderer)->GetProperty("unselectedcolor"))->GetValue(); unselectedColor[0] = tmpColor[0]; unselectedColor[1] = tmpColor[1]; unselectedColor[2] = tmpColor[2]; unselectedColor[3] = 1.0f; } else if (dynamic_cast<mitk::ColorProperty*>(this->GetDataNode()->GetPropertyList(NULL)->GetProperty("unselectedcolor")) != NULL) { tmpColor = dynamic_cast<mitk::ColorProperty *>(this->GetDataNode()->GetPropertyList(NULL)->GetProperty("unselectedcolor"))->GetValue(); unselectedColor[0] = tmpColor[0]; unselectedColor[1] = tmpColor[1]; unselectedColor[2] = tmpColor[2]; unselectedColor[3] = 1.0f; } else { //check if the node has a color float unselectedColorTMP[4]={1.0f,1.0f,0.0f,1.0f};//yellow m_DataNode->GetColor(unselectedColorTMP, NULL); unselectedColor[0] = unselectedColorTMP[0]; unselectedColor[1] = unselectedColorTMP[1]; unselectedColor[2] = unselectedColorTMP[2]; //unselectedColor[3] stays 1.0f } //get selected property if (dynamic_cast<mitk::ColorProperty*>(this->GetDataNode()->GetPropertyList(renderer)->GetProperty("selectedcolor")) != NULL) { tmpColor = dynamic_cast<mitk::ColorProperty *>(this->GetDataNode()->GetPropertyList(renderer)->GetProperty("selectedcolor"))->GetValue(); selectedColor[0] = tmpColor[0]; selectedColor[1] = tmpColor[1]; selectedColor[2] = tmpColor[2]; selectedColor[3] = 1.0f; } else if (dynamic_cast<mitk::ColorProperty*>(this->GetDataNode()->GetPropertyList(NULL)->GetProperty("selectedcolor")) != NULL) { tmpColor = dynamic_cast<mitk::ColorProperty *>(this->GetDataNode()->GetPropertyList(NULL)->GetProperty("selectedcolor"))->GetValue(); selectedColor[0] = tmpColor[0]; selectedColor[1] = tmpColor[1]; selectedColor[2] = tmpColor[2]; selectedColor[3] = 1.0f; } //get contour property if (dynamic_cast<mitk::ColorProperty*>(this->GetDataNode()->GetPropertyList(renderer)->GetProperty("contourcolor")) != NULL) { tmpColor = dynamic_cast<mitk::ColorProperty *>(this->GetDataNode()->GetPropertyList(renderer)->GetProperty("contourcolor"))->GetValue(); contourColor[0] = tmpColor[0]; contourColor[1] = tmpColor[1]; contourColor[2] = tmpColor[2]; contourColor[3] = 1.0f; } else if (dynamic_cast<mitk::ColorProperty*>(this->GetDataNode()->GetPropertyList(NULL)->GetProperty("contourcolor")) != NULL) { tmpColor = dynamic_cast<mitk::ColorProperty *>(this->GetDataNode()->GetPropertyList(NULL)->GetProperty("contourcolor"))->GetValue(); contourColor[0] = tmpColor[0]; contourColor[1] = tmpColor[1]; contourColor[2] = tmpColor[2]; contourColor[3] = 1.0f; } if(dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetPropertyList(renderer)->GetProperty("opacity")) != NULL) { mitk::FloatProperty::Pointer pointOpacity =dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetPropertyList(renderer)->GetProperty("opacity")); opacity = pointOpacity->GetValue(); } else if(dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetPropertyList(NULL)->GetProperty("opacity")) != NULL) { mitk::FloatProperty::Pointer pointOpacity =dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetPropertyList(NULL)->GetProperty("opacity")); opacity = pointOpacity->GetValue(); } //finished color / opacity fishing! //check if a contour shall be drawn bool makeContour = false; this->GetDataNode()->GetBoolProperty("show contour", makeContour, renderer); int visibleBefore = m_ContourActor->GetVisibility(); if(makeContour && (m_ContourActor != NULL) ) { if ( visibleBefore == 0)//was not visible before, so create it. this->CreateContour(renderer); m_ContourActor->GetProperty()->SetColor(contourColor); m_ContourActor->GetProperty()->SetOpacity(opacity); } m_SelectedActor->GetProperty()->SetColor(selectedColor); m_SelectedActor->GetProperty()->SetOpacity(opacity); m_UnselectedActor->GetProperty()->SetColor(unselectedColor); m_UnselectedActor->GetProperty()->SetOpacity(opacity); }
void mitk::PointSetVtkMapper3D::CreateContour | ( | mitk::BaseRenderer * | renderer ) | [protected, virtual] |
Definition at line 581 of file mitkPointSetVtkMapper3D.cpp.
References mitk::GenericProperty< T >::GetValue().
{ vtkAppendPolyData* vtkContourPolyData = vtkAppendPolyData::New(); vtkPolyDataMapper* vtkContourPolyDataMapper = vtkPolyDataMapper::New(); vtkPoints *points = vtkPoints::New(); vtkCellArray *polys = vtkCellArray::New(); mitk::PointSet::PointsContainer::Iterator pointsIter; mitk::PointSet::PointDataContainer::Iterator pointDataIter; int j; // get and update the PointSet mitk::PointSet::Pointer input = const_cast<mitk::PointSet*>(this->GetInput()); //input->Update(); int timestep = this->GetTimestep(); mitk::PointSet::DataType::Pointer itkPointSet = input->GetPointSet( timestep ); if ( itkPointSet.GetPointer() == NULL) { return; } for (j=0, pointsIter=itkPointSet->GetPoints()->Begin(); pointsIter!=itkPointSet->GetPoints()->End() ; pointsIter++,j++) { vtkIdType cell[2] = {j-1,j}; itk::Point<float> point1 = pointsIter->Value(); points->InsertPoint(j,point1[0],point1[1],point1[2]); if (j>0) polys->InsertNextCell(2,cell); } bool close; if (dynamic_cast<mitk::BoolProperty *>(this->GetDataNode()->GetPropertyList()->GetProperty("close contour"), renderer) == NULL) close = false; else close = dynamic_cast<mitk::BoolProperty *>(this->GetDataNode()->GetPropertyList()->GetProperty("close contour"), renderer)->GetValue(); if (close) { vtkIdType cell[2] = {j-1,0}; polys->InsertNextCell(2,cell); } vtkPolyData* contour = vtkPolyData::New(); contour->SetPoints(points); points->Delete(); contour->SetLines(polys); polys->Delete(); contour->Update(); vtkTubeFilter* tubeFilter = vtkTubeFilter::New(); tubeFilter->SetNumberOfSides( 12 ); tubeFilter->SetInput(contour); contour->Delete(); //check for property contoursize. m_ContourRadius = 0.5; mitk::FloatProperty::Pointer contourSizeProp = dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetProperty("contoursize") ); if (contourSizeProp.IsNotNull()) m_ContourRadius = contourSizeProp->GetValue(); tubeFilter->SetRadius( m_ContourRadius ); tubeFilter->Update(); //add to pipeline vtkContourPolyData->AddInput(tubeFilter->GetOutput()); tubeFilter->Delete(); vtkContourPolyDataMapper->SetInput(vtkContourPolyData->GetOutput()); vtkContourPolyData->Delete(); //create a new instance of the actor m_ContourActor->Delete(); m_ContourActor = vtkActor::New(); m_ContourActor->SetMapper(vtkContourPolyDataMapper); vtkContourPolyDataMapper->Delete(); m_PointsAssembly->AddPart(m_ContourActor); }
void mitk::PointSetVtkMapper3D::CreateVTKRenderObjects | ( | ) | [protected, virtual] |
Definition at line 99 of file mitkPointSetVtkMapper3D.cpp.
References mitk::GenericProperty< T >::GetValue().
{ m_vtkSelectedPointList = vtkAppendPolyData::New(); m_vtkUnselectedPointList = vtkAppendPolyData::New(); m_PointsAssembly->VisibilityOn(); if(m_PointsAssembly->GetParts()->IsItemPresent(m_SelectedActor)) m_PointsAssembly->RemovePart(m_SelectedActor); if(m_PointsAssembly->GetParts()->IsItemPresent(m_UnselectedActor)) m_PointsAssembly->RemovePart(m_UnselectedActor); if(m_PointsAssembly->GetParts()->IsItemPresent(m_ContourActor)) m_PointsAssembly->RemovePart(m_ContourActor); // exceptional displaying for PositionTracker -> MouseOrientationTool int mapperID; bool isInputDevice=false; if( this->GetDataNode()->GetBoolProperty("inputdevice",isInputDevice) && isInputDevice ) { if( this->GetDataNode()->GetIntProperty("BaseRendererMapperID",mapperID) && mapperID == 2) return; //The event for the PositionTracker came from the 3d widget and not needs to be displayed } // get and update the PointSet mitk::PointSet::Pointer input = const_cast<mitk::PointSet*>(this->GetInput()); /* only update the input data, if the property tells us to */ bool update = true; this->GetDataNode()->GetBoolProperty("updateDataOnRender", update); if (update == true) input->Update(); int timestep = this->GetTimestep(); mitk::PointSet::DataType::Pointer itkPointSet = input->GetPointSet( timestep ); if ( itkPointSet.GetPointer() == NULL) { m_PointsAssembly->VisibilityOff(); return; } mitk::PointSet::PointsContainer::Iterator pointsIter; mitk::PointSet::PointDataContainer::Iterator pointDataIter; int j; m_NumberOfSelectedAdded = 0; m_NumberOfUnselectedAdded = 0; //create contour bool makeContour = false; this->GetDataNode()->GetBoolProperty("show contour", makeContour); if (makeContour) { this->CreateContour(NULL); } //now fill selected and unselected pointList //get size of Points in Property m_PointSize = 2; mitk::FloatProperty::Pointer pointSizeProp = dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetProperty("pointsize")); if ( pointSizeProp.IsNotNull() ) m_PointSize = pointSizeProp->GetValue(); //get the property for creating a label onto every point only once bool showLabel = true; this->GetDataNode()->GetBoolProperty("show label", showLabel); const char * pointLabel=NULL; if(showLabel) { if(dynamic_cast<mitk::StringProperty *>(this->GetDataNode()->GetPropertyList()->GetProperty("label")) != NULL) pointLabel =dynamic_cast<mitk::StringProperty *>(this->GetDataNode()->GetPropertyList()->GetProperty("label"))->GetValue(); else showLabel = false; } //check if the list for the PointDataContainer is the same size as the PointsContainer. Is not, then the points were inserted manually and can not be visualized according to the PointData (selected/unselected) bool pointDataBroken = (itkPointSet->GetPointData()->Size() != itkPointSet->GetPoints()->Size()); //now add an object for each point in data pointDataIter = itkPointSet->GetPointData()->Begin(); for (j=0, pointsIter=itkPointSet->GetPoints()->Begin(); pointsIter!=itkPointSet->GetPoints()->End(); pointsIter++, j++) { //check for the pointtype in data and decide which geom-object to take and then add to the selected or unselected list int pointType; if(itkPointSet->GetPointData()->size() == 0 || pointDataBroken) pointType = mitk::PTUNDEFINED; else pointType = pointDataIter.Value().pointSpec; #if (VTK_MAJOR_VERSION >= 5) vtkPolyDataAlgorithm *source; #else vtkPolyDataSource *source; #endif switch (pointType) { case mitk::PTUNDEFINED: { vtkSphereSource *sphere = vtkSphereSource::New(); sphere->SetRadius(m_PointSize); itk::Point<float> point1 = pointsIter->Value(); sphere->SetCenter(point1[0],point1[1],point1[2]); //sphere->SetCenter(pointsIter.Value()[0],pointsIter.Value()[1],pointsIter.Value()[2]); //MouseOrientation Tool (PositionTracker) if(isInputDevice) { sphere->SetThetaResolution(10); sphere->SetPhiResolution(10); } else { sphere->SetThetaResolution(20); sphere->SetPhiResolution(20); } source = sphere; } break; case mitk::PTSTART: { vtkCubeSource *cube = vtkCubeSource::New(); cube->SetXLength(m_PointSize/2); cube->SetYLength(m_PointSize/2); cube->SetZLength(m_PointSize/2); itk::Point<float> point1 = pointsIter->Value(); cube->SetCenter(point1[0],point1[1],point1[2]); source = cube; } break; case mitk::PTCORNER: { vtkConeSource *cone = vtkConeSource::New(); cone->SetRadius(m_PointSize); itk::Point<float> point1 = pointsIter->Value(); cone->SetCenter(point1[0],point1[1],point1[2]); cone->SetResolution(20); source = cone; } break; case mitk::PTEDGE: { vtkCylinderSource *cylinder = vtkCylinderSource::New(); cylinder->SetRadius(m_PointSize); itk::Point<float> point1 = pointsIter->Value(); cylinder->SetCenter(point1[0],point1[1],point1[2]); cylinder->SetResolution(20); source = cylinder; } break; case mitk::PTEND: { vtkSphereSource *sphere = vtkSphereSource::New(); sphere->SetRadius(m_PointSize); itk::Point<float> point1 = pointsIter->Value(); sphere->SetThetaResolution(20); sphere->SetPhiResolution(20); source = sphere; } break; default: { vtkSphereSource *sphere = vtkSphereSource::New(); sphere->SetRadius(m_PointSize); itk::Point<float> point1 = pointsIter->Value(); sphere->SetCenter(point1[0],point1[1],point1[2]); sphere->SetThetaResolution(20); sphere->SetPhiResolution(20); source = sphere; } break; } if (!pointDataBroken) { if (pointDataIter.Value().selected) { m_vtkSelectedPointList->AddInput(source->GetOutput()); ++m_NumberOfSelectedAdded; } else { m_vtkUnselectedPointList->AddInput(source->GetOutput()); ++m_NumberOfUnselectedAdded; } } else { m_vtkUnselectedPointList->AddInput(source->GetOutput()); ++m_NumberOfUnselectedAdded; } source->Delete(); if (showLabel) { char buffer[20]; std::string l = pointLabel; if ( input->GetSize()>1 ) { sprintf(buffer,"%d",j+1); l.append(buffer); } // Define the text for the label vtkVectorText *label = vtkVectorText::New(); label->SetText(l.c_str()); //# Set up a transform to move the label to a new position. vtkTransform *aLabelTransform =vtkTransform::New(); aLabelTransform->Identity(); itk::Point<float> point1 = pointsIter->Value(); aLabelTransform->Translate(point1[0]+2,point1[1]+2,point1[2]); aLabelTransform->Scale(5.7,5.7,5.7); //# Move the label to a new position. vtkTransformPolyDataFilter *labelTransform = vtkTransformPolyDataFilter::New(); labelTransform->SetTransform(aLabelTransform); aLabelTransform->Delete(); labelTransform->SetInput(label->GetOutput()); label->Delete(); //add it to the wright PointList if (pointType) { m_vtkSelectedPointList->AddInput(labelTransform->GetOutput()); ++m_NumberOfSelectedAdded; } else { m_vtkUnselectedPointList->AddInput(labelTransform->GetOutput()); ++m_NumberOfUnselectedAdded; } labelTransform->Delete(); } if(pointDataIter != itkPointSet->GetPointData()->End()) pointDataIter++; } // end FOR //now according to number of elements added to selected or unselected, build up the rendering pipeline if (m_NumberOfSelectedAdded > 0) { m_VtkSelectedPolyDataMapper = vtkPolyDataMapper::New(); m_VtkSelectedPolyDataMapper->SetInput(m_vtkSelectedPointList->GetOutput()); //create a new instance of the actor m_SelectedActor->Delete(); m_SelectedActor = vtkActor::New(); m_SelectedActor->SetMapper(m_VtkSelectedPolyDataMapper); m_VtkSelectedPolyDataMapper->Delete(); m_PointsAssembly->AddPart(m_SelectedActor); } m_vtkSelectedPointList->Delete(); if (m_NumberOfUnselectedAdded > 0) { m_VtkUnselectedPolyDataMapper = vtkPolyDataMapper::New(); m_VtkUnselectedPolyDataMapper->SetInput(m_vtkUnselectedPointList->GetOutput()); //create a new instance of the actor m_UnselectedActor->Delete(); m_UnselectedActor = vtkActor::New(); m_UnselectedActor->SetMapper(m_VtkUnselectedPolyDataMapper); m_VtkUnselectedPolyDataMapper->Delete(); m_PointsAssembly->AddPart(m_UnselectedActor); } m_vtkUnselectedPointList->Delete(); }
void mitk::PointSetVtkMapper3D::GenerateData | ( | ) | [protected, virtual] |
Generate the data needed for rendering (independent of a specific renderer)
Reimplemented from mitk::Mapper.
Reimplemented in mitk::SplineVtkMapper3D.
Definition at line 375 of file mitkPointSetVtkMapper3D.cpp.
{ //create new vtk render objects (e.g. sphere for a point) this->CreateVTKRenderObjects(); //apply props Superclass::ApplyProperties( m_ContourActor, NULL ); this->ApplyProperties(NULL); }
void mitk::PointSetVtkMapper3D::GenerateData | ( | mitk::BaseRenderer * | renderer ) | [protected, virtual] |
Generate the data needed for rendering into renderer.
Reimplemented from mitk::Mapper.
Reimplemented in mitk::LineVtkMapper3D, and mitk::SplineVtkMapper3D.
Definition at line 387 of file mitkPointSetVtkMapper3D.cpp.
References mitk::GenericProperty< T >::GetValue().
{ SetVtkMapperImmediateModeRendering(m_VtkSelectedPolyDataMapper); SetVtkMapperImmediateModeRendering(m_VtkUnselectedPolyDataMapper); mitk::FloatProperty::Pointer pointSizeProp = dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetProperty("pointsize")); mitk::FloatProperty::Pointer contourSizeProp = dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetProperty("contoursize")); // only create new vtk render objects if property values were changed if ( pointSizeProp.IsNotNull() && contourSizeProp.IsNotNull() ) { if (m_PointSize!=pointSizeProp->GetValue() || m_ContourRadius!= contourSizeProp->GetValue()) { this->CreateVTKRenderObjects(); } } Superclass::ApplyProperties( m_ContourActor, renderer ); this->ApplyProperties(renderer); if(IsVisible(renderer)==false) { m_UnselectedActor->VisibilityOff(); m_SelectedActor->VisibilityOff(); m_ContourActor->VisibilityOff(); return; } bool showPoints = true; this->GetDataNode()->GetBoolProperty("show points", showPoints); if(showPoints) { m_UnselectedActor->VisibilityOn(); m_SelectedActor->VisibilityOn(); } else { m_UnselectedActor->VisibilityOff(); m_SelectedActor->VisibilityOff(); } if(dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetProperty("opacity")) != NULL) { mitk::FloatProperty::Pointer pointOpacity =dynamic_cast<mitk::FloatProperty *>(this->GetDataNode()->GetProperty("opacity")); float opacity = pointOpacity->GetValue(); m_ContourActor->GetProperty()->SetOpacity(opacity); m_UnselectedActor->GetProperty()->SetOpacity(opacity); m_SelectedActor->GetProperty()->SetOpacity(opacity); } bool makeContour = false; this->GetDataNode()->GetBoolProperty("show contour", makeContour); if (makeContour) { m_ContourActor->VisibilityOn(); } else { m_ContourActor->VisibilityOff(); } }
virtual const char* mitk::PointSetVtkMapper3D::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::VtkMapper3D.
Reimplemented in mitk::LineVtkMapper3D, and mitk::SplineVtkMapper3D.
const mitk::PointSet * mitk::PointSetVtkMapper3D::GetInput | ( | void | ) | [virtual] |
Definition at line 52 of file mitkPointSetVtkMapper3D.cpp.
References mitk::Mapper::GetData().
{ return static_cast<const mitk::PointSet * > ( GetData() ); }
vtkProp * mitk::PointSetVtkMapper3D::GetVtkProp | ( | mitk::BaseRenderer * | renderer ) | [virtual] |
Implements mitk::VtkMapper3D.
Reimplemented in mitk::SplineVtkMapper3D.
Definition at line 456 of file mitkPointSetVtkMapper3D.cpp.
{ return m_PointsAssembly; }
static Pointer mitk::PointSetVtkMapper3D::New | ( | ) | [static] |
Reimplemented in mitk::LineVtkMapper3D, and mitk::SplineVtkMapper3D.
Referenced by mitk::CoreObjectFactory::CreateMapper(), PointSetVtkMapper3D(), and mitkDataNodeTestClass::TestMapperSetting().
void mitk::PointSetVtkMapper3D::ReleaseGraphicsResources | ( | vtkWindow * | renWin ) | [virtual] |
Release vtk-based graphics resources. Must be overwritten in subclasses if vtkProps additional to m_Prop3D are used.
Reimplemented from mitk::VtkMapper3D.
Definition at line 90 of file mitkPointSetVtkMapper3D.cpp.
{ m_PointsAssembly->ReleaseGraphicsResources(renWin); m_SelectedActor->ReleaseGraphicsResources(renWin); m_UnselectedActor->ReleaseGraphicsResources(renWin); m_ContourActor->ReleaseGraphicsResources(renWin); }
void mitk::PointSetVtkMapper3D::ResetMapper | ( | BaseRenderer * | renderer ) | [protected, virtual] |
Reimplemented from mitk::Mapper.
Definition at line 450 of file mitkPointSetVtkMapper3D.cpp.
{ m_PointsAssembly->VisibilityOff(); }
void mitk::PointSetVtkMapper3D::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 662 of file mitkPointSetVtkMapper3D.cpp.
References mitk::DataNode::AddProperty(), mitk::BoolProperty::New(), mitk::ColorProperty::New(), mitk::FloatProperty::New(), and mitk::IntProperty::New().
Referenced by mitk::CoreObjectFactory::SetDefaultProperties().
{ node->AddProperty( "line width", mitk::IntProperty::New(2), renderer, overwrite ); node->AddProperty( "pointsize", mitk::FloatProperty::New(1.0), renderer, overwrite); node->AddProperty( "selectedcolor", mitk::ColorProperty::New(1.0f, 0.0f, 0.0f), renderer, overwrite); //red node->AddProperty( "color", mitk::ColorProperty::New(1.0f, 1.0f, 0.0f), renderer, overwrite); //yellow node->AddProperty( "show contour", mitk::BoolProperty::New(false), renderer, overwrite ); node->AddProperty( "contourcolor", mitk::ColorProperty::New(1.0f, 0.0f, 0.0f), renderer, overwrite); node->AddProperty( "contoursize", mitk::FloatProperty::New(0.5), renderer, overwrite ); node->AddProperty( "close contour", mitk::BoolProperty::New(false), renderer, overwrite ); node->AddProperty( "show points", mitk::BoolProperty::New(true), renderer, overwrite ); node->AddProperty( "updateDataOnRender", mitk::BoolProperty::New(true), renderer, overwrite ); Superclass::SetDefaultProperties(node, renderer, overwrite); }
void mitk::PointSetVtkMapper3D::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.
Reimplemented in mitk::SplineVtkMapper3D.
Definition at line 461 of file mitkPointSetVtkMapper3D.cpp.
{ vtkLinearTransform * vtktransform = this->GetDataNode()->GetVtkTransform(this->GetTimestep()); m_SelectedActor->SetUserTransform(vtktransform); m_UnselectedActor->SetUserTransform(vtktransform); m_ContourActor->SetUserTransform(vtktransform); }
vtkActor* mitk::PointSetVtkMapper3D::m_ContourActor [protected] |
Definition at line 136 of file mitkPointSetVtkMapper3D.h.
Referenced by PointSetVtkMapper3D().
ScalarType mitk::PointSetVtkMapper3D::m_ContourRadius [protected] |
Definition at line 151 of file mitkPointSetVtkMapper3D.h.
unsigned int mitk::PointSetVtkMapper3D::m_NumberOfSelectedAdded [protected] |
Definition at line 146 of file mitkPointSetVtkMapper3D.h.
unsigned int mitk::PointSetVtkMapper3D::m_NumberOfUnselectedAdded [protected] |
Definition at line 147 of file mitkPointSetVtkMapper3D.h.
vtkPropAssembly* mitk::PointSetVtkMapper3D::m_PointsAssembly [protected] |
Definition at line 138 of file mitkPointSetVtkMapper3D.h.
Referenced by PointSetVtkMapper3D().
ScalarType mitk::PointSetVtkMapper3D::m_PointSize [protected] |
Definition at line 150 of file mitkPointSetVtkMapper3D.h.
vtkActor* mitk::PointSetVtkMapper3D::m_SelectedActor [protected] |
Definition at line 134 of file mitkPointSetVtkMapper3D.h.
Referenced by PointSetVtkMapper3D().
vtkActor* mitk::PointSetVtkMapper3D::m_UnselectedActor [protected] |
Definition at line 135 of file mitkPointSetVtkMapper3D.h.
Referenced by PointSetVtkMapper3D().
vtkAppendPolyData* mitk::PointSetVtkMapper3D::m_vtkSelectedPointList [protected] |
Definition at line 126 of file mitkPointSetVtkMapper3D.h.
vtkPolyDataMapper* mitk::PointSetVtkMapper3D::m_VtkSelectedPolyDataMapper [protected] |
Definition at line 130 of file mitkPointSetVtkMapper3D.h.
vtkAppendPolyData* mitk::PointSetVtkMapper3D::m_vtkTextList [protected] |
Definition at line 141 of file mitkPointSetVtkMapper3D.h.
vtkAppendPolyData* mitk::PointSetVtkMapper3D::m_vtkUnselectedPointList [protected] |
Definition at line 127 of file mitkPointSetVtkMapper3D.h.
vtkPolyDataMapper* mitk::PointSetVtkMapper3D::m_VtkUnselectedPolyDataMapper [protected] |
Definition at line 131 of file mitkPointSetVtkMapper3D.h.