Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

osg::Array Class Reference

Inheritance diagram for osg::Array:
osg::Object osg::Referenced osg::IndexArray osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType > osg::TemplateIndexArray< T, ARRAYTYPE, DataSize, DataType >

List of all members.

Public Types

enum  Type {
  ArrayType = 0, ByteArrayType = 1, ShortArrayType = 2, IntArrayType = 3,
  UByteArrayType = 4, UShortArrayType = 5, UIntArrayType = 6, Vec4ubArrayType = 7,
  FloatArrayType = 8, Vec2ArrayType = 9, Vec3ArrayType = 10, Vec4ArrayType = 11,
  Vec2sArrayType = 12, Vec3sArrayType = 13, Vec4sArrayType = 14, Vec2bArrayType = 15,
  Vec3bArrayType = 16, Vec4bArrayType = 17, DoubleArrayType = 18, Vec2dArrayType = 19,
  Vec3dArrayType = 20, Vec4dArrayType = 21
}

Public Member Functions

 Array (Type arrayType=ArrayType, GLint dataSize=0, GLenum dataType=0)
 Array (const Array &array, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
virtual void accept (ArrayVisitor &)=0
virtual void accept (ConstArrayVisitor &) const =0
virtual void accept (unsigned int index, ValueVisitor &)=0
virtual void accept (unsigned int index, ConstValueVisitor &) const =0
virtual int compare (unsigned int lhs, unsigned int rhs) const =0
Type getType () const
GLint getDataSize () const
GLenum getDataType () const
virtual const GLvoid * getDataPointer () const =0
virtual unsigned int getTotalDataSize () const =0
virtual unsigned int getNumElements () const =0
virtual void trim ()
void dirty ()
void setModifiedCount (unsigned int value)
unsigned int getModifiedCount () const
void setVertexBufferObject (osg::VertexBufferObject *vbo)
osg::VertexBufferObjectgetVertexBufferObject ()
const osg::VertexBufferObjectgetVertexBufferObject () const
void setVertexBufferObjectOffset (const GLvoid *offset) const
const GLvoid * getVertexBufferObjectOffset () const

Protected Member Functions

virtual ~Array ()

Protected Attributes

Type _arrayType
GLint _dataSize
GLenum _dataType
unsigned int _modifiedCount
osg::ref_ptr
< osg::VertexBufferObject
_vbo
const GLvoid * _vboOffset

Member Enumeration Documentation

Enumerator:
ArrayType 
ByteArrayType 
ShortArrayType 
IntArrayType 
UByteArrayType 
UShortArrayType 
UIntArrayType 
Vec4ubArrayType 
FloatArrayType 
Vec2ArrayType 
Vec3ArrayType 
Vec4ArrayType 
Vec2sArrayType 
Vec3sArrayType 
Vec4sArrayType 
Vec2bArrayType 
Vec3bArrayType 
Vec4bArrayType 
DoubleArrayType 
Vec2dArrayType 
Vec3dArrayType 
Vec4dArrayType 

Constructor & Destructor Documentation

osg::Array::Array ( Type  arrayType = ArrayType,
GLint  dataSize = 0,
GLenum  dataType = 0 
) [inline]
osg::Array::Array ( const Array array,
const CopyOp copyop = CopyOp::SHALLOW_COPY 
) [inline]
virtual osg::Array::~Array (  ) [inline, protected, virtual]

Member Function Documentation

virtual void osg::Array::accept ( ArrayVisitor  ) [pure virtual]
virtual void osg::Array::accept ( ConstArrayVisitor  ) const [pure virtual]
virtual void osg::Array::accept ( unsigned int  index,
ValueVisitor  
) [pure virtual]
virtual void osg::Array::accept ( unsigned int  index,
ConstValueVisitor  
) const [pure virtual]
virtual const char* osg::Array::className (  ) const [virtual]

return the name of the object's class type. Must be defined by derived classes.

Implements osg::Object.

virtual int osg::Array::compare ( unsigned int  lhs,
unsigned int  rhs 
) const [pure virtual]

Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element.

Implemented in osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >, and osg::TemplateIndexArray< T, ARRAYTYPE, DataSize, DataType >.

void osg::Array::dirty (  ) [inline]

Dirty the primitive, which increments the modified count, to force buffer objects to update.

virtual const GLvoid* osg::Array::getDataPointer (  ) const [pure virtual]
GLint osg::Array::getDataSize (  ) const [inline]
GLenum osg::Array::getDataType (  ) const [inline]
unsigned int osg::Array::getModifiedCount (  ) const [inline]

Get modified count value.

virtual unsigned int osg::Array::getNumElements (  ) const [pure virtual]
virtual unsigned int osg::Array::getTotalDataSize (  ) const [pure virtual]
Type osg::Array::getType (  ) const [inline]
osg::VertexBufferObject* osg::Array::getVertexBufferObject (  ) [inline]
const osg::VertexBufferObject* osg::Array::getVertexBufferObject (  ) const [inline]

Get the const VertexBufferObject. If no VBO is assigned returns NULL

const GLvoid* osg::Array::getVertexBufferObjectOffset (  ) const [inline]
virtual bool osg::Array::isSameKindAs ( const Object obj ) const [inline, virtual]

Reimplemented from osg::Object.

Reimplemented in osg::IndexArray.

References NULL.

virtual const char* osg::Array::libraryName (  ) const [inline, virtual]

return the name of the object's library. Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.

Implements osg::Object.

void osg::Array::setModifiedCount ( unsigned int  value ) [inline]

Set the modified count value.

void osg::Array::setVertexBufferObject ( osg::VertexBufferObject vbo ) [inline]
void osg::Array::setVertexBufferObjectOffset ( const GLvoid *  offset ) const [inline]

Set the offset into the VertexBufferObject, if used.

virtual void osg::Array::trim (  ) [inline, virtual]

Frees unused space on this vector - i.e. the difference between size() and max_size() of the underlying vector.

Reimplemented in osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >, and osg::TemplateIndexArray< T, ARRAYTYPE, DataSize, DataType >.


Member Data Documentation

GLint osg::Array::_dataSize [protected]
GLenum osg::Array::_dataType [protected]
unsigned int osg::Array::_modifiedCount [protected]
const GLvoid* osg::Array::_vboOffset [mutable, protected]

The documentation for this class was generated from the following file: