Implementation of PlanarFigure representing a circle through two control points. More...
#include <mitkPlanarCircle.h>


Public Types | |
| typedef PlanarCircle | Self |
| typedef PlanarFigure | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| bool | SetControlPoint (unsigned int index, const Point2D &point, bool createIfDoesNotExist) |
| Place figure in its minimal configuration (a point at least) onto the given 2D geometry. | |
| unsigned int | GetMinimumNumberOfControlPoints () const |
| Circle has 2 control points per definition. | |
| unsigned int | GetMaximumNumberOfControlPoints () const |
| Circle has 2 control points per definition. | |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| PlanarCircle () | |
| virtual | ~PlanarCircle () |
| virtual void | GeneratePolyLine () |
| Generates the poly-line representation of the planar figure. | |
| virtual void | GenerateHelperPolyLine (double mmPerDisplayUnit, unsigned int displayHeight) |
| Generates the poly-lines that should be drawn the same size regardless of zoom. | |
| virtual void | EvaluateFeaturesInternal () |
| Calculates feature quantities of the planar figure. | |
| virtual void | PrintSelf (std::ostream &os, itk::Indent indent) const |
Protected Attributes | |
| const unsigned int | FEATURE_ID_RADIUS |
| const unsigned int | FEATURE_ID_DIAMETER |
| const unsigned int | FEATURE_ID_AREA |
Implementation of PlanarFigure representing a circle through two control points.
Definition at line 35 of file mitkPlanarCircle.h.
| typedef itk::SmartPointer<const Self> mitk::PlanarCircle::ConstPointer |
Reimplemented from mitk::PlanarFigure.
Definition at line 38 of file mitkPlanarCircle.h.
| typedef itk::SmartPointer<Self> mitk::PlanarCircle::Pointer |
Reimplemented from mitk::PlanarFigure.
Definition at line 38 of file mitkPlanarCircle.h.
| typedef PlanarCircle mitk::PlanarCircle::Self |
Reimplemented from mitk::PlanarFigure.
Definition at line 38 of file mitkPlanarCircle.h.
Reimplemented from mitk::PlanarFigure.
Definition at line 38 of file mitkPlanarCircle.h.
| mitk::PlanarCircle::PlanarCircle | ( | ) | [protected] |
Definition at line 25 of file mitkPlanarCircle.cpp.
References mitk::PlanarFigure::m_PolyLines, mitk::BoolProperty::New(), mitk::PlanarFigure::ResetNumberOfControlPoints(), and mitk::BaseData::SetProperty().
: FEATURE_ID_RADIUS( this->AddFeature( "Radius", "mm" ) ), FEATURE_ID_DIAMETER( this->AddFeature( "Diameter", "mm" ) ), FEATURE_ID_AREA( this->AddFeature( "Area", "mm^2" ) ) { // Circle has two control points this->ResetNumberOfControlPoints( 2 ); this->SetProperty( "closed", mitk::BoolProperty::New(true) ); m_PolyLines->InsertElement( 0, VertexContainerType::New()); }
| mitk::PlanarCircle::~PlanarCircle | ( | ) | [protected, virtual] |
Definition at line 38 of file mitkPlanarCircle.cpp.
{
}
| void mitk::PlanarCircle::EvaluateFeaturesInternal | ( | ) | [protected, virtual] |
Calculates feature quantities of the planar figure.
Implements mitk::PlanarFigure.
Definition at line 116 of file mitkPlanarCircle.cpp.
{
// Calculate circle radius and area
const Point3D &p0 = this->GetWorldControlPoint( 0 );
const Point3D &p1 = this->GetWorldControlPoint( 1 );
double radius = p0.EuclideanDistanceTo( p1 );
double area = vnl_math::pi * radius * radius;
this->SetQuantity( FEATURE_ID_RADIUS, radius );
this->SetQuantity( FEATURE_ID_DIAMETER, 2*radius );
this->SetQuantity( FEATURE_ID_AREA, area );
}
| void mitk::PlanarCircle::GenerateHelperPolyLine | ( | double | mmPerDisplayUnit, |
| unsigned int | displayHeight | ||
| ) | [protected, virtual] |
Generates the poly-lines that should be drawn the same size regardless of zoom.
Implements mitk::PlanarFigure.
Definition at line 111 of file mitkPlanarCircle.cpp.
{
// A circle does not require a helper object
}
| void mitk::PlanarCircle::GeneratePolyLine | ( | ) | [protected, virtual] |
Generates the poly-line representation of the planar figure.
Implements mitk::PlanarFigure.
Definition at line 91 of file mitkPlanarCircle.cpp.
References QuadProgPP::t().
{
// TODO: start circle at specified boundary point...
const Point2D ¢erPoint = m_ControlPoints->ElementAt( 0 );
const Point2D &boundaryPoint = m_ControlPoints->ElementAt( 1 );
double radius = centerPoint.EuclideanDistanceTo( boundaryPoint );
// Generate poly-line with 64 segments
m_PolyLines->ElementAt( 0 )->Reserve( 64 );
for ( int t = 0; t < 64; ++t )
{
double alpha = (double) t * vnl_math::pi / 32.0;
m_PolyLines->ElementAt( 0 )->ElementAt( t )[0] = centerPoint[0] + radius * cos( alpha );
m_PolyLines->ElementAt( 0 )->ElementAt( t )[1] = centerPoint[1] + radius * sin( alpha );
}
}
| virtual const char* mitk::PlanarCircle::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::PlanarFigure.
| unsigned int mitk::PlanarCircle::GetMaximumNumberOfControlPoints | ( | ) | const [inline, virtual] |
Circle has 2 control points per definition.
Implements mitk::PlanarFigure.
Definition at line 60 of file mitkPlanarCircle.h.
{
return 2;
}
| unsigned int mitk::PlanarCircle::GetMinimumNumberOfControlPoints | ( | ) | const [inline, virtual] |
Circle has 2 control points per definition.
Implements mitk::PlanarFigure.
Definition at line 53 of file mitkPlanarCircle.h.
{
return 2;
}
| static Pointer mitk::PlanarCircle::New | ( | ) | [static] |
| void mitk::PlanarCircle::PrintSelf | ( | std::ostream & | os, |
| itk::Indent | indent | ||
| ) | const [protected, virtual] |
Reimplemented from mitk::PlanarFigure.
Definition at line 131 of file mitkPlanarCircle.cpp.
{
Superclass::PrintSelf( os, indent );
}
| bool mitk::PlanarCircle::SetControlPoint | ( | unsigned int | index, |
| const Point2D & | point, | ||
| bool | createIfDoesNotExist | ||
| ) | [virtual] |
Place figure in its minimal configuration (a point at least) onto the given 2D geometry.
Must be implemented in sub-classes.
Reimplemented from mitk::PlanarFigure.
Definition at line 69 of file mitkPlanarCircle.cpp.
{
// moving center point
if(index == 0)
{
const Point2D ¢erPoint = m_ControlPoints->ElementAt( 0 );
Point2D boundaryPoint = m_ControlPoints->ElementAt( 1 );
vnl_vector<float> vec = (point.GetVnlVector() - centerPoint.GetVnlVector());
boundaryPoint[0] += vec[0];
boundaryPoint[1] += vec[1];
m_ControlPoints->InsertElement( 0, point );
m_ControlPoints->InsertElement( 1, boundaryPoint );
}
else if ( index == 1 )
{
m_ControlPoints->InsertElement( index, point );
return true;
}
return false;
}
const unsigned int mitk::PlanarCircle::FEATURE_ID_AREA [protected] |
Definition at line 86 of file mitkPlanarCircle.h.
const unsigned int mitk::PlanarCircle::FEATURE_ID_DIAMETER [protected] |
Definition at line 85 of file mitkPlanarCircle.h.
const unsigned int mitk::PlanarCircle::FEATURE_ID_RADIUS [protected] |
Definition at line 84 of file mitkPlanarCircle.h.
1.7.2