OpenSceneGraph 2.8.4
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
osg::Array Class Reference
Inheritance diagram for osg::Array:
Inheritance graph
[legend]

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
 return the name of the object's library.
virtual const char * className () const
 return the name of the object's class type.
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
 Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element.
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 ()
 Frees unused space on this vector - i.e.
void dirty ()
 Dirty the primitive, which increments the modified count, to force buffer objects to update.
void setModifiedCount (unsigned int value)
 Set the modified count value.
unsigned int getModifiedCount () const
 Get modified count value.
void setVertexBufferObject (osg::VertexBufferObject *vbo)
 Set the VertexBufferObject.
osg::VertexBufferObjectgetVertexBufferObject ()
 Get the VertexBufferObject.
const osg::VertexBufferObjectgetVertexBufferObject () const
 Get the const VertexBufferObject.
void setVertexBufferObjectOffset (const GLvoid *offset) const
 Set the offset into the VertexBufferObject, if used.
const GLvoid * getVertexBufferObjectOffset () const
 Get the offset into the VertexBufferObject, if used.

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:

osg logo
Generated at Sun Jan 8 2012 13:16:04 for the OpenSceneGraph by doxygen 1.7.4.