Simplifies the calls to angle-related functions such as angle wrapping, degree-radian conversions, rotation matrix representations.


Include the following at the top of any translation unit that uses geometry functions or classes.

  #include <ecl/geometry/angle.hpp>

  using ecl::Angle;
  using ecl::wrap_angle;

You will also need to link to -lecl_geometry.



For those who prefer to use function based libraries, the ecl::wrap_angle function can be used to operate on simple float types.

  double angle = wrap_angle(3.33);

For conversions:

  double rads = radians_to_degrees(1.44);
  double degrees = degrees_to_radians(rads);


The angle class is a convenience class that automates storage and angle wrapping for you. It uses by default, radians (which any good engineer/mathematician should default to!). Take this into consideration if using it where speed is of the essence. That is, don't use Angle and then do all your calculations in degrees - there will be alot of copying!

  Angle<double> a(3.33); // automatically wraps on -pi:pi 
  double degrees = a.degrees();
  Angle<double> b = a + 3.24; // again, will automatically wrap the answer.
  Angle<double>::RotationMatrix matrix = a.rotationMatrix(); // currently using a 2d eigen matrix.


Author(s): Daniel Stonier (
autogenerated on Thu Jan 2 2014 11:13:11