The values of a Geometry2D (maybe the same is true for Geometry3D) depending on the order of how the variables has been set. This is extremly unintuitiv and should be corrected.
An example:
mitk::Geometry2D::Pointer geometry2D1 = mitk::Geometry2D::New(); geometry2D1->SetIndexToWorldTransform(myTransform); geometry2D1->SetSpacing(mySpacing); geometry2D1->SetOrigin(myOrigin); mitk::Geometry2D::Pointer geometry2D2 = mitk::Geometry2D::New(); geometry2D2->SetSpacing(mySpacing); geometry2D2->SetOrigin(myOrigin); geometry2D2->SetIndexToWorldTransform(myTransform); mitk::Geometry2D::Pointer geometry2D3 = mitk::Geometry2D::New(); geometry2D3->SetIndexToWorldTransform(myTransform); geometry2D3->SetSpacing(mySpacing); geometry2D3->SetOrigin(myOrigin); geometry2D3->SetIndexToWorldTransform(myTransform);
These geometries return different values for GetSpacing(), GetOrigin() and Get...Transformation().