示例#1
0
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);
  }
}
示例#2
0
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);
      }
    }
  }
}
示例#4
0
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;
}