Horizon
geom_util.hpp
1 #pragma once
2 #include <string>
3 #include "common/common.hpp"
4 
5 namespace horizon {
6 
7 template <typename T> std::pair<Coord<T>, Coord<T>> pad_bbox(std::pair<Coord<T>, Coord<T>> bb, T pad)
8 {
9  bb.first.x -= pad;
10  bb.first.y -= pad;
11 
12  bb.second.x += pad;
13  bb.second.y += pad;
14  return bb;
15 }
16 Coordd project_onto_perp_bisector(const Coordd &a, const Coordd &b, const Coordd &p);
17 
18 std::string coord_to_string(const Coordf &c, bool delta = false);
19 std::string dim_to_string(int64_t x, bool with_sign = true);
20 std::string angle_to_string(int angle, bool pos_only = true);
21 int orientation_to_angle(Orientation o);
22 int64_t round_multiple(int64_t x, int64_t mul);
23 
24 template <typename T> int sgn(T val)
25 {
26  return (T(0) < val) - (val < T(0));
27 }
28 
29 double angle_to_rad(int angle);
30 int angle_from_rad(double rad);
31 int wrap_angle(int angle);
32 float c2pi(float x);
33 } // namespace horizon
zip_int64_t int64_t
zip_int64_t typedef.
Definition: zip.hpp:103