| 664 | } |
| 665 | |
| 666 | void mitk::DoseImageVtkMapper2D::SetDefaultProperties(mitk::DataNode *node, |
| 667 | mitk::BaseRenderer *renderer, |
| 668 | bool overwrite) |
| 669 | { |
| 670 | mitk::Image::Pointer image = dynamic_cast<mitk::Image *>(node->GetData()); |
| 671 | |
| 672 | // Properties common for both images and segmentations |
| 673 | node->AddProperty("depthOffset", mitk::FloatProperty::New(0.0), renderer, overwrite); |
| 674 | node->AddProperty("outline binary", mitk::BoolProperty::New(false), renderer, overwrite); |
| 675 | node->AddProperty("outline width", mitk::FloatProperty::New(1.0), renderer, overwrite); |
| 676 | node->AddProperty("outline binary shadow", mitk::BoolProperty::New(false), renderer, overwrite); |
| 677 | node->AddProperty("outline binary shadow color", ColorProperty::New(0.0, 0.0, 0.0), renderer, overwrite); |
| 678 | node->AddProperty("outline shadow width", mitk::FloatProperty::New(1.5), renderer, overwrite); |
| 679 | if (image->IsRotated()) |
| 680 | node->AddProperty("reslice interpolation", mitk::VtkResliceInterpolationProperty::New(VTK_RESLICE_CUBIC)); |
| 681 | else |
| 682 | node->AddProperty("reslice interpolation", mitk::VtkResliceInterpolationProperty::New()); |
| 683 | node->AddProperty("texture interpolation", |
| 684 | mitk::BoolProperty::New(false)); // default value |
| 685 | node->AddProperty("in plane resample extent by geometry", mitk::BoolProperty::New(false)); |
| 686 | node->AddProperty("bounding box", mitk::BoolProperty::New(false)); |
| 687 | |
| 688 | mitk::RenderingModeProperty::Pointer renderingModeProperty = mitk::RenderingModeProperty::New(); |
| 689 | node->AddProperty("Image Rendering.Mode", renderingModeProperty); |
| 690 | |
| 691 | // Set default grayscale look-up table |
| 692 | mitk::LookupTable::Pointer mitkLut = mitk::LookupTable::New(); |
| 693 | mitkLut->SetType(mitk::LookupTable::GRAYSCALE); |
| 694 | mitk::LookupTableProperty::Pointer mitkLutProp = mitk::LookupTableProperty::New(); |
| 695 | mitkLutProp->SetLookupTable(mitkLut); |
| 696 | node->SetProperty("LookupTable", mitkLutProp); |
| 697 | |
| 698 | std::string photometricInterpretation; // DICOM tag telling us how pixel values should be displayed |
| 699 | if (node->GetStringProperty("dicom.pixel.PhotometricInterpretation", photometricInterpretation)) |
| 700 | { |
| 701 | // modality provided by DICOM or other reader |
| 702 | if (photometricInterpretation.find("MONOCHROME1") != std::string::npos) // meaning: display MINIMUM pixels as WHITE |
| 703 | { |
| 704 | // Set inverse grayscale look-up table |
| 705 | mitkLut->SetType(mitk::LookupTable::INVERSE_GRAYSCALE); |
| 706 | mitkLutProp->SetLookupTable(mitkLut); |
| 707 | node->SetProperty("LookupTable", mitkLutProp); |
| 708 | } |
| 709 | // Otherwise do nothing - the default grayscale look-up table has already been set |
| 710 | } |
| 711 | |
| 712 | bool isBinaryImage(false); |
| 713 | if (!node->GetBoolProperty("binary", isBinaryImage)) |
| 714 | { |
| 715 | // ok, property is not set, use heuristic to determine if this |
| 716 | // is a binary image |
| 717 | mitk::Image::Pointer centralSliceImage; |
| 718 | ScalarType minValue = 0.0; |
| 719 | ScalarType maxValue = 0.0; |
| 720 | ScalarType min2ndValue = 0.0; |
| 721 | ScalarType max2ndValue = 0.0; |
| 722 | mitk::ImageSliceSelector::Pointer sliceSelector = mitk::ImageSliceSelector::New(); |
| 723 |
nothing calls this directly
no test coverage detected