]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/material/EffectCullVisitor.hxx
Random buildings - initial commit.
[simgear.git] / simgear / scene / material / EffectCullVisitor.hxx
index fa752c8f2cc784de4599e71f381a97fa817fb895..c4d3c6300ad3181d80028afbffe2265d1a5662af 100644 (file)
 
 #include <osgUtil/CullVisitor>
 
+#include <map>
+
 namespace osg
 {
 class Geode;
+class Texture2D;
 }
 
 namespace simgear
 {
+class EffectGeode;
 class EffectCullVisitor : public osgUtil::CullVisitor
 {
 public:
-    EffectCullVisitor();
+    EffectCullVisitor(bool collectLights = false);
     EffectCullVisitor(const EffectCullVisitor&);
     virtual osgUtil::CullVisitor* clone() const;
     using osgUtil::CullVisitor::apply;
     virtual void apply(osg::Geode& node);
+    virtual void reset();
+
+    void clearBufferList();
+    void addBuffer(int i, osg::Texture2D* tex);
+    osg::Texture2D* getBuffer(int i);
+
+private:
+    std::map<int,osg::ref_ptr<osg::Texture2D> > _bufferList;
+    std::vector<osg::ref_ptr<EffectGeode> > _lightList;
+    bool _collectLights;
 };
 }
 #endif