575{
576 mutex.lock();
577
578 if (nodes.find(node->_id.Get()) != nodes.end())
579 {
580#ifdef TERR3D_WIN32
581 using namespace std::chrono_literals;
582 std::this_thread::sleep_for(500ms);
583#endif
584 node->OnDelete();
585 std::vector<NodeEditorPin *> mPins = node->GetPins();
586
588 {
589 if (pin->IsLinked())
590 {
591 links.erase(links.find(pin->link->_id.Get()));
592 pin->other->Unlink();
593 delete pin->link;
594 }
595
596 pins.erase(pins.find(pin->_id.Get()));
597 delete pin;
598 }
599
600 nodes.erase(nodes.find(node->_id.Get()));
601 delete node;
602 }
603
604 mutex.unlock();
605}