コード例 #1
0
ファイル: EmberEntity.cpp プロジェクト: Laefy/ember
void EmberEntity::accept(IEntityVisitor& visitor)
{
	visitor.visit(*this);
	for (unsigned int i = 0; i < numContained(); ++i) {
		EmberEntity* entity = getEmberContained(i);
		if (entity) {
			entity->accept(visitor);
		}
	}
}
コード例 #2
0
ファイル: EmberEntity.cpp プロジェクト: Laefy/ember
void EmberEntity::reattachChildren()
{
	for (unsigned int i = 0; i < numContained(); ++i) {
		EmberEntity* entity = getEmberContained(i);
		if (entity) {
			entity->updateAttachment();
			entity->reattachChildren();
		}
	}
}
コード例 #3
0
ファイル: EmberEntity.cpp プロジェクト: junrw/ember-gsoc2012
void EmberEntity::reattachChildren()
{
  for (unsigned int i = 0; i < numContained(); ++i) {
    EmberEntity* entity = getEmberContained(i);
    if (entity) {
      entity->onLocationChanged(entity->getEmberLocation());
      entity->reattachChildren();
    }
  }
}
コード例 #4
0
ファイル: EmberEntity.cpp プロジェクト: Laefy/ember
void EmberEntity::accept(std::function<bool(const EmberEntity&)>& visitor) const
{
	if (visitor(*this)) {
		for (unsigned int i = 0; i < numContained(); ++i) {
			EmberEntity* entity = getEmberContained(i);
			if (entity) {
				entity->accept(visitor);
			}
		}
	}
}
コード例 #5
0
ファイル: EmberEntity.cpp プロジェクト: Laefy/ember
EmberEntity* EmberEntity::getAttachedEntity(const std::string& namedPoint)
{
	//HACK: this is just a temporary solution
	if (hasAttr(namedPoint)) {
		const Atlas::Message::Element& idElement = valueOfAttr(namedPoint);
		std::string id;
		if (Eris::Entity::extractEntityId(idElement, id)) {
			for (unsigned int i = 0; i < numContained(); ++i) {
				EmberEntity* entity = getEmberContained(i);
				if (entity && entity->getId() == id) {
					return entity;
				}
			}
		}
	}

	return 0;
}