Beispiel #1
0
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);
		}
	}
}
Beispiel #2
0
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;
	}
}
Beispiel #4
0
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);
			}
		}
	}
}