Public Member Functions | List of all members
grl::concept::OpenChain Class Reference

OpenChain concept. More...

#include <OpenChain.hpp>

+ Collaboration diagram for grl::concept::OpenChain:

Public Member Functions

 BOOST_CONCEPT_USAGE (Linestring)
 

Detailed Description

OpenChain concept.

Formal definition:
The OpenChain concept is defined as following:
  • there must be a specialization of traits::tag defining linestring_tag as type
  • it must behave like a Boost.Range
  • it must implement a std::back_insert_iterator
    • either by implementing push_back
    • or by specializing std::back_insert_iterator
Note
to fulfill the concepts, no traits class has to be specialized to define the joint type.
Example:
A custom linestring, defining the necessary specializations to fulfill to the concept. Suppose that the following linestring is defined:
It can then be adapted to the concept as following:
Note
  • Open chain refers to a single linear series of states. The best example of this is an open kinematic chain, such as a robot arm consisting of a series of revolute and prismatic joints.
  • There is also the registration macro BOOST_GEOMETRY_REGISTER_LINESTRING
  • For registration of std::vector<P> (and deque, and list) it is enough to include the header-file geometries/adapted/std_as_linestring.hpp. That registers a vector as a linestring (so it cannot be registered as a linear ring then, in the same source code).
See also
Based on Boost.Geometry Linestring concept http://www.boost.org/doc/libs/release/libs/geometry/doc/html/geometry/reference/concepts/concept_linestring.html

Definition at line 57 of file OpenChain.hpp.

Member Function Documentation

§ BOOST_CONCEPT_USAGE()

grl::concept::OpenChain::BOOST_CONCEPT_USAGE ( Linestring  )
inline

Definition at line 67 of file OpenChain.hpp.


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