void OutdatedDataDeleter::visit(GeometricNode* node){ Timer timer; TimeStamp maxDuration(5, Units::Second); TimeStamp now(timer.getCurrentTime(), Units::MilliSecond); if (enableGeometricNodeDeletions) { if (now > (node->getTimeStamp() + maxDuration)) { doDeleteNode(node); } } }
bool IGraph::deleteNode(int first, int last, int user) { if (size() <= 0) return false; if (!nodeExist(first, last, user)) return false; return doDeleteNode(first, last, user); }
void SceneGraphROSListener::handleSceneGraphUpdate(const brics_3d_msgs::SceneGraphUpdate& update) { switch (update.command) { case brics_3d_msgs::SceneGraphUpdate::ADD_NODE: doAddNode(update); break; case brics_3d_msgs::SceneGraphUpdate::ADD_GROUP: doAddGroup(update); break; case brics_3d_msgs::SceneGraphUpdate::ADD_TRANSFORM_NODE: doAddTransformNode(update); break; case brics_3d_msgs::SceneGraphUpdate::ADD_GEOMETRIC_NODE: doAddGeometricNode(update); break; case brics_3d_msgs::SceneGraphUpdate::SET_NOTE_ATTRIBUTES: doSetNodeAttributes(update); break; case brics_3d_msgs::SceneGraphUpdate::SET_TRANSFORM: doSetTransform(update); break; case brics_3d_msgs::SceneGraphUpdate::DELETE_NOTE: doDeleteNode(update); break; case brics_3d_msgs::SceneGraphUpdate::ADD_PARENT: doAddParent(update); break; case brics_3d_msgs::SceneGraphUpdate::REMOVE_PARENT: doRemoveParent(update); break; default: LOG(ERROR) << "SceneGraphROSListener: undefined command type in incoming update message."; break; } }
void OutdatedDataDeleter::visit(Transform* node){ if (enableTransformDeletions) { bool isStaticTransform = false; Attribute staticTransformTag("transformType","static"); isStaticTransform = attributeListContainsAttribute(node->getAttributes(), staticTransformTag); if(!isStaticTransform) { if (performAutomaticHistoryUpdates) { /* optionally update history/cache */ node->deleteOutdatedTransforms(TimeStamp(timer.getCurrentTime())); } /* check if node is outdated */ if (node->getCurrentHistoryLenght() < minHistoryLength) { doDeleteNode(node); } } } }