SGStateAttributeVisitor.hxx \
SGTextureStateAttributeVisitor.hxx
-libsgutil_a_SOURCES =
+libsgutil_a_SOURCES = \
+ SGStateAttributeVisitor.cxx \
+ SGTextureStateAttributeVisitor.cxx
INCLUDES = -I$(top_srcdir)
--- /dev/null
+/* -*-c++-*-
+ *
+ * Copyright (C) 2006 Mathias Froehlich
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ */
+
+#include "SGStateAttributeVisitor.hxx"
+
+SGStateAttributeVisitor::SGStateAttributeVisitor() :
+ osg::NodeVisitor(osg::NodeVisitor::NODE_VISITOR,
+ osg::NodeVisitor::TRAVERSE_ALL_CHILDREN)
+{
+}
+
+void
+SGStateAttributeVisitor::apply(osg::StateSet::RefAttributePair&)
+{
+}
+
+void
+SGStateAttributeVisitor::apply(osg::StateSet::AttributeList& attrList)
+{
+ osg::StateSet::AttributeList::iterator i;
+ i = attrList.begin();
+ while (i != attrList.end()) {
+ apply(i->second);
+ ++i;
+ }
+}
+
+void
+SGStateAttributeVisitor::apply(osg::StateSet* stateSet)
+{
+ if (!stateSet)
+ return;
+ apply(stateSet->getAttributeList());
+}
+
+void
+SGStateAttributeVisitor::apply(osg::Node& node)
+{
+ apply(node.getStateSet());
+ traverse(node);
+}
+
+void
+SGStateAttributeVisitor::apply(osg::Geode& node)
+{
+ unsigned nDrawables = node.getNumDrawables();
+ for (unsigned i = 0; i < nDrawables; ++i)
+ apply(node.getDrawable(i)->getStateSet());
+ apply(node.getStateSet());
+ traverse(node);
+}
#ifndef SG_SCENE_STATEATTRIBUTEVISITOR_HXX
#define SG_SCENE_STATEATTRIBUTEVISITOR_HXX
+#include <osg/Geode>
+#include <osg/Node>
+#include <osg/NodeVisitor>
+#include <osg/StateSet>
+
class SGStateAttributeVisitor : public osg::NodeVisitor {
public:
- SGStateAttributeVisitor() :
- osg::NodeVisitor(osg::NodeVisitor::NODE_VISITOR,
- osg::NodeVisitor::TRAVERSE_ALL_CHILDREN)
- { }
-
- virtual void apply(osg::StateSet::RefAttributePair&)
- { }
- virtual void apply(osg::StateSet::AttributeList& attrList)
- {
- osg::StateSet::AttributeList::iterator i;
- i = attrList.begin();
- while (i != attrList.end()) {
- apply(i->second);
- ++i;
- }
- }
- virtual void apply(osg::StateSet* stateSet)
- {
- if (!stateSet)
- return;
- apply(stateSet->getAttributeList());
- }
-
- virtual void apply(osg::Node& node)
- {
- apply(node.getStateSet());
- traverse(node);
- }
- virtual void apply(osg::Geode& node)
- {
- unsigned nDrawables = node.getNumDrawables();
- for (unsigned i = 0; i < nDrawables; ++i)
- apply(node.getDrawable(i)->getStateSet());
- apply(node.getStateSet());
- traverse(node);
- }
+ SGStateAttributeVisitor();
+ virtual void apply(osg::StateSet::RefAttributePair&);
+ virtual void apply(osg::StateSet::AttributeList& attrList);
+ virtual void apply(osg::StateSet* stateSet);
+ virtual void apply(osg::Node& node);
+ virtual void apply(osg::Geode& node);
};
#endif
--- /dev/null
+/* -*-c++-*-
+ *
+ * Copyright (C) 2006 Mathias Froehlich
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ */
+
+#include "SGTextureStateAttributeVisitor.hxx"
+
+SGTextureStateAttributeVisitor::SGTextureStateAttributeVisitor() :
+ osg::NodeVisitor(osg::NodeVisitor::NODE_VISITOR,
+ osg::NodeVisitor::TRAVERSE_ALL_CHILDREN)
+{
+}
+
+void
+SGTextureStateAttributeVisitor::apply(int textureUnit, osg::StateSet::RefAttributePair& refAttr)
+{
+}
+
+void
+SGTextureStateAttributeVisitor::apply(int textureUnit, osg::StateSet::AttributeList& attrList)
+{
+ osg::StateSet::AttributeList::iterator i;
+ i = attrList.begin();
+ while (i != attrList.end()) {
+ apply(textureUnit, i->second);
+ ++i;
+ }
+}
+
+void
+SGTextureStateAttributeVisitor::apply(osg::StateSet::TextureAttributeList& attrList)
+{
+ for (unsigned i = 0; i < attrList.size(); ++i)
+ apply(i, attrList[i]);
+}
+
+void
+SGTextureStateAttributeVisitor::apply(osg::StateSet* stateSet)
+{
+ if (!stateSet)
+ return;
+ apply(stateSet->getTextureAttributeList());
+}
+
+void
+SGTextureStateAttributeVisitor::apply(osg::Node& node)
+{
+ apply(node.getStateSet());
+ traverse(node);
+}
+
+void
+SGTextureStateAttributeVisitor::apply(osg::Geode& node)
+{
+ unsigned nDrawables = node.getNumDrawables();
+ for (unsigned i = 0; i < nDrawables; ++i)
+ apply(node.getDrawable(i)->getStateSet());
+ apply(node.getStateSet());
+ traverse(node);
+}
#ifndef SG_SCENE_TEXTURESTATEATTRIBUTEVISITOR_HXX
#define SG_SCENE_TEXTURESTATEATTRIBUTEVISITOR_HXX
+#include <osg/Geode>
+#include <osg/Node>
+#include <osg/NodeVisitor>
+#include <osg/StateSet>
+
class SGTextureStateAttributeVisitor : public osg::NodeVisitor {
public:
- SGTextureStateAttributeVisitor() :
- osg::NodeVisitor(osg::NodeVisitor::NODE_VISITOR,
- osg::NodeVisitor::TRAVERSE_ALL_CHILDREN)
- { }
-
- virtual void apply(int textureUnit, osg::StateSet::RefAttributePair& refAttr)
- { }
- virtual void apply(int textureUnit, osg::StateSet::AttributeList& attrList)
- {
- osg::StateSet::AttributeList::iterator i;
- i = attrList.begin();
- while (i != attrList.end()) {
- apply(textureUnit, i->second);
- ++i;
- }
- }
- virtual void apply(osg::StateSet::TextureAttributeList& attrList)
- {
- for (unsigned i = 0; i < attrList.size(); ++i)
- apply(i, attrList[i]);
- }
- virtual void apply(osg::StateSet* stateSet)
- {
- if (!stateSet)
- return;
- apply(stateSet->getTextureAttributeList());
- }
+ SGTextureStateAttributeVisitor();
- virtual void apply(osg::Node& node)
- {
- apply(node.getStateSet());
- traverse(node);
- }
- virtual void apply(osg::Geode& node)
- {
- unsigned nDrawables = node.getNumDrawables();
- for (unsigned i = 0; i < nDrawables; ++i)
- apply(node.getDrawable(i)->getStateSet());
- apply(node.getStateSet());
- traverse(node);
- }
+ virtual void apply(int textureUnit, osg::StateSet::RefAttributePair& refAttr);
+ virtual void apply(int textureUnit, osg::StateSet::AttributeList& attrList);
+ virtual void apply(osg::StateSet::TextureAttributeList& attrList);
+ virtual void apply(osg::StateSet* stateSet);
+ virtual void apply(osg::Node& node);
+ virtual void apply(osg::Geode& node);
};
#endif