Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions

mitk::ContourSet Class Reference

#include <mitkContourSet.h>

Inheritance diagram for mitk::ContourSet:
Inheritance graph
[legend]
Collaboration diagram for mitk::ContourSet:
Collaboration graph
[legend]

List of all members.

Public Types

typedef ContourSet Self
typedef BaseData Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer
typedef std::map< unsigned
long, Contour::Pointer
ContourVectorType
typedef ContourVectorType::iterator ContourIterator
typedef itk::BoundingBox
< unsigned long, 3, ScalarType > 
BoundingBoxType

Public Member Functions

virtual const char * GetClassName () const
void Initialize ()
void AddContour (unsigned int index, mitk::Contour::Pointer contour)
void RemoveContour (unsigned long index)
unsigned int GetNumberOfContours ()
ContourVectorType GetContours ()
virtual void UpdateOutputInformation ()
virtual void SetRequestedRegionToLargestPossibleRegion ()
virtual bool RequestedRegionIsOutsideOfTheBufferedRegion ()
virtual bool VerifyRequestedRegion ()
virtual void SetRequestedRegion (itk::DataObject *data)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 ContourSet ()
virtual ~ContourSet ()

Detailed Description

This class holds stores vertices for drawing a contour

Definition at line 35 of file mitkContourSet.h.


Member Typedef Documentation

typedef itk::BoundingBox<unsigned long, 3, ScalarType> mitk::ContourSet::BoundingBoxType

Definition at line 44 of file mitkContourSet.h.

typedef itk::SmartPointer<const Self> mitk::ContourSet::ConstPointer

Reimplemented from mitk::BaseData.

Definition at line 38 of file mitkContourSet.h.

typedef ContourVectorType::iterator mitk::ContourSet::ContourIterator

Definition at line 43 of file mitkContourSet.h.

typedef std::map<unsigned long,Contour::Pointer> mitk::ContourSet::ContourVectorType

Definition at line 40 of file mitkContourSet.h.

typedef itk::SmartPointer<Self> mitk::ContourSet::Pointer

Reimplemented from mitk::BaseData.

Definition at line 38 of file mitkContourSet.h.

Reimplemented from mitk::BaseData.

Definition at line 38 of file mitkContourSet.h.

Reimplemented from mitk::BaseData.

Definition at line 38 of file mitkContourSet.h.


Constructor & Destructor Documentation

mitk::ContourSet::ContourSet (  ) [protected]

Definition at line 21 of file mitkContourSet.cpp.

References mitk::BaseData::GetTimeSlicedGeometry(), and mitk::TimeSlicedGeometry::Initialize().

                           :
  m_ContourVector( ContourVectorType() ),
  m_NumberOfContours (0)
{
  GetTimeSlicedGeometry()->Initialize(1);
}
mitk::ContourSet::~ContourSet (  ) [protected, virtual]

Definition at line 28 of file mitkContourSet.cpp.

{
}

Member Function Documentation

void mitk::ContourSet::AddContour ( unsigned int  index,
mitk::Contour::Pointer  contour 
)

add a contour

Definition at line 32 of file mitkContourSet.cpp.

{
  m_ContourVector.insert(std::make_pair<unsigned long, mitk::Contour::Pointer>( index , contour) );
}
virtual const char* mitk::ContourSet::GetClassName (  ) const [virtual]

Reimplemented from mitk::BaseData.

mitk::ContourSet::ContourVectorType mitk::ContourSet::GetContours (  )

returns the container of the contour points

Definition at line 119 of file mitkContourSet.cpp.

Referenced by mitk::ContourSetVtkMapper3D::GenerateData(), mitk::ContourSetToPointSetFilter::GenerateData(), and mitk::ContourSetMapper2D::Paint().

{
  return m_ContourVector;
}
unsigned int mitk::ContourSet::GetNumberOfContours (  )

returns the number of points stored in the contour

Definition at line 114 of file mitkContourSet.cpp.

{
  return m_ContourVector.size();
}
void mitk::ContourSet::Initialize ( void   )

clean up the contour data

Definition at line 107 of file mitkContourSet.cpp.

{
  m_ContourVector = ContourVectorType();
  GetTimeSlicedGeometry()->Initialize(1);
}
static Pointer mitk::ContourSet::New (  ) [static]
void mitk::ContourSet::RemoveContour ( unsigned long  index )

add a contour

Definition at line 38 of file mitkContourSet.cpp.

{
  m_ContourVector.erase( index );
}
bool mitk::ContourSet::RequestedRegionIsOutsideOfTheBufferedRegion (  ) [virtual]

intherited from parent

Implements mitk::BaseData.

Definition at line 93 of file mitkContourSet.cpp.

{
    return true;
}
void mitk::ContourSet::SetRequestedRegion ( itk::DataObject *  data ) [virtual]

intherited from parent

Implements mitk::BaseData.

Definition at line 103 of file mitkContourSet.cpp.

{
}
void mitk::ContourSet::SetRequestedRegionToLargestPossibleRegion (  ) [virtual]

intherited from parent

Implements mitk::BaseData.

Definition at line 89 of file mitkContourSet.cpp.

{
}
void mitk::ContourSet::UpdateOutputInformation (  ) [virtual]

intherited from parent

Reimplemented from mitk::BaseData.

Definition at line 43 of file mitkContourSet.cpp.

References mitk::Geometry3D::GetCornerPoint(), inverse, mitk::Geometry3D::SetBounds(), and mitk::Geometry3D::SetIndexToWorldTransform().

{
  mitk::ContourSet::ContourVectorType contourVec = GetContours();
  mitk::ContourSet::ContourIterator contoursIterator = contourVec.begin();
  mitk::ContourSet::ContourIterator contoursIteratorEnd = contourVec.end();

  // initialize container
  mitk::BoundingBox::PointsContainer::Pointer pointscontainer=mitk::BoundingBox::PointsContainer::New();

  mitk::BoundingBox::PointIdentifier pointid=0;
  mitk::Point3D point;

  mitk::AffineTransform3D* transform = GetTimeSlicedGeometry()->GetIndexToWorldTransform();
  mitk::AffineTransform3D::Pointer inverse = mitk::AffineTransform3D::New();
  transform->GetInverse(inverse);

  // calculate a bounding box that includes all contours
  // \todo probably we should do this additionally for each time-step
  while (contoursIterator != contoursIteratorEnd)
  {
    const Geometry3D* geometry = (*contoursIterator).second->GetUpdatedTimeSlicedGeometry();
    unsigned char i;
    for(i=0; i<8; ++i)
    {
      point = inverse->TransformPoint(geometry->GetCornerPoint(i));
      if(point[0]*point[0]+point[1]*point[1]+point[2]*point[2] < mitk::large)
        pointscontainer->InsertElement( pointid++, point);
      else
      {
        itkGenericOutputMacro( << "Unrealistically distant corner point encountered. Ignored. BoundingObject: " << (*contoursIterator).second );
      }
    }
    ++contoursIterator;
  }

  mitk::BoundingBox::Pointer boundingBox = mitk::BoundingBox::New();
  boundingBox->SetPoints(pointscontainer);
  boundingBox->ComputeBoundingBox();

  Geometry3D* geometry3d = GetGeometry(0);
  geometry3d->SetIndexToWorldTransform(transform);
  geometry3d->SetBounds(boundingBox->GetBounds());

  GetTimeSlicedGeometry()->InitializeEvenlyTimed(geometry3d, GetTimeSlicedGeometry()->GetTimeSteps());
}
bool mitk::ContourSet::VerifyRequestedRegion (  ) [virtual]

intherited from parent

Implements mitk::BaseData.

Definition at line 98 of file mitkContourSet.cpp.

{
    return true;
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines