angles.h File Reference

`#include <algorithm>`

`#include <cmath>`

Include dependency graph for angles.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Namespaces | |

angles | |

## Functions | |

static bool | angles::find_min_max_delta (double from, double left_limit, double right_limit, double &result_min_delta, double &result_max_delta) |

This function is only intended for internal use and not intended for external use. If you do use it, read the documentation very carefully. Returns the min and max amount (in radians) that can be moved from "from" angle to "left_limit" and "right_limit". More... | |

static double | angles::from_degrees (double degrees) |

Convert degrees to radians. More... | |

static double | angles::normalize_angle (double angle) |

normalize More... | |

static double | angles::normalize_angle_positive (double angle) |

normalize_angle_positive More... | |

static double | angles::shortest_angular_distance (double from, double to) |

shortest_angular_distance More... | |

static bool | angles::shortest_angular_distance_with_large_limits (double from, double to, double left_limit, double right_limit, double &shortest_angle) |

Returns the delta from `from_angle` to `to_angle` , making sure it does not violate limits specified by `left_limit` and `right_limit` . This function is similar to `shortest_angular_distance_with_limits()` , with the main difference that it accepts limits outside the `[-M_PI, M_PI]` range. Even if this is quite uncommon, one could indeed consider revolute joints with large rotation limits, e.g., in the range `[-2*M_PI, 2*M_PI]` . More... | |

static bool | angles::shortest_angular_distance_with_limits (double from, double to, double left_limit, double right_limit, double &shortest_angle) |

Returns the delta from "from_angle" to "to_angle" making sure it does not violate limits specified by left_limit and right_limit. The valid interval of angular positions is [left_limit,right_limit]. E.g., [-0.25,0.25] is a 0.5 radians wide interval that contains 0. But [0.25,-0.25] is a 2*M_PI-0.5 wide interval that contains M_PI (but not 0). The value of shortest_angle is the angular difference between "from" and "to" that lies within the defined valid interval. E.g. shortest_angular_distance_with_limits(-0.5,0.5,0.25,-0.25,ss) evaluates ss to 2*M_PI-1.0 and returns true while shortest_angular_distance_with_limits(-0.5,0.5,-0.25,0.25,ss) returns false since -0.5 and 0.5 do not lie in the interval [-0.25,0.25]. More... | |

static double | angles::to_degrees (double radians) |

Convert radians to degrees. More... | |

static double | angles::two_pi_complement (double angle) |

returns the angle in [-2*M_PI, 2*M_PI] going the other way along the unit circle. More... | |