26 namespace perception {
31 T x2 = quat[0] * quat[0];
32 T xy = quat[0] * quat[1];
33 T rx = quat[3] * quat[0];
34 T y2 = quat[1] * quat[1];
35 T yz = quat[1] * quat[2];
36 T ry = quat[3] * quat[1];
37 T z2 = quat[2] * quat[2];
38 T zx = quat[2] * quat[0];
39 T rz = quat[3] * quat[2];
40 T r2 = quat[3] * quat[3];
41 R[0] = r2 + x2 - y2 - z2;
42 R[4] = r2 - x2 + y2 - z2;
43 R[8] = r2 - x2 - y2 + z2;
53 float distance_to_boundary);
57 std::numeric_limits<float>::epsilon();
62 std::numeric_limits<float>::epsilon();
85 return VisPoint(x() + other.
x(), y() + other.
y());
89 return VisPoint(x() - other.
x(), y() - other.
y());
95 return VisPoint(x() * scale, y() * scale);
99 return VisPoint(x() / scale, y() / scale);
103 output <<
"(" << p.
x() <<
", " << p.
y() <<
")";
107 inline const float&
x()
const {
return point.
x(); }
109 inline const float&
y()
const {
return point.
y(); }
111 inline float&
x() {
return point.
x(); }
113 inline float&
y() {
return point.
y(); }
116 return x() * other.
x() + y() * other.
y();
120 return x() * other.
y() - y() * other.
x();
132 : start(start), end(end), idx(idx) {}
141 output <<
"Segment: start: " << s.
start <<
", end: " << s.
end 142 <<
", idx: " << s.
idx;
VisPoint operator-(const VisPoint &other) const
Definition: geo_util.h:88
friend std::ostream & operator<<(std::ostream &output, const Segment &s)
Definition: geo_util.h:140
float cross(const VisPoint &other) const
Definition: geo_util.h:119
VisPoint operator/(float scale) const
Definition: geo_util.h:98
Segment(const VisPoint &start, const VisPoint &end, int idx=-2)
Definition: geo_util.h:131
const float & y() const
Definition: geo_util.h:109
Orientation compute_orientation(const VisPoint &o, const VisPoint &a, const VisPoint &b)
float dot(const VisPoint &other) const
Definition: geo_util.h:115
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
VisPoint(float x, float y)
Definition: geo_util.h:74
float y
Definition: types.h:70
Definition: pointcloud.h:26
bool operator<(const edge &a, const edge &b)
Definition: segment_graph.h:53
void quaternion_to_rotation_matrix(const T *quat, T *R)
Definition: geo_util.h:30
T abs(const T &x)
Definition: misc.h:48
const float & x() const
Definition: geo_util.h:107
float length_squared() const
Definition: geo_util.h:123
friend std::ostream & operator<<(std::ostream &output, const VisPoint &p)
Definition: geo_util.h:102
int idx
Definition: geo_util.h:147
bool operator!=(Angle< T > lhs, Angle< T > rhs)
Tests two Angle objects for inequality.
Definition: angle.h:266
VisPoint start
Definition: geo_util.h:146
float x
Definition: types.h:69
bool approx_equal(float a, float b)
Definition: geo_util.h:55
VisPoint operator+(const VisPoint &other) const
Definition: geo_util.h:84
float & x()
Definition: geo_util.h:111
Definition: geo_util.h:71
bool strictly_less(float a, float b)
Definition: geo_util.h:60
bool intersects(const VisPoint &ray, const Segment &segment, VisPoint *intersection)
Orientation
Definition: geo_util.h:65
bool is_point_xy_in_polygon2d_xy(const Point &point, const PointCloud &polygon, float distance_to_boundary)
bool operator==(Angle< T > lhs, Angle< T > rhs)
Tests two Angle objects for equality.
Definition: angle.h:255
Eigen::Vector2f Vector2f
Definition: base_map_fwd.h:30
Eigen::Vector2f point
Definition: geo_util.h:125
float & y()
Definition: geo_util.h:113
VisPoint operator*(float scale) const
Definition: geo_util.h:94
Definition: geo_util.h:128
VisPoint operator-() const
Definition: geo_util.h:92
VisPoint(const Eigen::Vector2f &point_)
Definition: geo_util.h:76
VisPoint end
Definition: geo_util.h:146