Locked History Attachments

ChangeRequests/2709

Summary of problem description

mitkMaterialProperty became obsolete.

surfaces can now have a variable number of properties (depending on bound shaders), and mitkMaterialProperty would have to manage a propertylist, but the mitkMaterialProperty is already itself a member of such a list.

additionally its concept of aliasing its attributes into the propertylist of the associated node is no longer maintainable.

mitkMaterialProperty is used in the old QT3 MaterialEditior, which also became obsolete, and has already an QT4-equivalent with shader support (though not the complete functionality)

it is also used in the vesseltreelookup classes, in a map from vessel label to a material.

in all other cases there is no real usage of the mitkMaterialProperty except setting a member, like representation mode (filled/wireframe).

the material attributes are replaced as standard datanode color&float properties:

  • color
  • material.ambientColor
  • material.diffuseColor
  • material.specularColor
  • material.wireframeLineWidth
  • material.ambientCoefficient
  • material.diffuseCoefficient
  • material.specularCoefficient
  • material.specularPower
  • material.representation
  • material.interpolation

Cause of the bug

mitkMaterialProperty became outdated

Proposed solution

remove any reference to mitkMaterialProperty from the complete svn, except in the vesseltreelookup tables

reintegrate all members of mitkMaterialProperty as standard datanode properties.

rename mitkMaterialProperty to mitkMaterial (and remove inheritance from BaseProperty), so that it can be still used as a material container class for the vesseltreelookup tables.

Affected classes

VesselTreeToLookupTableFilter: rename

VesselTreeLookupTable: rename

VesselTreeLookupTableProperty: rename

ReliverSceneIO: rename

ReliverSceneReaderV1: rename

YetAnotherVesselTreeMapper3D: rename

SurfaceParameterization: attribut access -> property access

PatchProposalPlanningView: attribut access -> property access

LiverPlannerRapidGUI: attribut access -> property access

LymphNodeSegmentationTool: attribut access -> property access

SurfaceVtkOcclusionMapper3D: removal

CoreObjectFactory: removal

DataTreeNodeFactory: removal

DataTreeNode: removal

SurfaceVtkMapper3D: removal and replacement through standard properties

MaterialPropertyTest: renamed to MaterialTest and adapted

MaterialEditor: class COMPLETELY removed

MaterialShowCase: class COMPLETELY removed

DataManagerView: attribut access -> property access

SurfaceMaterialEditorView: properties renamed

ShowSegmentationAsSurface: attribut access -> property access

ExtrudedContourInteractor: property rename

UnstructuredGridVtkMapper3D: removal and replacement through standard properties

PropertyListPopup: removal

MaterialProperty renamed to Material, removed inheritance from BaseProperty and moved to Core/DataManagement

How will the bugfix get tested?

Trough the already existent tests for the modified classes and mitkMaterialPropertyTest is adapted to mitkMaterialTest