Updates to the Geometry to add more access methods, and updates to Optimizer

to add the new merge primtives option.
This commit is contained in:
Robert Osfield
2002-07-19 14:19:49 +00:00
parent d8d0ac60a7
commit 7682e32521
3 changed files with 15 additions and 34 deletions

View File

@@ -77,6 +77,10 @@ class SG_EXPORT Geometry : public Drawable
PrimitiveList& getPrimitiveList() { return _primitives; }
const PrimitiveList& getPrimitiveList() const { return _primitives; }
unsigned int getNumPrimitives() const { return _primitives.size(); }
Primitive* getPrimitive(unsigned int pos) { return _primitives[pos].get(); }
const Primitive* getPrimitive(unsigned int pos) const { return _primitives[pos].get(); }
void addPrimitive(Primitive* primitive) { if (primitive) _primitives.push_back(primitive); dirtyDisplayList(); }

View File

@@ -329,8 +329,15 @@ class OSGUTIL_EXPORT Optimizer
virtual void apply(osg::Billboard&) { /* don't do anything*/ }
static bool mergeGeode(osg::Geode& geode);
static bool mergeGeometry(osg::Geometry& lhs,osg::Geometry& rhs);
static bool mergePrimitive(osg::DrawArrays& lhs,osg::DrawArrays& rhs);
static bool mergePrimitive(osg::DrawArrayLengths& lhs,osg::DrawArrayLengths& rhs);
static bool mergePrimitive(osg::DrawElementsUByte& lhs,osg::DrawElementsUByte& rhs);
static bool mergePrimitive(osg::DrawElementsUShort& lhs,osg::DrawElementsUShort& rhs);
static bool mergePrimitive(osg::DrawElementsUInt& lhs,osg::DrawElementsUInt& rhs);
};
};