Made accessor for lines

This commit is contained in:
2024-10-02 20:49:41 +03:00
parent 521ae37202
commit 794857209d
10 changed files with 417 additions and 308 deletions

View File

@@ -25,6 +25,8 @@ public:
const Dictionary &from);
Dictionary to_dict() const;
};
private:
struct line_segment {
Vector3 p1;
Vector3 p2;
@@ -33,6 +35,8 @@ public:
Vector3 tangent;
float offset;
};
public:
struct road_line {
std::vector<Transform> points;
std::vector<int> indices;
@@ -44,14 +48,28 @@ public:
Dictionary metadata;
_Signal<void> line_updated;
};
public:
static ImmediateGeometry *get_debug_node();
HashMap<String, struct road_line> lines;
private:
HashMap<String, Ref<Curve3D> > curves;
public:
const struct road_line &get_line(const String &key) const;
struct road_line &get_line(const String &key);
const struct road_line &lines(const String &key) const;
struct road_line &lines(const String &key);
bool has_line(const String &key);
static RoadLinesData *get_singleton();
virtual ~RoadLinesData();
static void cleanup();
String get_road_lines_path();
void get_road_lines_key_list(List<String> *keys);
void get_lines_key_list(List<String> *keys);
const String &get_next_line(const String &key);
void erase_line(const String &key);
void load_data();
void save_data();
void process_lines(std::unordered_map<uint32_t, std::vector<Vector3> >