Drawable
Go to the documentation of this file.
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library 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
* OpenSceneGraph Public License for more details.
*/
#ifndef OSG_DRAWABLE
#define OSG_DRAWABLE 1
#include <osg/BoundingBox>
#include <osg/Shape>
#include <osg/BufferObject>
#include <osg/PrimitiveSet>
#include <osg/RenderInfo>
#include <osg/Group>
#ifndef GL_NV_occlusion_query
#define GL_OCCLUSION_TEST_HP 0x8165
#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
#define GL_PIXEL_COUNTER_BITS_NV 0x8864
#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
#define GL_PIXEL_COUNT_NV 0x8866
#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
#endif
#ifndef GL_ARB_occlusion_query
#define GL_SAMPLES_PASSED_ARB 0x8914
#define GL_QUERY_COUNTER_BITS_ARB 0x8864
#define GL_CURRENT_QUERY_ARB 0x8865
#define GL_QUERY_RESULT_ARB 0x8866
#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
#endif
#ifndef GL_TIME_ELAPSED
#define GL_TIME_ELAPSED 0x88BF
#define GL_TIMESTAMP 0x8E28
#endif
#ifndef GL_QUERY_RESULT
#define GL_QUERY_RESULT 0x8866
#define GL_QUERY_RESULT_AVAILABLE 0x8867
#endif
#define INLINE_DRAWABLE_DRAW
namespace osg {
class Vec2f;
class Vec3f;
class Vec4f;
class Vec4ub;
class Geometry;
class NodeVisitor;
class ArrayDispatchers;
class OSG_EXPORT Drawable : public Node
{
public:
Drawable();
Drawable(const Drawable& drawable,const CopyOp& copyop=CopyOp::SHALLOW_COPY);
META_Node(osg, Drawable);
virtual Drawable* asDrawable() { return this; }
virtual const Drawable* asDrawable() const { return this; }
virtual void computeDataVariance();
MatrixList getWorldMatrices(const osg::Node* haltTraversalAtNode=0) const;
void setInitialBound(const osg::BoundingBox& bbox) { _initialBoundingBox = bbox; dirtyBound(); }
const BoundingBox& getInitialBound() const { return _initialBoundingBox; }
inline const BoundingSphere& getBound() const
{
if(!_boundingSphereComputed) getBoundingBox();
return _boundingSphere;
}
inline const BoundingBox& getBoundingBox() const
{
if(!_boundingSphereComputed)
{
_boundingBox = _initialBoundingBox;
if (_computeBoundingBoxCallback.valid())
_boundingBox.expandBy(_computeBoundingBoxCallback->computeBound(*this));
else
_boundingBox.expandBy(computeBoundingBox());
if(_boundingBox.valid()){
_boundingSphere.set(_boundingBox.center(), _boundingBox.radius());
} else {
_boundingSphere.init();
}
_boundingSphereComputed = true;
}
return _boundingBox;
}
virtual BoundingSphere computeBound() const;
virtual BoundingBox computeBoundingBox() const;
struct ComputeBoundingBoxCallback : public osg::Object
{
ComputeBoundingBoxCallback() {}
ComputeBoundingBoxCallback(const ComputeBoundingBoxCallback& org,const CopyOp& copyop):
Object(org, copyop) {}
META_Object(osg,ComputeBoundingBoxCallback);
virtual BoundingBox computeBound(const osg::Drawable&) const { return BoundingBox(); }
};
void setComputeBoundingBoxCallback(ComputeBoundingBoxCallback* callback) { _computeBoundingBoxCallback = callback; }
ComputeBoundingBoxCallback* getComputeBoundingBoxCallback() { return _computeBoundingBoxCallback.get(); }
const ComputeBoundingBoxCallback* getComputeBoundingBoxCallback() const { return _computeBoundingBoxCallback.get(); }
virtual void setShape(Shape* shape) { _shape = shape; }
template<class T> void setShape(const ref_ptr<T>& shape) { setShape(shape.get()); }
inline Shape* getShape() { return _shape.get(); }
inline const Shape* getShape() const { return _shape.get(); }
void setSupportsDisplayList(bool flag);
inline bool getSupportsDisplayList() const { return _supportsDisplayList; }
void setUseDisplayList(bool flag);
inline bool getUseDisplayList() const { return _useDisplayList; }
inline GLuint& getDisplayList(unsigned int contextID) const { return _globjList[contextID]; }
virtual void setUseVertexBufferObjects(bool flag);
inline bool getUseVertexBufferObjects() const { return _useVertexBufferObjects; }
void setUseVertexArrayObject(bool flag);
bool getUseVertexArrayObject() const { return _useVertexArrayObject; }
#ifdef OSG_USE_DEPRECATED_API
inline void dirtyDisplayList()
{
dirtyGLObjects();
}
#endif
virtual void dirtyGLObjects();
virtual unsigned int getGLObjectSizeHint() const { return 0; }
#ifdef INLINE_DRAWABLE_DRAW
inline void draw(RenderInfo& renderInfo) const;
#else
void draw(RenderInfo& renderInfo) const;
#endif
inline void drawInner(RenderInfo& renderInfo) const
{
if (_drawCallback.valid())
_drawCallback->drawImplementation(renderInfo,this);
else
drawImplementation(renderInfo);
}
virtual void compileGLObjects(RenderInfo& renderInfo) const;
struct CreateVertexArrayStateCallback : public virtual osg::Object
{
CreateVertexArrayStateCallback() {}
CreateVertexArrayStateCallback(const CreateVertexArrayStateCallback& rhs,const CopyOp& copyop):
Object(rhs, copyop) {}
META_Object(osg, CreateVertexArrayStateCallback);
virtual osg::VertexArrayState* createVertexArrayStateImplementation(osg::RenderInfo& renderInfo, const osg::Drawable* drawable) const
{
return drawable->createVertexArrayStateImplementation(renderInfo);
}
};
void setCreateVertexArrayStateCallback(CreateVertexArrayStateCallback* cb) { _createVertexArrayStateCallback = cb; }
CreateVertexArrayStateCallback* getCreateVertexArrayStateCallback() { return _createVertexArrayStateCallback.get(); }
const CreateVertexArrayStateCallback* getCreateVertexArrayStateCallback() const { return _createVertexArrayStateCallback.get(); }
inline VertexArrayState* createVertexArrayState(RenderInfo& renderInfo) const
{
if (_createVertexArrayStateCallback.valid()) return _createVertexArrayStateCallback->createVertexArrayStateImplementation(renderInfo, this);
else return createVertexArrayStateImplementation(renderInfo);
}
virtual VertexArrayState* createVertexArrayStateImplementation(RenderInfo& renderInfo) const;
void setVertexArrayStateList(VertexArrayStateList& vasl) { _vertexArrayStateList = vasl; }
VertexArrayStateList& getVertexArrayStateList() { return _vertexArrayStateList; }
const VertexArrayStateList& getVertexArrayStateList() const { return _vertexArrayStateList; }
virtual void setThreadSafeRefUnref(bool threadSafe);
virtual void resizeGLObjectBuffers(unsigned int maxSize);
virtual void releaseGLObjects(State* state=0) const;
// for backwards compatibility as local implementations are now found in osg namespace within the include/osg/Callback header
typedef DrawableUpdateCallback UpdateCallback;
typedef DrawableEventCallback EventCallback;
typedef DrawableCullCallback CullCallback;
struct DrawCallback : public virtual osg::Object
{
DrawCallback() {}
DrawCallback(const DrawCallback& org,const CopyOp& copyop):
Object(org, copyop) {}
META_Object(osg,DrawCallback);
virtual void drawImplementation(osg::RenderInfo& /*renderInfo*/,const osg::Drawable* /*drawable*/) const {}
};
virtual void setDrawCallback(DrawCallback* dc) { _drawCallback=dc; dirtyGLObjects(); }
DrawCallback* getDrawCallback() { return _drawCallback.get(); }
const DrawCallback* getDrawCallback() const { return _drawCallback.get(); }
virtual void drawImplementation(RenderInfo& /*renderInfo*/) const {}
static GLuint generateDisplayList(unsigned int contextID, unsigned int sizeHint = 0);
static void deleteDisplayList(unsigned int contextID,GLuint globj, unsigned int sizeHint = 0);
static void setMinimumNumberOfDisplayListsToRetainInCache(unsigned int minimum);
static unsigned int getMinimumNumberOfDisplayListsToRetainInCache();
typedef unsigned int AttributeType;
enum AttributeTypes
{
VERTICES = 0,
WEIGHTS = 1,
NORMALS = 2,
COLORS = 3,
SECONDARY_COLORS = 4,
FOG_COORDS = 5,
ATTRIBUTE_6 = 6,
ATTRIBUTE_7 = 7,
TEXTURE_COORDS = 8,
TEXTURE_COORDS_0 = TEXTURE_COORDS,
TEXTURE_COORDS_1 = TEXTURE_COORDS_0+1,
TEXTURE_COORDS_2 = TEXTURE_COORDS_0+2,
TEXTURE_COORDS_3 = TEXTURE_COORDS_0+3,
TEXTURE_COORDS_4 = TEXTURE_COORDS_0+4,
TEXTURE_COORDS_5 = TEXTURE_COORDS_0+5,
TEXTURE_COORDS_6 = TEXTURE_COORDS_0+6,
TEXTURE_COORDS_7 = TEXTURE_COORDS_0+7
// only eight texture coord examples provided here, but underlying code can handle any no of texture units,
// simply co them as (TEXTURE_COORDS_0+unit).
};
class AttributeFunctor
{
public:
virtual ~AttributeFunctor() {}
virtual void apply(AttributeType,unsigned int,GLbyte*) {}
virtual void apply(AttributeType,unsigned int,GLshort*) {}
virtual void apply(AttributeType,unsigned int,GLint*) {}
virtual void apply(AttributeType,unsigned int,GLubyte*) {}
virtual void apply(AttributeType,unsigned int,GLushort*) {}
virtual void apply(AttributeType,unsigned int,GLuint*) {}
virtual void apply(AttributeType,unsigned int,float*) {}
virtual void apply(AttributeType,unsigned int,Vec2*) {}
virtual void apply(AttributeType,unsigned int,Vec3*) {}
virtual void apply(AttributeType,unsigned int,Vec4*) {}
virtual void apply(AttributeType,unsigned int,Vec4ub*) {}
virtual void apply(AttributeType,unsigned int,double*) {}
virtual void apply(AttributeType,unsigned int,Vec2d*) {}
virtual void apply(AttributeType,unsigned int,Vec3d*) {}
virtual void apply(AttributeType,unsigned int,Vec4d*) {}
};
virtual bool supports(const AttributeFunctor&) const { return false; }
virtual void accept(AttributeFunctor&) {}
class ConstAttributeFunctor
{
public:
virtual ~ConstAttributeFunctor() {}
virtual void apply(AttributeType,unsigned int,const GLbyte*) {}
virtual void apply(AttributeType,unsigned int,const GLshort*) {}
virtual void apply(AttributeType,unsigned int,const GLint*) {}
virtual void apply(AttributeType,unsigned int,const GLubyte*) {}
virtual void apply(AttributeType,unsigned int,const GLushort*) {}
virtual void apply(AttributeType,unsigned int,const GLuint*) {}
virtual void apply(AttributeType,unsigned int,const float*) {}
virtual void apply(AttributeType,unsigned int,const Vec2*) {}
virtual void apply(AttributeType,unsigned int,const Vec3*) {}
virtual void apply(AttributeType,unsigned int,const Vec4*) {}
virtual void apply(AttributeType,unsigned int,const Vec4ub*) {}
virtual void apply(AttributeType,unsigned int,const double*) {}
virtual void apply(AttributeType,unsigned int,const Vec2d*) {}
virtual void apply(AttributeType,unsigned int,const Vec3d*) {}
virtual void apply(AttributeType,unsigned int,const Vec4d*) {}
};
virtual bool supports(const ConstAttributeFunctor&) const { return false; }
virtual void accept(ConstAttributeFunctor&) const {}
virtual bool supports(const PrimitiveFunctor&) const { return false; }
virtual void accept(PrimitiveFunctor&) const {}
virtual bool supports(const PrimitiveIndexFunctor&) const { return false; }
virtual void accept(PrimitiveIndexFunctor&) const {}
protected:
Drawable& operator = (const Drawable&) { return *this;}
virtual ~Drawable();
void setBound(const BoundingBox& bb) const;
friend class Node;
friend class Geode;
friend class StateSet;
BoundingBox _initialBoundingBox;
ref_ptr<ComputeBoundingBoxCallback> _computeBoundingBoxCallback;
mutable BoundingBox _boundingBox;
ref_ptr<Shape> _shape;
bool _supportsDisplayList;
bool _useDisplayList;
bool _supportsVertexBufferObjects;
bool _useVertexBufferObjects;
bool _useVertexArrayObject;
typedef osg::buffered_value<GLuint> GLObjectList;
mutable GLObjectList _globjList;
mutable VertexArrayStateList _vertexArrayStateList;
ref_ptr<DrawCallback> _drawCallback;
ref_ptr<CreateVertexArrayStateCallback> _createVertexArrayStateCallback;
};
#ifdef INLINE_DRAWABLE_DRAW
inline void Drawable::draw(RenderInfo& renderInfo) const
{
State& state = *renderInfo.getState();
bool useVertexArrayObject = state.useVertexArrayObject(_useVertexArrayObject);
if (useVertexArrayObject)
{
unsigned int contextID = renderInfo.getContextID();
VertexArrayState* vas = _vertexArrayStateList[contextID].get();
if (!vas)
{
_vertexArrayStateList[contextID] = vas = createVertexArrayState(renderInfo);
}
else
{
// vas->setRequiresSetArrays(getDataVariance()==osg::Object::DYNAMIC);
}
State::SetCurrentVertexArrayStateProxy setVASProxy(state, vas);
state.bindVertexArrayObject(vas);
drawInner(renderInfo);
vas->setRequiresSetArrays(getDataVariance()==osg::Object::DYNAMIC);
return;
}
// TODO, add check against whether VAO is active and supported
if (state.getCurrentVertexArrayState())
{
//OSG_NOTICE<<"state.getCurrentVertexArrayState()->getVertexArrayObject()="<< state.getCurrentVertexArrayState()->getVertexArrayObject()<<std::endl;
state.bindVertexArrayObject(state.getCurrentVertexArrayState());
}
#ifdef OSG_GL_DISPLAYLISTS_AVAILABLE
if (!state.useVertexBufferObject(_supportsVertexBufferObjects && _useVertexBufferObjects) && _useDisplayList)
{
// get the contextID (user defined ID of 0 upwards) for the
// current OpenGL context.
unsigned int contextID = renderInfo.getContextID();
// get the globj for the current contextID.
GLuint& globj = _globjList[contextID];
if( globj == 0 )
{
// compile the display list
globj = generateDisplayList(contextID, getGLObjectSizeHint());
glNewList( globj, GL_COMPILE );
drawInner(renderInfo);
glEndList();
}
// call the display list
glCallList( globj);
}
else
#endif
{
// if state.previousVertexArrayState() is different than currentVertexArrayState bind current
// OSG_NOTICE<<"Fallback drawInner()........................"<<std::endl;
drawInner(renderInfo);
}
}
#endif
class AttributeFunctorArrayVisitor : public ArrayVisitor
{
public:
AttributeFunctorArrayVisitor(Drawable::AttributeFunctor& af):
_af(af),
_type(0) {}
virtual ~AttributeFunctorArrayVisitor() {}
virtual void apply(ByteArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(ShortArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(IntArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(UByteArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(UShortArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(UIntArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(Vec4ubArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(FloatArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(Vec2Array& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(Vec3Array& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(Vec4Array& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(DoubleArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(Vec2dArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(Vec3dArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(Vec4dArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
inline void applyArray(Drawable::AttributeType type,Array* array)
{
if (array)
{
_type = type;
array->accept(*this);
}
}
protected:
AttributeFunctorArrayVisitor& operator = (const AttributeFunctorArrayVisitor&) { return *this; }
Drawable::AttributeFunctor& _af;
Drawable::AttributeType _type;
};
class ConstAttributeFunctorArrayVisitor : public ConstArrayVisitor
{
public:
ConstAttributeFunctorArrayVisitor(Drawable::ConstAttributeFunctor& af):
_af(af),
_type(0) {}
virtual ~ConstAttributeFunctorArrayVisitor() {}
virtual void apply(const ByteArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const ShortArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const IntArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const UByteArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const UShortArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const UIntArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const Vec4ubArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const FloatArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const Vec2Array& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const Vec3Array& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const Vec4Array& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const DoubleArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const Vec2dArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const Vec3dArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
virtual void apply(const Vec4dArray& array) { if (!array.empty()) _af.apply(_type,array.size(),&(array.front())); }
inline void applyArray(Drawable::AttributeType type,const Array* array)
{
if (array)
{
_type = type;
array->accept(*this);
}
}
protected:
ConstAttributeFunctorArrayVisitor& operator = (const ConstAttributeFunctorArrayVisitor&) { return *this; }
Drawable::ConstAttributeFunctor& _af;
Drawable::AttributeType _type;
};
}
#endif
BoundingBox
BufferObject
Group
PrimitiveSet
RenderInfo
Shape
osg::ArrayVisitor::ArrayVisitor
ArrayVisitor()
Definition Array:467
osg::Array
Definition Array:61
osg::Array::accept
virtual void accept(ArrayVisitor &)=0
osg::AttributeFunctorArrayVisitor::applyArray
void applyArray(Drawable::AttributeType type, Array *array)
Definition Drawable:649
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(Vec3dArray &array)
Definition Drawable:645
osg::AttributeFunctorArrayVisitor::_af
Drawable::AttributeFunctor & _af
Definition Drawable:661
osg::AttributeFunctorArrayVisitor::AttributeFunctorArrayVisitor
AttributeFunctorArrayVisitor(Drawable::AttributeFunctor &af)
Definition Drawable:626
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(Vec4dArray &array)
Definition Drawable:646
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(UByteArray &array)
Definition Drawable:635
osg::AttributeFunctorArrayVisitor::~AttributeFunctorArrayVisitor
virtual ~AttributeFunctorArrayVisitor()
Definition Drawable:630
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(ByteArray &array)
Definition Drawable:632
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(UIntArray &array)
Definition Drawable:637
osg::AttributeFunctorArrayVisitor::operator=
AttributeFunctorArrayVisitor & operator=(const AttributeFunctorArrayVisitor &)
Definition Drawable:660
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(ShortArray &array)
Definition Drawable:633
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(IntArray &array)
Definition Drawable:634
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(Vec2dArray &array)
Definition Drawable:644
osg::AttributeFunctorArrayVisitor::_type
Drawable::AttributeType _type
Definition Drawable:662
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(DoubleArray &array)
Definition Drawable:643
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(FloatArray &array)
Definition Drawable:639
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(Vec4Array &array)
Definition Drawable:642
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(Vec3Array &array)
Definition Drawable:641
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(Vec2Array &array)
Definition Drawable:640
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(Vec4ubArray &array)
Definition Drawable:638
osg::AttributeFunctorArrayVisitor::apply
virtual void apply(UShortArray &array)
Definition Drawable:636
osg::ConstArrayVisitor::ConstArrayVisitor
ConstArrayVisitor()
Definition Array:526
osg::ConstAttributeFunctorArrayVisitor::_af
Drawable::ConstAttributeFunctor & _af
Definition Drawable:705
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const Vec2dArray &array)
Definition Drawable:687
osg::ConstAttributeFunctorArrayVisitor::ConstAttributeFunctorArrayVisitor
ConstAttributeFunctorArrayVisitor(Drawable::ConstAttributeFunctor &af)
Definition Drawable:669
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const FloatArray &array)
Definition Drawable:682
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const Vec3dArray &array)
Definition Drawable:688
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const UByteArray &array)
Definition Drawable:678
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const Vec4dArray &array)
Definition Drawable:689
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const Vec2Array &array)
Definition Drawable:683
osg::ConstAttributeFunctorArrayVisitor::applyArray
void applyArray(Drawable::AttributeType type, const Array *array)
Definition Drawable:692
osg::ConstAttributeFunctorArrayVisitor::~ConstAttributeFunctorArrayVisitor
virtual ~ConstAttributeFunctorArrayVisitor()
Definition Drawable:673
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const UIntArray &array)
Definition Drawable:680
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const IntArray &array)
Definition Drawable:677
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const DoubleArray &array)
Definition Drawable:686
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const UShortArray &array)
Definition Drawable:679
osg::ConstAttributeFunctorArrayVisitor::operator=
ConstAttributeFunctorArrayVisitor & operator=(const ConstAttributeFunctorArrayVisitor &)
Definition Drawable:703
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const ShortArray &array)
Definition Drawable:676
osg::ConstAttributeFunctorArrayVisitor::_type
Drawable::AttributeType _type
Definition Drawable:706
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const Vec4ubArray &array)
Definition Drawable:681
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const ByteArray &array)
Definition Drawable:675
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const Vec3Array &array)
Definition Drawable:684
osg::ConstAttributeFunctorArrayVisitor::apply
virtual void apply(const Vec4Array &array)
Definition Drawable:685
osg::CopyOp
Definition CopyOp:41
osg::CopyOp::SHALLOW_COPY
@ SHALLOW_COPY
Definition CopyOp:47
osg::DrawableCullCallback
Definition Callback:341
osg::DrawableEventCallback
Definition Callback:320
osg::DrawableUpdateCallback
Definition Callback:298
osg::Drawable::AttributeFunctor
Definition Drawable:426
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, Vec4 *)
Definition Drawable:441
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, GLbyte *)
Definition Drawable:430
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, float *)
Definition Drawable:438
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, GLushort *)
Definition Drawable:435
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, GLint *)
Definition Drawable:432
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, GLuint *)
Definition Drawable:436
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, Vec3d *)
Definition Drawable:446
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, double *)
Definition Drawable:444
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, Vec4ub *)
Definition Drawable:442
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, GLshort *)
Definition Drawable:431
osg::Drawable::AttributeFunctor::~AttributeFunctor
virtual ~AttributeFunctor()
Definition Drawable:428
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, Vec2 *)
Definition Drawable:439
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, Vec2d *)
Definition Drawable:445
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, Vec3 *)
Definition Drawable:440
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, GLubyte *)
Definition Drawable:434
osg::Drawable::AttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, Vec4d *)
Definition Drawable:447
osg::Drawable::ConstAttributeFunctor
Definition Drawable:461
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const Vec4d *)
Definition Drawable:483
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const GLushort *)
Definition Drawable:471
osg::Drawable::ConstAttributeFunctor::~ConstAttributeFunctor
virtual ~ConstAttributeFunctor()
Definition Drawable:464
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const Vec4ub *)
Definition Drawable:478
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const GLshort *)
Definition Drawable:467
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const Vec2 *)
Definition Drawable:475
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const Vec3d *)
Definition Drawable:482
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const float *)
Definition Drawable:474
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const Vec3 *)
Definition Drawable:476
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const GLbyte *)
Definition Drawable:466
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const double *)
Definition Drawable:480
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const GLint *)
Definition Drawable:468
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const GLubyte *)
Definition Drawable:470
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const Vec4 *)
Definition Drawable:477
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const Vec2d *)
Definition Drawable:481
osg::Drawable::ConstAttributeFunctor::apply
virtual void apply(AttributeType, unsigned int, const GLuint *)
Definition Drawable:472
osg::Drawable
Definition Drawable:89
osg::Drawable::StateSet
friend class StateSet
Definition Drawable:525
osg::Drawable::accept
virtual void accept(PrimitiveFunctor &) const
Definition Drawable:503
osg::Drawable::supports
virtual bool supports(const PrimitiveIndexFunctor &) const
Definition Drawable:506
osg::Drawable::setComputeBoundingBoxCallback
void setComputeBoundingBoxCallback(ComputeBoundingBoxCallback *callback)
Definition Drawable:174
osg::Drawable::supports
virtual bool supports(const AttributeFunctor &) const
Definition Drawable:452
osg::Drawable::setShape
void setShape(const ref_ptr< T > &shape)
Definition Drawable:190
osg::Drawable::_shape
ref_ptr< Shape > _shape
Definition Drawable:531
osg::Drawable::getInitialBound
const BoundingBox & getInitialBound() const
Definition Drawable:119
osg::Drawable::compileGLObjects
virtual void compileGLObjects(RenderInfo &renderInfo) const
osg::Drawable::supports
virtual bool supports(const PrimitiveFunctor &) const
Definition Drawable:497
osg::Drawable::generateDisplayList
static GLuint generateDisplayList(unsigned int contextID, unsigned int sizeHint=0)
osg::Drawable::Drawable
Drawable(const Drawable &drawable, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
osg::Drawable::accept
virtual void accept(AttributeFunctor &)
Definition Drawable:457
osg::Drawable::dirtyGLObjects
virtual void dirtyGLObjects()
osg::Drawable::releaseGLObjects
virtual void releaseGLObjects(State *state=0) const
osg::Drawable::resizeGLObjectBuffers
virtual void resizeGLObjectBuffers(unsigned int maxSize)
osg::Drawable::supports
virtual bool supports(const ConstAttributeFunctor &) const
Definition Drawable:487
osg::Drawable::~Drawable
virtual ~Drawable()
osg::Drawable::setShape
virtual void setShape(Shape *shape)
Definition Drawable:188
osg::Drawable::getSupportsDisplayList
bool getSupportsDisplayList() const
Definition Drawable:210
osg::Drawable::getDrawCallback
DrawCallback * getDrawCallback()
Definition Drawable:370
osg::Drawable::getVertexArrayStateList
const VertexArrayStateList & getVertexArrayStateList() const
Definition Drawable:328
osg::Drawable::getShape
const Shape * getShape() const
Definition Drawable:196
osg::Drawable::getCreateVertexArrayStateCallback
CreateVertexArrayStateCallback * getCreateVertexArrayStateCallback()
Definition Drawable:308
osg::Drawable::setBound
void setBound(const BoundingBox &bb) const
osg::Drawable::_useVertexArrayObject
bool _useVertexArrayObject
Definition Drawable:537
osg::Drawable::deleteDisplayList
static void deleteDisplayList(unsigned int contextID, GLuint globj, unsigned int sizeHint=0)
osg::Drawable::drawInner
void drawInner(RenderInfo &renderInfo) const
Definition Drawable:271
osg::Drawable::getComputeBoundingBoxCallback
const ComputeBoundingBoxCallback * getComputeBoundingBoxCallback() const
Definition Drawable:180
osg::Drawable::getGLObjectSizeHint
virtual unsigned int getGLObjectSizeHint() const
Definition Drawable:252
osg::Drawable::_drawCallback
ref_ptr< DrawCallback > _drawCallback
Definition Drawable:544
osg::Drawable::setUseVertexArrayObject
void setUseVertexArrayObject(bool flag)
osg::Drawable::_vertexArrayStateList
VertexArrayStateList _vertexArrayStateList
Definition Drawable:542
osg::Drawable::getCreateVertexArrayStateCallback
const CreateVertexArrayStateCallback * getCreateVertexArrayStateCallback() const
Definition Drawable:311
osg::Drawable::CullCallback
DrawableCullCallback CullCallback
Definition Drawable:346
osg::Drawable::_boundingBox
BoundingBox _boundingBox
Definition Drawable:529
osg::Drawable::createVertexArrayState
VertexArrayState * createVertexArrayState(RenderInfo &renderInfo) const
Definition Drawable:315
osg::Drawable::_createVertexArrayStateCallback
ref_ptr< CreateVertexArrayStateCallback > _createVertexArrayStateCallback
Definition Drawable:545
osg::Drawable::META_Node
META_Node(osg, Drawable)
osg::Drawable::getDisplayList
GLuint & getDisplayList(unsigned int contextID) const
Definition Drawable:222
osg::Drawable::Node
friend class Node
Definition Drawable:523
osg::Drawable::getUseDisplayList
bool getUseDisplayList() const
Definition Drawable:219
osg::Drawable::setUseDisplayList
void setUseDisplayList(bool flag)
osg::Drawable::EventCallback
DrawableEventCallback EventCallback
Definition Drawable:345
osg::Drawable::computeBoundingBox
virtual BoundingBox computeBoundingBox() const
osg::Drawable::_initialBoundingBox
BoundingBox _initialBoundingBox
Definition Drawable:527
osg::Drawable::setInitialBound
void setInitialBound(const osg::BoundingBox &bbox)
Definition Drawable:116
osg::Drawable::getUseVertexArrayObject
bool getUseVertexArrayObject() const
Definition Drawable:236
osg::Drawable::setThreadSafeRefUnref
virtual void setThreadSafeRefUnref(bool threadSafe)
osg::Drawable::getBoundingBox
const BoundingBox & getBoundingBox() const
Definition Drawable:130
osg::Drawable::getMinimumNumberOfDisplayListsToRetainInCache
static unsigned int getMinimumNumberOfDisplayListsToRetainInCache()
osg::Drawable::_globjList
GLObjectList _globjList
Definition Drawable:540
osg::Drawable::Geode
friend class Geode
Definition Drawable:524
osg::Drawable::draw
void draw(RenderInfo &renderInfo) const
Definition Drawable:549
osg::Drawable::setUseVertexBufferObjects
virtual void setUseVertexBufferObjects(bool flag)
osg::Drawable::accept
virtual void accept(ConstAttributeFunctor &) const
Definition Drawable:492
osg::Drawable::getComputeBoundingBoxCallback
ComputeBoundingBoxCallback * getComputeBoundingBoxCallback()
Definition Drawable:177
osg::Drawable::setVertexArrayStateList
void setVertexArrayStateList(VertexArrayStateList &vasl)
Definition Drawable:324
osg::Drawable::_supportsDisplayList
bool _supportsDisplayList
Definition Drawable:533
osg::Drawable::asDrawable
virtual const Drawable * asDrawable() const
Definition Drawable:105
osg::Drawable::getBound
const BoundingSphere & getBound() const
Definition Drawable:121
osg::Drawable::_useDisplayList
bool _useDisplayList
Definition Drawable:534
osg::Drawable::setDrawCallback
virtual void setDrawCallback(DrawCallback *dc)
Definition Drawable:367
osg::Drawable::getVertexArrayStateList
VertexArrayStateList & getVertexArrayStateList()
Definition Drawable:326
osg::Drawable::computeBound
virtual BoundingSphere computeBound() const
osg::Drawable::Drawable
Drawable()
osg::Drawable::drawImplementation
virtual void drawImplementation(RenderInfo &) const
Definition Drawable:380
osg::Drawable::AttributeTypes
AttributeTypes
Definition Drawable:403
osg::Drawable::WEIGHTS
@ WEIGHTS
Definition Drawable:405
osg::Drawable::NORMALS
@ NORMALS
Definition Drawable:406
osg::Drawable::TEXTURE_COORDS_3
@ TEXTURE_COORDS_3
Definition Drawable:416
osg::Drawable::COLORS
@ COLORS
Definition Drawable:407
osg::Drawable::TEXTURE_COORDS_2
@ TEXTURE_COORDS_2
Definition Drawable:415
osg::Drawable::TEXTURE_COORDS
@ TEXTURE_COORDS
Definition Drawable:412
osg::Drawable::TEXTURE_COORDS_1
@ TEXTURE_COORDS_1
Definition Drawable:414
osg::Drawable::TEXTURE_COORDS_5
@ TEXTURE_COORDS_5
Definition Drawable:418
osg::Drawable::TEXTURE_COORDS_4
@ TEXTURE_COORDS_4
Definition Drawable:417
osg::Drawable::TEXTURE_COORDS_0
@ TEXTURE_COORDS_0
Definition Drawable:413
osg::Drawable::ATTRIBUTE_7
@ ATTRIBUTE_7
Definition Drawable:411
osg::Drawable::FOG_COORDS
@ FOG_COORDS
Definition Drawable:409
osg::Drawable::SECONDARY_COLORS
@ SECONDARY_COLORS
Definition Drawable:408
osg::Drawable::ATTRIBUTE_6
@ ATTRIBUTE_6
Definition Drawable:410
osg::Drawable::TEXTURE_COORDS_6
@ TEXTURE_COORDS_6
Definition Drawable:419
osg::Drawable::TEXTURE_COORDS_7
@ TEXTURE_COORDS_7
Definition Drawable:420
osg::Drawable::VERTICES
@ VERTICES
Definition Drawable:404
osg::Drawable::AttributeType
unsigned int AttributeType
Definition Drawable:400
osg::Drawable::setCreateVertexArrayStateCallback
void setCreateVertexArrayStateCallback(CreateVertexArrayStateCallback *cb)
Definition Drawable:305
osg::Drawable::_useVertexBufferObjects
bool _useVertexBufferObjects
Definition Drawable:536
osg::Drawable::getDrawCallback
const DrawCallback * getDrawCallback() const
Definition Drawable:373
osg::Drawable::setSupportsDisplayList
void setSupportsDisplayList(bool flag)
osg::Drawable::getWorldMatrices
MatrixList getWorldMatrices(const osg::Node *haltTraversalAtNode=0) const
osg::Drawable::UpdateCallback
DrawableUpdateCallback UpdateCallback
Definition Drawable:344
osg::Drawable::setMinimumNumberOfDisplayListsToRetainInCache
static void setMinimumNumberOfDisplayListsToRetainInCache(unsigned int minimum)
osg::Drawable::_computeBoundingBoxCallback
ref_ptr< ComputeBoundingBoxCallback > _computeBoundingBoxCallback
Definition Drawable:528
osg::Drawable::getUseVertexBufferObjects
bool getUseVertexBufferObjects() const
Definition Drawable:229
osg::Drawable::_supportsVertexBufferObjects
bool _supportsVertexBufferObjects
Definition Drawable:535
osg::Drawable::accept
virtual void accept(PrimitiveIndexFunctor &) const
Definition Drawable:512
osg::Drawable::asDrawable
virtual Drawable * asDrawable()
Definition Drawable:101
osg::Drawable::createVertexArrayStateImplementation
virtual VertexArrayState * createVertexArrayStateImplementation(RenderInfo &renderInfo) const
osg::Drawable::computeDataVariance
virtual void computeDataVariance()
osg::Drawable::getShape
Shape * getShape()
Definition Drawable:193
osg::Drawable::GLObjectList
osg::buffered_value< GLuint > GLObjectList
Definition Drawable:539
osg::MixinVector::size
size_type size() const
Definition MixinVector:92
osg::MixinVector::front
const_reference front() const
Definition MixinVector:138
osg::MixinVector::empty
bool empty() const
Definition MixinVector:91
osg::Node
Definition Node:72
osg::Node::dirtyBound
void dirtyBound()
osg::Node::_boundingSphereComputed
bool _boundingSphereComputed
Definition Node:497
osg::Node::_boundingSphere
BoundingSphere _boundingSphere
Definition Node:496
osg::Object
Definition Object:61
osg::Object::Object
Object()
Definition Object:69
osg::Object::DYNAMIC
@ DYNAMIC
Definition Object:218
osg::Object::getDataVariance
DataVariance getDataVariance() const
Definition Object:231
osg::PrimitiveFunctor
Definition PrimitiveSet:54
osg::PrimitiveIndexFunctor
Definition PrimitiveSet:103
osg::RenderInfo
Definition RenderInfo:28
osg::RenderInfo::getState
State * getState()
Definition RenderInfo:58
osg::RenderInfo::getContextID
unsigned int getContextID() const
Definition RenderInfo:55
osg::Shape
Definition Shape:49
osg::State
Definition State:80
osg::State::useVertexBufferObject
bool useVertexBufferObject(bool useVBO) const
Definition State:790
osg::State::getCurrentVertexArrayState
VertexArrayState * getCurrentVertexArrayState() const
Definition State:547
osg::State::useVertexArrayObject
bool useVertexArrayObject(bool useVAO) const
Definition State:793
osg::State::bindVertexArrayObject
void bindVertexArrayObject(const VertexArrayState *vas)
Definition State:633
osg::Vec2d
Definition Vec2d:29
osg::Vec3d
Definition Vec3d:30
osg::Vec4d
Definition Vec4d:29
osg::Vec4ub
Definition Vec4ub:28
osg::VertexArrayStateList
Definition VertexArrayState:219
osg::VertexArrayState
Definition VertexArrayState:25
osg::VertexArrayState::setRequiresSetArrays
void setRequiresSetArrays(bool flag)
Definition VertexArrayState:176
osg::buffered_value
Definition buffered_value:27
osg::ref_ptr
Definition ref_ptr:32
osg::ref_ptr::get
T * get() const
Definition ref_ptr:117
osg
Definition AlphaFunc:19
osg::UIntArray
TemplateIndexArray< GLuint, Array::UIntArrayType, 1, GL_UNSIGNED_INT > UIntArray
Definition Array:419
osg::Vec2Array
TemplateArray< Vec2, Array::Vec2ArrayType, 2, GL_FLOAT > Vec2Array
Definition Array:448
osg::Vec4Array
TemplateArray< Vec4, Array::Vec4ArrayType, 4, GL_FLOAT > Vec4Array
Definition Array:450
osg::MatrixList
std::vector< Matrix > MatrixList
Definition Node:53
osg::ShortArray
TemplateIndexArray< GLshort, Array::ShortArrayType, 1, GL_SHORT > ShortArray
Definition Array:414
osg::Vec2
Vec2f Vec2
Definition Vec2:21
osg::Vec3dArray
TemplateArray< Vec3d, Array::Vec3dArrayType, 3, GL_DOUBLE > Vec3dArray
Definition Array:453
osg::Vec3Array
TemplateArray< Vec3, Array::Vec3ArrayType, 3, GL_FLOAT > Vec3Array
Definition Array:449
osg::Vec3
Vec3f Vec3
Definition Vec3:21
osg::FloatArray
TemplateArray< GLfloat, Array::FloatArrayType, 1, GL_FLOAT > FloatArray
Definition Array:421
osg::BoundingBox
BoundingBoxd BoundingBox
Definition BoundingBox:257
osg::UShortArray
TemplateIndexArray< GLushort, Array::UShortArrayType, 1, GL_UNSIGNED_SHORT > UShortArray
Definition Array:418
osg::DoubleArray
TemplateArray< GLdouble, Array::DoubleArrayType, 1, GL_DOUBLE > DoubleArray
Definition Array:422
osg::Vec4dArray
TemplateArray< Vec4d, Array::Vec4dArrayType, 4, GL_DOUBLE > Vec4dArray
Definition Array:454
osg::BoundingSphere
BoundingSphered BoundingSphere
Definition BoundingSphere:314
osg::ByteArray
TemplateIndexArray< GLbyte, Array::ByteArrayType, 1, GL_BYTE > ByteArray
Definition Array:413
osg::Vec4
Vec4f Vec4
Definition Vec4:21
osg::minimum
T minimum(T lhs, T rhs)
Definition Math:78
osg::Vec2dArray
TemplateArray< Vec2d, Array::Vec2dArrayType, 2, GL_DOUBLE > Vec2dArray
Definition Array:452
osg::UByteArray
TemplateIndexArray< GLubyte, Array::UByteArrayType, 1, GL_UNSIGNED_BYTE > UByteArray
Definition Array:417
osg::Vec4ubArray
TemplateArray< Vec4ub, Array::Vec4ubArrayType, 4, GL_UNSIGNED_BYTE > Vec4ubArray
Definition Array:438
osg::IntArray
TemplateIndexArray< GLint, Array::IntArrayType, 1, GL_INT > IntArray
Definition Array:415
OSG_EXPORT
#define OSG_EXPORT
Definition osg/Export:39
osg::Drawable::ComputeBoundingBoxCallback
Definition Drawable:162
osg::Drawable::ComputeBoundingBoxCallback::ComputeBoundingBoxCallback
ComputeBoundingBoxCallback()
Definition Drawable:163
osg::Drawable::ComputeBoundingBoxCallback::computeBound
virtual BoundingBox computeBound(const osg::Drawable &) const
Definition Drawable:170
osg::Drawable::ComputeBoundingBoxCallback::ComputeBoundingBoxCallback
ComputeBoundingBoxCallback(const ComputeBoundingBoxCallback &org, const CopyOp &copyop)
Definition Drawable:165
osg::Drawable::ComputeBoundingBoxCallback::META_Object
META_Object(osg, ComputeBoundingBoxCallback)
osg::Drawable::CreateVertexArrayStateCallback
Definition Drawable:288
osg::Drawable::CreateVertexArrayStateCallback::CreateVertexArrayStateCallback
CreateVertexArrayStateCallback()
Definition Drawable:289
osg::Drawable::CreateVertexArrayStateCallback::CreateVertexArrayStateCallback
CreateVertexArrayStateCallback(const CreateVertexArrayStateCallback &rhs, const CopyOp &copyop)
Definition Drawable:291
osg::Drawable::CreateVertexArrayStateCallback::META_Object
META_Object(osg, CreateVertexArrayStateCallback)
osg::Drawable::CreateVertexArrayStateCallback::createVertexArrayStateImplementation
virtual osg::VertexArrayState * createVertexArrayStateImplementation(osg::RenderInfo &renderInfo, const osg::Drawable *drawable) const
Definition Drawable:297
osg::Drawable::DrawCallback
Definition Drawable:354
osg::Drawable::DrawCallback::META_Object
META_Object(osg, DrawCallback)
osg::Drawable::DrawCallback::DrawCallback
DrawCallback(const DrawCallback &org, const CopyOp &copyop)
Definition Drawable:357
osg::Drawable::DrawCallback::drawImplementation
virtual void drawImplementation(osg::RenderInfo &, const osg::Drawable *) const
Definition Drawable:363
osg::Drawable::DrawCallback::DrawCallback
DrawCallback()
Definition Drawable:355
osg::State::SetCurrentVertexArrayStateProxy
Definition State:537