Implementation of PlanarFigure representing a four point angle, which is defined by two non-intersecting lines in 2D. Each of those lines is defined by two control points. More...
#include <mitkPlanarFourPointAngle.h>


Public Types | |
| typedef PlanarFourPointAngle | Self |
| typedef PlanarFigure | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| unsigned int | GetMinimumNumberOfControlPoints () const |
| Place figure in its minimal configuration (a point at least) onto the given 2D geometry. | |
| unsigned int | GetMaximumNumberOfControlPoints () const |
| Four point angle has 4 control points per definition. | |
Static Public Member Functions | |
| static Pointer | New () |
Public Attributes | |
| const unsigned int | FEATURE_ID_ANGLE |
Protected Member Functions | |
| PlanarFourPointAngle () | |
| virtual | ~PlanarFourPointAngle () |
| 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 |
Implementation of PlanarFigure representing a four point angle, which is defined by two non-intersecting lines in 2D. Each of those lines is defined by two control points.
Definition at line 36 of file mitkPlanarFourPointAngle.h.
| typedef itk::SmartPointer<const Self> mitk::PlanarFourPointAngle::ConstPointer |
Reimplemented from mitk::PlanarFigure.
Definition at line 39 of file mitkPlanarFourPointAngle.h.
| typedef itk::SmartPointer<Self> mitk::PlanarFourPointAngle::Pointer |
Reimplemented from mitk::PlanarFigure.
Definition at line 39 of file mitkPlanarFourPointAngle.h.
Reimplemented from mitk::PlanarFigure.
Definition at line 39 of file mitkPlanarFourPointAngle.h.
Reimplemented from mitk::PlanarFigure.
Definition at line 39 of file mitkPlanarFourPointAngle.h.
| mitk::PlanarFourPointAngle::PlanarFourPointAngle | ( | ) | [protected] |
Definition at line 23 of file mitkPlanarFourPointAngle.cpp.
References mitk::PlanarFigure::m_PolyLines, and mitk::PlanarFigure::ResetNumberOfControlPoints().
: FEATURE_ID_ANGLE( this->AddFeature( "Angle", "deg" ) ) { // Four point angle has two control points this->ResetNumberOfControlPoints( 2 ); m_PolyLines->InsertElement( 0, VertexContainerType::New()); m_PolyLines->InsertElement( 1, VertexContainerType::New()); }
| mitk::PlanarFourPointAngle::~PlanarFourPointAngle | ( | ) | [protected, virtual] |
Definition at line 34 of file mitkPlanarFourPointAngle.cpp.
{
}
| void mitk::PlanarFourPointAngle::EvaluateFeaturesInternal | ( | ) | [protected, virtual] |
Calculates feature quantities of the planar figure.
Implements mitk::PlanarFigure.
Definition at line 68 of file mitkPlanarFourPointAngle.cpp.
{
if ( this->GetNumberOfControlPoints() < 4 )
{
// Angle not yet complete.
return;
}
// Calculate angle between lines
const Point2D &p0 = this->GetControlPoint( 0 );
const Point2D &p1 = this->GetControlPoint( 1 );
const Point2D &p2 = this->GetControlPoint( 2 );
const Point2D &p3 = this->GetControlPoint( 3 );
Vector2D v0 = p1 - p0;
Vector2D v1 = p3 - p2;
v0.Normalize();
v1.Normalize();
double angle = acos( v0 * v1 );
this->SetQuantity( FEATURE_ID_ANGLE, angle );
}
| void mitk::PlanarFourPointAngle::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 62 of file mitkPlanarFourPointAngle.cpp.
{
// Generate helper-poly-line for an four point angle
// Need to discuss a sensible implementation
}
| void mitk::PlanarFourPointAngle::GeneratePolyLine | ( | ) | [protected, virtual] |
Generates the poly-line representation of the planar figure.
Implements mitk::PlanarFigure.
Definition at line 39 of file mitkPlanarFourPointAngle.cpp.
{
// TODO: start line at specified start point...
// Generate poly-line
m_PolyLines->ElementAt( 0 )->Reserve( 2 );
if (m_ControlPoints->Size() > 2)
{
m_PolyLines->ElementAt( 1 )->Reserve( this->GetNumberOfControlPoints() - 2 );
}
for ( unsigned int i = 0; i < this->GetNumberOfControlPoints(); ++i )
{
if (i < 2)
{
m_PolyLines->ElementAt( 0 )->ElementAt( i ) = m_ControlPoints->ElementAt( i );
}
if (i > 1)
{
m_PolyLines->ElementAt( 1 )->ElementAt( i-2 ) = m_ControlPoints->ElementAt( i );
}
}
}
| virtual const char* mitk::PlanarFourPointAngle::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::PlanarFigure.
| unsigned int mitk::PlanarFourPointAngle::GetMaximumNumberOfControlPoints | ( | ) | const [inline, virtual] |
Four point angle has 4 control points per definition.
Implements mitk::PlanarFigure.
Definition at line 62 of file mitkPlanarFourPointAngle.h.
{
return 4;
}
| unsigned int mitk::PlanarFourPointAngle::GetMinimumNumberOfControlPoints | ( | ) | const [inline, virtual] |
Place figure in its minimal configuration (a point at least) onto the given 2D geometry.
Must be implemented in sub-classes.Four point angle has 4 control points per definition.
Implements mitk::PlanarFigure.
Definition at line 55 of file mitkPlanarFourPointAngle.h.
{
return 4;
}
| static Pointer mitk::PlanarFourPointAngle::New | ( | ) | [static] |
| void mitk::PlanarFourPointAngle::PrintSelf | ( | std::ostream & | os, |
| itk::Indent | indent | ||
| ) | const [protected, virtual] |
Reimplemented from mitk::PlanarFigure.
Definition at line 93 of file mitkPlanarFourPointAngle.cpp.
{
Superclass::PrintSelf( os, indent );
}
| const unsigned int mitk::PlanarFourPointAngle::FEATURE_ID_ANGLE |
Definition at line 41 of file mitkPlanarFourPointAngle.h.
Referenced by QmitkMeasurement::PlanarFigureSelectionChanged().
1.7.2