void AuthoringManager::displaySimpleEntityVisualization(EmberEntity& entity) { if (!mSimpleVisualizations.count(&entity)) { Ogre::SceneNode* node = mWorld.getScene().getSceneManager().getRootSceneNode()->createChildSceneNode(); SimpleEntityVisualization* vis(0); try { vis = new SimpleEntityVisualization(entity, node); } catch (const std::exception& ex) { //just delete the node and return node->getCreator()->destroySceneNode(node); return; } sigc::connection conn = entity.BeingDeleted.connect([&]() {hideSimpleEntityVisualization(entity); }); mSimpleVisualizations.insert(SimpleEntityVisualizationStore::value_type(&entity, std::make_pair(vis, conn))); } }
void AuthoringManager::simpleEntityVisualizationBeingDeleted(EmberEntity* entity) { hideSimpleEntityVisualization(*entity); }