diff --git a/include/osg/NodeVisitor b/include/osg/NodeVisitor index 682287ca0..db6d27747 100644 --- a/include/osg/NodeVisitor +++ b/include/osg/NodeVisitor @@ -345,12 +345,21 @@ class OSG_EXPORT NodeVisitor : public virtual Referenced /** Convenience functor for assisting visiting of arrays of osg::Node's.*/ -struct NodeAcceptOp +class NodeAcceptOp { - NodeVisitor& _nv; - NodeAcceptOp(NodeVisitor& nv):_nv(nv) {} - void operator () (Node* node) { node->accept(_nv); } - void operator () (ref_ptr node) { node->accept(_nv); } + public: + + NodeAcceptOp(NodeVisitor& nv):_nv(nv) {} + NodeAcceptOp(const NodeAcceptOp& naop):_nv(naop._nv) {} + + void operator () (Node* node) { node->accept(_nv); } + void operator () (ref_ptr node) { node->accept(_nv); } + + protected: + + NodeAcceptOp& operator = (const NodeVisitor&) { return *this; } + + NodeVisitor& _nv; }; }