ecl_geometry Documentation

*Any tools relating to mathematical geometry.
Primarily featuring polynomials and interpolations.*

- Homepage: http://wiki.ros.org/ecl_geometry

This group includes various structures and tools used in geometry as well as various supporting classes and utilities.

There are quite a few useful tools also in eigen's geometry module. You can get access to these via the ecl_linear_algebra module.

- angle-axis pairs
- quaternions
- rotation matrices
- transforms

Include the following at the top of any translation unit which requires this library:

#include <ecl/geometry.hpp> // Angles using ecl::Angle; using ecl::wrap_angle; using ecl::degrees_to_radians; using ecl::radians_to_degrees; // Other Objects using ecl::CartesianPoint; using ecl::PascalsTriangle; // Functions that act on functions using ecl::Minimum; using ecl::Maximum; // Functions using ecl::Polynomial; // Also has some typedefs, LinearFunction, CubicPolynomial, QuadraticPoly... using ecl::TensionFunction; // Splines using ecl::SmoothLinearSpline; using ecl::CubicSpline; using ecl::TensionSpline; // Transforms using ecl::Pose2D;

You will also need to link to *-lecl_geometry*.

Refer to the class api/guide for each component.

- Angles - c++ style wrapper for angles (radians) and unit conversions (deg<->rad).
- Cartesian Points - generic and specialised representations for cartesian points.
- Pose2D - extends eigen's geometry transforms with a 2d specialised version.
- Polynomials - polynomial functions and two-point interpolations.
- Splines - generating various splines and interpolating over a set of data.

- src/test/angles.cpp
- src/test/cartesian_points.cpp
- src/test/cubic_splines.cpp
- src/test/polynomials.cpp
- src/test/smooth_linear_splines.cpp
- src/test/tension_function.cpp
- src/test/tension_splines.cpp
- src/test/pose2d.cpp

**Sep 10**: ecl::Pose2D transform established, very much eigen style.**Jul 10**: ecl::Angle is finalised with float/double versions and a functional api to assist.**Jul 09**: ecl::BluePrintFactory<LinearFunction> is a blueprint factory for linear functions.**Jul 09**: ecl::blueprints::LinearInterpolation is a blueprint for linear interpolation between end points.**Jul 09**: ecl::SmoothLinearSpline is a a smoothed, linearly blend spline (with quintics).

**May 09**: ecl::blueprints::QuinticInterpolation is a blueprint for quintic interpolation between end points.**May 09**: ecl::BluePrintFactory<QuinticPolynomial> is a blueprint factory for quintic polynomials.**May 09**: ecl::blueprints::CubicSecondDerivativeInterpolation is a blueprint for acceleration derived interpolations between two end points.**May 09**: ecl::blueprints::CubicDerivativeInterpolation is a blueprint for velocity derived interpolations between two end points.**May 09**: ecl::BluePrintFactory<CubicPolynomial> is a blueprint factory for cubic polynomials.**May 09**: ecl::Polynomial is a templatised class representing polynomials of arbitrary degree.**May 09**: A simple templatisation for pascals triangle of arbitrary degree.**May 09**: ecl::blueprints::C2TensionSpline is a c2 continuous tension spline interpolation.**May 09**: ecl::TensionSpline is a representation for a tension spline.**May 09**: ecl::TensionFunction is a representation for a tension function.**May 09**: ecl::blueprints::C2CubicSpline is a special case of the C2CubicSpline, the natural cubic spline.**May 09**: ecl::blueprints::C2CubicSpline is a blueprint for C2 continous splines over a set of data.**May 09**: ecl::blueprints::DerivativeHeuristicCubicSpline uses an automated velocity based heuristic to generate a cubic spline on a data set.**May 09**: ecl::BluePrintFactory<CubicSpline> is a blueprint factory for cubic splines.**May 09**: ecl::CubicSpline is a typedef'd representation for a cubic spline.