ReSCue - Retrieval System for Curves
Main Page   Class Hierarchy   Compound List   File List   Compound Members  

rescue::circular_arc_edge Template Class Reference

A 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>

List of all members.

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>.


Detailed Description

template<class index_class, class point> template class rescue::circular_arc_edge

A 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.


Member Function Documentation

template<classindex_class, classpoint>
circular_arc_edge< index_class,point >::motion rescue::circular_arc_edge< index_class,point >::compute_match ( const angle_t & phi,
const point_pair & ref_points ) [static]
 

Computes a rigid motion (i.e.

a rigid_motion object) determined by the angle phi and the pair of refernece points ref_points.

template<classindex_class, classpoint>
bool rescue::circular_arc_edge< index_class,point >::empty ( const circular_arc & ) [static]
 

Determines whether a circular_arc is empty or not.

This is not a member function of circular_arc, since circular_arc is simply defined as a pair of two angle_t objects.

template<classindex_class, classpoint>
bool rescue::circular_arc_edge< index_class,point >::full ( const circular_arc & ) [static]
 

Determines whether a circular_arc is a full circle.

This is not a member function of circular_arc, since circular_arc is simply defined as a pair of two angle_t objects.

template<classindex_class, classpoint>
circular_arc_edge< index_class,point >::border_iterator rescue::circular_arc_edge< index_class,point >::left_borders_begin ( ) [inline]
 

Iterator for all left borders of the intervals assigned to the edge.

Up to three such intervals may be assigned to the edge.

template<classindex_class, classpoint>
circular_arc_edge< index_class,point >::border_iterator rescue::circular_arc_edge< index_class,point >::right_borders_begin ( ) [inline]
 

Iterator for all right borders of the intervals assigned to the edge.

Up to three such intervals may be assigned to the edge.


The documentation for this class was generated from the following file:
ReSCue - Retrieval System for Curves
Universität Bonn, Institut für Informatik III, 2001