Implementation of PlanarFigure representing an arrow through two control points. More...
#include <mitkPlanarArrow.h>


Public Types | |
| typedef PlanarArrow | 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 |
| Line has 2 control points per definition. | |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| PlanarArrow () | |
| virtual | ~PlanarArrow () |
| 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_LENGTH |
Implementation of PlanarFigure representing an arrow through two control points.
Definition at line 35 of file mitkPlanarArrow.h.
| typedef itk::SmartPointer<const Self> mitk::PlanarArrow::ConstPointer |
Reimplemented from mitk::PlanarFigure.
Definition at line 38 of file mitkPlanarArrow.h.
| typedef itk::SmartPointer<Self> mitk::PlanarArrow::Pointer |
Reimplemented from mitk::PlanarFigure.
Definition at line 38 of file mitkPlanarArrow.h.
| typedef PlanarArrow mitk::PlanarArrow::Self |
Reimplemented from mitk::PlanarFigure.
Definition at line 38 of file mitkPlanarArrow.h.
Reimplemented from mitk::PlanarFigure.
Definition at line 38 of file mitkPlanarArrow.h.
| mitk::PlanarArrow::PlanarArrow | ( | ) | [protected] |
Definition at line 23 of file mitkPlanarArrow.cpp.
References mitk::PlanarFigure::m_HelperPolyLines, mitk::PlanarFigure::m_HelperPolyLinesToBePainted, mitk::PlanarFigure::m_PolyLines, and mitk::PlanarFigure::ResetNumberOfControlPoints().
: FEATURE_ID_LENGTH( this->AddFeature( "Length", "mm" ) ) { // Directed arrow has two control points this->ResetNumberOfControlPoints( 2 ); m_PolyLines->InsertElement( 0, VertexContainerType::New()); // Create helper polyline object (for drawing the orthogonal orientation line) m_HelperPolyLines->InsertElement( 0, VertexContainerType::New()); m_HelperPolyLines->InsertElement( 1, VertexContainerType::New()); m_HelperPolyLines->ElementAt( 0 )->Reserve( 2 ); m_HelperPolyLines->ElementAt( 1 )->Reserve( 2 ); m_HelperPolyLinesToBePainted->InsertElement( 0, false ); m_HelperPolyLinesToBePainted->InsertElement( 1, false ); }
| mitk::PlanarArrow::~PlanarArrow | ( | ) | [protected, virtual] |
Definition at line 41 of file mitkPlanarArrow.cpp.
{
}
| void mitk::PlanarArrow::EvaluateFeaturesInternal | ( | ) | [protected, virtual] |
Calculates feature quantities of the planar figure.
Implements mitk::PlanarFigure.
Definition at line 122 of file mitkPlanarArrow.cpp.
{
// Calculate line length
const Point3D &p0 = this->GetWorldControlPoint( 0 );
const Point3D &p1 = this->GetWorldControlPoint( 1 );
double length = p0.EuclideanDistanceTo( p1 );
this->SetQuantity( FEATURE_ID_LENGTH, length );
}
| void mitk::PlanarArrow::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 82 of file mitkPlanarArrow.cpp.
{
// Generate helper polyline (orientation line orthogonal to first line)
// if the third control point is currently being set
if ( this->GetNumberOfControlPoints() != 2 )
{
m_HelperPolyLinesToBePainted->SetElement( 0, false );
m_HelperPolyLinesToBePainted->SetElement( 1, false );
return;
}
m_HelperPolyLinesToBePainted->SetElement( 0, true );
m_HelperPolyLinesToBePainted->SetElement( 1, true );
//Fixed size depending on screen size for the angle
double nonScalingLength = displayHeight * mmPerDisplayUnit * 0.015;
// Calculate arrow peak
const Point2D& p1 = m_ControlPoints->ElementAt( 0 );
const Point2D& p2 = m_ControlPoints->ElementAt( 1 );
Vector2D n1 = p1 - p2;
n1.Normalize();
double degrees = 100.0;
Vector2D temp;
temp[0] = n1[0] * cos(degrees) - n1[1] * sin(degrees);
temp[1] = n1[0] * sin(degrees) + n1[1] * cos(degrees);
Vector2D temp2;
temp2[0] = n1[0] * cos(-degrees) - n1[1] * sin(-degrees);
temp2[1] = n1[0] * sin(-degrees) + n1[1] * cos(-degrees);
m_HelperPolyLines->ElementAt( 0 )->ElementAt( 0 ) = p1;
m_HelperPolyLines->ElementAt( 0 )->ElementAt( 1 ) = p1 - temp * nonScalingLength;
m_HelperPolyLines->ElementAt( 1 )->ElementAt( 0 ) = p1;
m_HelperPolyLines->ElementAt( 1 )->ElementAt( 1 ) = p1 - temp2 * nonScalingLength;
}
| void mitk::PlanarArrow::GeneratePolyLine | ( | ) | [protected, virtual] |
Generates the poly-line representation of the planar figure.
Implements mitk::PlanarFigure.
Definition at line 73 of file mitkPlanarArrow.cpp.
{
// TODO: start line at specified start point...
// Generate poly-line
m_PolyLines->ElementAt( 0 )->Reserve( 2 );
m_PolyLines->ElementAt( 0 )->ElementAt( 0 ) = m_ControlPoints->ElementAt( 0 );
m_PolyLines->ElementAt( 0 )->ElementAt( 1 ) = m_ControlPoints->ElementAt( 1 );
}
| virtual const char* mitk::PlanarArrow::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::PlanarFigure.
| unsigned int mitk::PlanarArrow::GetMaximumNumberOfControlPoints | ( | ) | const [inline, virtual] |
Line has 2 control points per definition.
Implements mitk::PlanarFigure.
Definition at line 59 of file mitkPlanarArrow.h.
{
return 2;
}
| unsigned int mitk::PlanarArrow::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.Line has 2 control points per definition.
Implements mitk::PlanarFigure.
Definition at line 52 of file mitkPlanarArrow.h.
{
return 2;
}
| static Pointer mitk::PlanarArrow::New | ( | ) | [static] |
Referenced by mitk::PlanarFigureReader::GenerateData(), and mitkPlanarArrowTest().
| void mitk::PlanarArrow::PrintSelf | ( | std::ostream & | os, |
| itk::Indent | indent | ||
| ) | const [protected, virtual] |
Reimplemented from mitk::PlanarFigure.
Definition at line 133 of file mitkPlanarArrow.cpp.
{
Superclass::PrintSelf( os, indent );
}
const unsigned int mitk::PlanarArrow::FEATURE_ID_LENGTH [protected] |
Definition at line 82 of file mitkPlanarArrow.h.
1.7.2