#include <vector>
+#include <osg/Array>
#include <osg/BoundingBox>
#include <osg/CopyOp>
#include <osg/Drawable>
#include <osg/Vec3>
#include <osg/Vec4>
-#include "TreeBin.hxx"
-
namespace simgear
{
-class ShaderGeometry : public osg::Geometry
+class ShaderGeometry : public osg::Drawable
{
public:
ShaderGeometry() :
varieties(1)
- {
+ {
+ setSupportsDisplayList(false);
}
ShaderGeometry(int v) :
varieties(v)
- {
+ {
+ setSupportsDisplayList(false);
}
/** Copy constructor using CopyOp to manage deep vs shallow copy.*/
ShaderGeometry(const ShaderGeometry& ShaderGeometry,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY):
- osg::Geometry(ShaderGeometry,copyop) {}
+ osg::Drawable(ShaderGeometry,copyop) {}
META_Object(flightgear, ShaderGeometry);
-
+
+ virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
virtual osg::BoundingBox computeBound() const;
void setGeometry(osg::Geometry* geometry)
_geometry = geometry;
}
- void addTree(const TreeBin::Tree& tree);
+ void addObject(const osg::Vec3& position, float scale, int texture_index);
osg::ref_ptr<osg::Geometry> _geometry;
int varieties;
+ osg::ref_ptr<osg::Vec4Array> _posScaleArray;
+ osg::ref_ptr<osg::FloatArray> _vertexAttribArray;
protected:
virtual ~ShaderGeometry() {}
-
};
}