forked from pageldev/libOpenDRIVE
-
Notifications
You must be signed in to change notification settings - Fork 1
/
RefLine.h
37 lines (26 loc) · 855 Bytes
/
RefLine.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once
#include "Geometries/CubicSpline.h"
#include "Geometries/RoadGeometry.h"
#include "Math.hpp"
#include <map>
#include <memory>
namespace odr
{
struct RoadGeometry;
struct RefLine
{
RefLine(double length);
virtual ~RefLine() = default;
ConstRoadGeometrySet get_geometries() const;
RoadGeometrySet get_geometries();
std::shared_ptr<const RoadGeometry> get_geometry(double s) const;
Vec3D get_xyz(double s) const;
Vec3D get_grad(double s) const;
Line3D get_line(double s_start, double s_end, double eps) const;
double match(double x, double y) const;
std::set<double> approximate_linear(double eps, double s_start, double s_end) const;
double length = 0;
CubicSpline elevation_profile;
std::map<double, std::shared_ptr<RoadGeometry>> s0_to_geometry;
};
} // namespace odr