void mitk::PlaneGeometryData::SetGeometry(mitk::BaseGeometry *geometry) { if(geometry==NULL) SetPlaneGeometry(NULL); else { PlaneGeometry* geometry2d = dynamic_cast<PlaneGeometry*>(geometry); if(geometry2d==NULL) itkExceptionMacro(<<"Trying to set a geometry which is not a PlaneGeometry into PlaneGeometryData."); SetPlaneGeometry(geometry2d); } }
void mitk::PlaneGeometryData::SetGeometry(mitk::BaseGeometry *geometry) { if(geometry==nullptr) SetPlaneGeometry(nullptr); else { PlaneGeometry* geometry2d = dynamic_cast<PlaneGeometry*>(geometry); if(geometry2d==nullptr || dynamic_cast<AbstractTransformGeometry*>(geometry)!=nullptr) itkExceptionMacro(<<"Trying to set a geometry which is not a PlaneGeometry into PlaneGeometryData."); SetPlaneGeometry(geometry2d); } }
mitk::SlicedGeometry3D::SlicedGeometry3D(const SlicedGeometry3D& other) : Superclass(other), m_EvenlySpaced( other.m_EvenlySpaced ), m_Slices( other.m_Slices ), m_ReferenceGeometry( other.m_ReferenceGeometry ), m_SliceNavigationController( other.m_SliceNavigationController ) { m_DirectionVector.Fill(0); SetSpacing( other.GetSpacing() ); SetDirectionVector( other.GetDirectionVector() ); if ( m_EvenlySpaced ) { PlaneGeometry::Pointer geometry = other.m_PlaneGeometries[0]->Clone(); assert(geometry.IsNotNull()); SetPlaneGeometry(geometry, 0); } else { unsigned int s; for ( s = 0; s < other.m_Slices; ++s ) { if ( other.m_PlaneGeometries[s].IsNull() ) { assert(other.m_EvenlySpaced); m_PlaneGeometries[s] = nullptr; } else { PlaneGeometry* geometry2D = other.m_PlaneGeometries[s]->Clone(); assert(geometry2D!=nullptr); SetPlaneGeometry(geometry2D, s); } } } }
static mitk::SlicedGeometry3D::Pointer createSlicedGeometry(const mitk::Point3D &origin, const mitk::Vector3D &spacing, int numberOfSlices) { auto slicedGeometry = mitk::SlicedGeometry3D::New(); slicedGeometry->InitializeSlicedGeometry(static_cast<unsigned int>(numberOfSlices)); slicedGeometry->SetOrigin(origin); slicedGeometry->SetSpacing(spacing); for (int i = 0; i < numberOfSlices; ++i) { auto planeGeometry = createPlaneGeometry(); slicedGeometry->SetPlaneGeometry(planeGeometry, i); } return slicedGeometry; }