rebuilding roads done, closes #20
This commit is contained in:
@@ -56,6 +56,7 @@ struct RoadLinesProcessing {
|
||||
int i;
|
||||
List<String> keys;
|
||||
RoadLinesData *rld = RoadLinesData::get_singleton();
|
||||
edges.clear();
|
||||
rld->get_road_lines_key_list(&keys);
|
||||
List<String>::Element *e = keys.front();
|
||||
while (e) {
|
||||
@@ -184,7 +185,7 @@ struct RoadLinesProcessing {
|
||||
singleton = nullptr;
|
||||
}
|
||||
}
|
||||
void road_setup(Node *base)
|
||||
void road_setup()
|
||||
{
|
||||
RoadLinesData *rld = RoadLinesData::get_singleton();
|
||||
std::vector<Vector3> road_lines_nodes;
|
||||
@@ -195,6 +196,7 @@ struct RoadLinesProcessing {
|
||||
rld->process_lines(road_lines_nodes_hash, road_lines_nodes);
|
||||
create_nodes(road_lines_nodes);
|
||||
create_edges();
|
||||
wedges.clear();
|
||||
build_wedges(wedges);
|
||||
print_line("ROAD SETUP DONE");
|
||||
}
|
||||
@@ -581,13 +583,18 @@ public:
|
||||
new_mesh->surface_set_name(0, "main");
|
||||
return new_mesh;
|
||||
}
|
||||
void clear_road_meshes()
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < (int)nodes_mi.size(); i++)
|
||||
nodes_mi[i]->queue_delete();
|
||||
nodes_mi.clear();
|
||||
}
|
||||
void create_road_meshes(Node *base)
|
||||
{
|
||||
int i;
|
||||
RoadLinesProcessing *r = RoadLinesProcessing::get_singleton();
|
||||
for (i = 0; i < (int)nodes_mi.size(); i++)
|
||||
nodes_mi[i]->queue_delete();
|
||||
nodes_mi.clear();
|
||||
clear_road_meshes();
|
||||
for (i = 0; i < (int)r->nodes.size(); i++) {
|
||||
Ref<ArrayMesh> mesh =
|
||||
build_road(r->wedges[i], "common/center",
|
||||
@@ -625,10 +632,15 @@ RoadMeshProcessing *RoadMeshProcessing::singleton;
|
||||
|
||||
void RoadProcessing::road_setup(Node *target)
|
||||
{
|
||||
RoadLinesProcessing::get_singleton()->road_setup(target);
|
||||
RoadLinesProcessing::get_singleton()->road_setup();
|
||||
RoadMeshProcessing::get_singleton()->create_road_meshes(target);
|
||||
}
|
||||
|
||||
void RoadProcessing::remove_road_meshes(Node *target)
|
||||
{
|
||||
RoadMeshProcessing::get_singleton()->clear_road_meshes();
|
||||
}
|
||||
|
||||
void RoadProcessing::load_data()
|
||||
{
|
||||
/* Not needed but still */
|
||||
|
||||
Reference in New Issue
Block a user