Fawkes API  Fawkes Development Version
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
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.
 LineSegment (const HomPoint &p, const HomVector &v)
 Constructor.
 LineSegment (const LineSegment &l)
 Copy constructor.
virtual ~LineSegment ()
 Destructor.
float length () const
 Get the length of the line segment.
const HomPointp1 () const
 Get the starting point.
const HomPointp2 () const
 Get the endpoint.
HomPoint project (const HomPoint &p) const
 Project a point on this LineSegment.
- Public Member Functions inherited from fawkes::Transformable
 Transformable ()
 Constructor.
virtual ~Transformable ()
 Destructor.
- Public Member Functions inherited from fawkes::Printable
 Printable ()
 Constructor.
virtual ~Printable ()
 Destructor.

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.
virtual void post_transform ()
 This method is called after the primitives are transformed.
virtual std::ostream & print (std::ostream &stream) const
 This method is called by the overloaded <<-operator.
- 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.
void add_primitive (HomCoord *c)
 Add a primitive to the list of primitives that is transformed.
void clear_primitives ()
 Clear the list of primitives.

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: