/* Private Member Functions */
	void ObjectMenu::object_Erased(Menu *sender, PhysicsObject *obj)
	{
		if(erased != NULL)
		{
			erased(this, obj);
		}
	}
	/* Private Member Functions */
	void WheelMenu::erase_Clicked(UIElement *sender)
	{
		if(erased != NULL)
		{
			erased(this, wheel);
		}

		assert(wheel);
		wheel->setIsMarkedForDelete(true);
		wheel = NULL;
	}
SingletonFactory::~SingletonFactory() {
    uint64_t size = singletonGraph.size();
    std::vector<bool> erased(size);
    std::fill(erased.begin(), erased.end(), 0);
    for (size_t i = 0; i < size; i++) {
        if (erased[i] == false) {
            bfsDelete(erased, singletonGraph[i]);
        }
    }
    fflush(stdout);
}