circular_arc_edge
is a special type of a transporter_edge
used by a sampling_matcher
and its free_space_graph
.
More...
#include <circular_arc_edge.h>
Public Types | |
typedef point::arithmetic_t | arithmetic_t |
typedef arithmetic_t | arithmetic |
typedef index_class | index_t |
typedef unit_circle_angle< arithmetic> | angle_t |
typedef angle_t | border_value |
typedef unit_circle_angle< arithmetic> | border_type |
typedef point | point_t |
typedef std::pair<angle_t, angle_t > | circular_arc |
typedef std::pair<point,point> | point_pair |
typedef rigid_motion<arithmetic> | motion |
typedef compact_interval_border< angle_t,index_t> | interval_border |
typedef std::list<angle_t> | interval_bounds |
typedef std::list<angle_titerator | border_iterator |
Public Methods | |
circular_arc_edge () | |
Default constructor. | |
~circular_arc_edge () | |
Default destructor. | |
border_iterator | left_borders_begin () |
Iterator for all left borders of the intervals assigned to the edge. More... | |
border_iterator | left_borders_end () |
See left_borders_begin() . | |
border_iterator | right_borders_begin () |
Iterator for all right borders of the intervals assigned to the edge. More... | |
border_iterator | right_borders_end () |
See right_borders_begin() . | |
bool | contains (const angle_t& phi) |
Checks whether the angle phi is contained in one of the intervals assigned to the edge. | |
circular_arc_edge (const point_pair& P, const point_pair& Q, const point_pair& ref_points, const arithmetic& eps, const arithmetic& delta) | |
Computes the projected transporter \eta^(eps+delta) from <Q.first,Q.second> to <P.first,P.second> using the pair of reference points ref_points.first and assigns this transporter to the edge. | |
void | assign_transporter (const point_pair& P, const point_pair& Q, const point_pair& ref_points, const arithmetic& eps, const arithmetic& delta) |
Computes the projected transporter \eta^(eps+delta) from <Q.first,Q.second> to <P.first,P.second> using the pair of reference points ref_points.first and assigns this transporter to the edge. | |
Static Public Methods | |
motion | compute_match (const angle_t& phi, const point_pair& ref_points) |
Computes a rigid motion (i.e. More... | |
bool | empty (const circular_arc&) |
Determines whether a circular_arc is empty or not. More... | |
bool | full (const circular_arc&) |
Determines whether a circular_arc is a full circle. More... | |
circular_arc | get_angle_interval (const point_pair& pp1, const point_pair& pp2, const arithmetic& eps) |
Computes an (eps + delta) projected transporter subset from <pp2.first,pp2.second> to <pp1.first,pp1.second>. |
circular_arc_edge
is a special type of a transporter_edge
used by a sampling_matcher
and its free_space_graph
.
In the free space graph, edges are assigned certain projected transporter subsets of the transformation group. In the case of rigid motions in the plain, these transporter subsets are circular arcs on the unit circle (representing a subset of SO(2)). The class circular_arc_edge
supplies all functionality neccessary for maintaining these circular arcs.
|
Computes a rigid motion (i.e.
a |
|
Determines whether a
This is not a member function of |
|
Determines whether a
This is not a member function of |
|
Iterator for all left borders of the intervals assigned to the edge. Up to three such intervals may be assigned to the edge. |
|
Iterator for all right borders of the intervals assigned to the edge. Up to three such intervals may be assigned to the edge. |