bool pre(const scene::INodePtr& node) { if (node->visible()) { Brush* brush = Node_getBrush(node); if (brush != NULL && brush->hasShader(_name)) { Node_setSelected(node, true); return false; // don't traverse brushes } // not a suitable brush, traverse further return true; } else { return false; // don't traverse invisible nodes } }