OpenChain concept.
More...
#include <OpenChain.hpp>
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.
§ BOOST_CONCEPT_USAGE()
grl::concept::OpenChain::BOOST_CONCEPT_USAGE |
( |
Linestring |
| ) |
|
|
inline |
The documentation for this class was generated from the following file: