Refactoring of lines handling
This commit is contained in:
48
src/modules/stream/road_lines_data.h
Normal file
48
src/modules/stream/road_lines_data.h
Normal file
@@ -0,0 +1,48 @@
|
||||
#ifndef ROAD_LINES_DATA_H
|
||||
#define ROAD_LINES_DATA_H
|
||||
class RoadLinesData {
|
||||
String road_lines_path;
|
||||
uint32_t road_lines_hash(const Vector3 &v);
|
||||
|
||||
protected:
|
||||
RoadLinesData();
|
||||
static RoadLinesData *singleton;
|
||||
|
||||
public:
|
||||
struct road_line {
|
||||
std::vector<Transform> points;
|
||||
std::vector<int> indices;
|
||||
int lanes;
|
||||
int pattern;
|
||||
int flags;
|
||||
Dictionary metadata;
|
||||
};
|
||||
HashMap<String, struct road_line> lines;
|
||||
static RoadLinesData *get_singleton();
|
||||
static void cleanup();
|
||||
String get_road_lines_path();
|
||||
void get_road_lines_key_list(List<String> *keys);
|
||||
void save_data();
|
||||
void process_lines(std::unordered_map<uint32_t, std::vector<Vector3> >
|
||||
&road_lines_nodes_hash,
|
||||
std::vector<Vector3> &road_lines_nodes);
|
||||
|
||||
private:
|
||||
void index_lines(std::unordered_map<uint32_t, std::vector<Vector3> >
|
||||
&road_lines_nodes_hash,
|
||||
std::vector<Vector3> &road_lines_nodes);
|
||||
|
||||
void create_segments(const String &road, std::vector<int> &segments);
|
||||
|
||||
void insert_close_points(std::vector<Vector3> &road_lines_nodes);
|
||||
|
||||
void update_road_lines_nodes(std::vector<Vector3> &road_lines_nodes);
|
||||
|
||||
void dump_road_lines(const std::vector<Vector3> &road_lines_nodes);
|
||||
void road_lines_curve_index(
|
||||
struct RoadLinesData::road_line &rline,
|
||||
std::unordered_map<uint32_t, std::vector<Vector3> >
|
||||
&road_lines_nodes_hash,
|
||||
std::vector<Vector3> &road_lines_nodes);
|
||||
};
|
||||
#endif
|
||||
Reference in New Issue
Block a user