1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#ifndef ADDTOLAYERWALKER_H_
#define ADDTOLAYERWALKER_H_
#include "iselection.h"
#include "ientity.h"
#include "ilayer.h"
namespace scene {
class AddToLayerWalker :
public selection::SelectionSystem::Visitor,
public NodeVisitor
{
int _layer;
public:
AddToLayerWalker(int layer) :
_layer(layer)
{}
void visit(const scene::INodePtr& node) const {
node->addToLayer(_layer);
if (Node_isEntity(node)) {
// We have an entity, traverse all children too
node->traverseChildren(const_cast<AddToLayerWalker&>(*this));
}
}
// scene::NodeVisitor
bool pre(const scene::INodePtr& node) {
node->addToLayer(_layer);
return true;
}
};
} // namespace scene
#endif /* ADDTOLAYERWALKER_H_ */
|