Deleting Connectable from the connectables vector is resulting in segfault.
This commit is contained in:
+7
-14
@@ -223,19 +223,9 @@ namespace VISEQ::GRAPH {
|
||||
}
|
||||
|
||||
void removeEdges(){
|
||||
|
||||
for(auto edge : remove_edges){
|
||||
edge->start_conn->partner.reset();
|
||||
std::cout << "connectors size: " << edge->start->connectors.size() << std::endl;
|
||||
std::cout << "use count: " << edge->start_conn.use_count() << std::endl;
|
||||
edge->start_conn.reset();
|
||||
edge->end_conn.reset();
|
||||
std::cout << "connectors size: " << edge->start->connectors.size() << std::endl;
|
||||
std::cout << "use count: " << edge->start_conn.use_count() << std::endl;
|
||||
std::erase(edge->start->connectors, edge->start_conn);
|
||||
std::erase(edge->end->connectors, edge->end_conn);
|
||||
std::cout << "connectors size: " << edge->start->connectors.size() << std::endl;
|
||||
std::cout << "use count: " << edge->start_conn.use_count() << std::endl;
|
||||
// edge->start->removeConnector(edge->start_conn);
|
||||
// edge->end->removeConnector(edge->end_conn);
|
||||
std::erase(edge->start->connections, edge);
|
||||
std::erase(edge->end->connections, edge);
|
||||
std::erase(edges, edge);
|
||||
@@ -310,10 +300,13 @@ namespace VISEQ::GRAPH {
|
||||
}
|
||||
std::ranges::copy(copy_connections.begin(), copy_connections.end(), std::back_inserter(edges));
|
||||
}
|
||||
|
||||
void drawEdges(Vec2Df mouse_pos, Camera2D cam){
|
||||
|
||||
void update(){
|
||||
if(!remove_edges.empty()) removeEdges();
|
||||
if(!split_edges.empty()) splitEdges();
|
||||
}
|
||||
|
||||
void drawEdges(Vec2Df mouse_pos, Camera2D cam){
|
||||
for(auto c : edges){
|
||||
Vec2Df v1_position = c->start->position - ((c->start->position - c->end->position)).norm() * (c->start->radius + c->connector_offset);
|
||||
Vec2Df v2_position = c->end->position - ((c->end->position - c->start->position)).norm() * (c->end->radius + c->connector_offset);
|
||||
|
||||
Reference in New Issue
Block a user