Fawkes API  Fawkes Development Version
fawkes::LineSegment Class Reference

A line segment. More...

#include <>>

Inheritance diagram for fawkes::LineSegment:

Public Member Functions

 LineSegment (const HomPoint &a, const HomPoint &b)
 Constructor. More...
 
 LineSegment (const HomPoint &p, const HomVector &v)
 Constructor. More...
 
 LineSegment (const LineSegment &l)
 Copy constructor. More...
 
virtual ~LineSegment ()
 Destructor. More...
 
float length () const
 Get the length of the line segment. More...
 
const HomPoint & p1 () const
 Get the starting point. More...
 
const HomPoint & p2 () const
 Get the endpoint. More...
 
HomPoint project (const HomPoint &p) const
 Project a point on this LineSegment. More...
 
- Public Member Functions inherited from fawkes::Transformable
 Transformable ()
 Constructor. More...
 
virtual ~Transformable ()
 Destructor. More...
 
- Public Member Functions inherited from fawkes::Printable
 Printable ()
 Constructor. More...
 
virtual ~Printable ()
 Destructor. More...
 

Protected Member Functions

virtual void register_primitives ()
 Here, a derived class should register its primitives (HomPoints and HomVectors) by calling add_primitive for each of those. More...
 
virtual void post_transform ()
 This method is called after the primitives are transformed. More...
 
virtual std::ostream & print (std::ostream &stream) const
 This method is called by the overloaded <<-operator. More...
 
- Protected Member Functions inherited from fawkes::Transformable
void transform (const HomTransform &t)
 Apply the transform to all registered primitives and call the post_transform() method. More...
 
void add_primitive (HomCoord *c)
 Add a primitive to the list of primitives that is transformed. More...
 
void clear_primitives ()
 Clear the list of primitives. More...
 

Detailed Description

A line segment.

Author
Daniel Beck

Definition at line 34 of file line_segment.h.

Constructor & Destructor Documentation

fawkes::LineSegment::LineSegment ( const HomPoint &  a,
const HomPoint &  b 
)

Constructor.

Parameters
athe starting point of the line segment
bthe endpoint of of the line segment

Definition at line 37 of file line_segment.cpp.

References register_primitives().

fawkes::LineSegment::LineSegment ( const HomPoint &  p,
const HomVector &  v 
)

Constructor.

Parameters
pthe starting point of the line segment
va vector defining orientation and length of the line segment

Definition at line 49 of file line_segment.cpp.

References register_primitives().

fawkes::LineSegment::LineSegment ( const LineSegment &  l)

Copy constructor.

Parameters
lanother line segment

Definition at line 59 of file line_segment.cpp.

References fawkes::Transformable::clear_primitives(), and register_primitives().

fawkes::LineSegment::~LineSegment ( )
virtual

Destructor.

Definition at line 68 of file line_segment.cpp.

Member Function Documentation

float fawkes::LineSegment::length ( ) const

Get the length of the line segment.

Returns
the length of the line segment

Definition at line 76 of file line_segment.cpp.

References fawkes::HomVector::length().

Referenced by project().

const HomPoint & fawkes::LineSegment::p1 ( ) const

Get the starting point.

Returns
the starting point

Definition at line 87 of file line_segment.cpp.

Referenced by fawkes::LineSegmentDrawer::draw().

const HomPoint & fawkes::LineSegment::p2 ( ) const

Get the endpoint.

Returns
the endpoint

Definition at line 96 of file line_segment.cpp.

Referenced by fawkes::LineSegmentDrawer::draw().

void fawkes::LineSegment::post_transform ( )
protectedvirtual

This method is called after the primitives are transformed.

Any additional updates that need to be done should be done here.

Implements fawkes::Transformable.

Definition at line 125 of file line_segment.cpp.

std::ostream & fawkes::LineSegment::print ( std::ostream &  stream) const
protectedvirtual

This method is called by the overloaded <<-operator.

Parameters
streamthe output stream
Returns
reference to the output stream

Implements fawkes::Printable.

Definition at line 130 of file line_segment.cpp.

HomPoint fawkes::LineSegment::project ( const HomPoint &  p) const

Project a point on this LineSegment.

Parameters
pa point
Returns
the projected point

Definition at line 106 of file line_segment.cpp.

References length().

void fawkes::LineSegment::register_primitives ( )
protectedvirtual

Here, a derived class should register its primitives (HomPoints and HomVectors) by calling add_primitive for each of those.

Implements fawkes::Transformable.

Definition at line 118 of file line_segment.cpp.

References fawkes::Transformable::add_primitive().

Referenced by LineSegment().


The documentation for this class was generated from the following files: