openscenegraph
Public Types | Public Member Functions | Protected Member Functions | List of all members
osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType > Class Template Reference

A concrete array holding elements of type T. More...

#include <Array>

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

Public Types

typedef T ElementDataType
 
- Public Types inherited from osg::Array
enum  Type {
  ArrayType = 0 , ByteArrayType = 1 , ShortArrayType = 2 , IntArrayType = 3 ,
  UByteArrayType = 4 , UShortArrayType = 5 , UIntArrayType = 6 , FloatArrayType = 7 ,
  DoubleArrayType = 8 , Vec2bArrayType = 9 , Vec3bArrayType = 10 , Vec4bArrayType = 11 ,
  Vec2sArrayType = 12 , Vec3sArrayType = 13 , Vec4sArrayType = 14 , Vec2iArrayType = 15 ,
  Vec3iArrayType = 16 , Vec4iArrayType = 17 , Vec2ubArrayType = 18 , Vec3ubArrayType = 19 ,
  Vec4ubArrayType = 20 , Vec2usArrayType = 21 , Vec3usArrayType = 22 , Vec4usArrayType = 23 ,
  Vec2uiArrayType = 24 , Vec3uiArrayType = 25 , Vec4uiArrayType = 26 , Vec2ArrayType = 27 ,
  Vec3ArrayType = 28 , Vec4ArrayType = 29 , Vec2dArrayType = 30 , Vec3dArrayType = 31 ,
  Vec4dArrayType = 32 , MatrixArrayType = 33 , MatrixdArrayType = 34 , QuatArrayType = 35 ,
  UInt64ArrayType = 36 , Int64ArrayType = 37 , LastArrayType = 37
}
 The type of data stored in this array. More...
 
enum  Binding {
  BIND_UNDEFINED =-1 , BIND_OFF =0 , BIND_OVERALL =1 , BIND_PER_PRIMITIVE_SET =2 ,
  BIND_PER_VERTEX =4
}
 The scope of applicability of the values in this array. More...
 
- Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC , STATIC , UNSPECIFIED }
 
- Public Types inherited from osg::MixinVector< T >
typedef vector_type::allocator_type allocator_type
 
typedef vector_type::value_type value_type
 
typedef vector_type::const_pointer const_pointer
 
typedef vector_type::pointer pointer
 
typedef vector_type::const_reference const_reference
 
typedef vector_type::reference reference
 
typedef vector_type::const_iterator const_iterator
 
typedef vector_type::iterator iterator
 
typedef vector_type::const_reverse_iterator const_reverse_iterator
 
typedef vector_type::reverse_iterator reverse_iterator
 
typedef vector_type::size_type size_type
 
typedef vector_type::difference_type difference_type
 

Public Member Functions

 TemplateArray (Binding binding=BIND_UNDEFINED)
 
 TemplateArray (const TemplateArray &ta, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 
 TemplateArray (unsigned int no)
 
 TemplateArray (unsigned int no, const T *ptr)
 
 TemplateArray (Binding binding, unsigned int no)
 
 TemplateArray (Binding binding, unsigned int no, const T *ptr)
 
template<class InputIterator >
 TemplateArray (InputIterator first, InputIterator last)
 
TemplateArray & operator= (const TemplateArray &array)
 
virtual Object * cloneType () const
 
virtual Object * clone (const CopyOp &copyop) const
 
virtual void accept (ArrayVisitor &av)
 
virtual void accept (ConstArrayVisitor &av) const
 
virtual void accept (unsigned int index, ValueVisitor &vv)
 
virtual void accept (unsigned int index, ConstValueVisitor &vv) const
 
virtual int compare (unsigned int lhs, unsigned int rhs) const
 
virtual void trim ()
 
virtual unsigned int getElementSize () const
 
virtual const GLvoid * getDataPointer () const
 
virtual const GLvoid * getDataPointer (unsigned int index) const
 
virtual unsigned int getTotalDataSize () const
 
virtual unsigned int getNumElements () const
 
virtual void reserveArray (unsigned int num)
 
virtual void resizeArray (unsigned int num)
 
- Public Member Functions inherited from osg::Array
 Array (Type arrayType=ArrayType, GLint dataSize=0, GLenum dataType=0, Binding binding=BIND_UNDEFINED)
 
 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
 
Type getType () const
 
GLint getDataSize () const
 
GLenum getDataType () const
 
virtual osg::Array * asArray ()
 
virtual const osg::Array * asArray () const
 
void setBinding (Binding binding)
 
Binding getBinding () const
 
void setNormalize (bool normalize)
 
bool getNormalize () const
 
void setPreserveDataType (bool preserve)
 
bool getPreserveDataType () const
 
void setVertexBufferObject (osg::VertexBufferObject *vbo)
 
osg::VertexBufferObject * getVertexBufferObject ()
 
const osg::VertexBufferObject * getVertexBufferObject () const
 
- Public Member Functions inherited from osg::BufferData
 BufferData ()
 
 BufferData (const BufferData &bd, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 
virtual osg::PrimitiveSet * asPrimitiveSet ()
 
virtual const osg::PrimitiveSet * asPrimitiveSet () const
 
virtual osg::Image * asImage ()
 
virtual const osg::Image * asImage () const
 
void setBufferObject (BufferObject *bufferObject)
 
BufferObject * getBufferObject ()
 
const BufferObject * getBufferObject () const
 
void setBufferIndex (unsigned int index)
 
unsigned int getBufferIndex () const
 
GLBufferObject * getGLBufferObject (unsigned int contextID) const
 
GLBufferObject * getOrCreateGLBufferObject (unsigned int contextID) const
 
void setModifiedCallback (ModifiedCallback *md)
 
ModifiedCallback * getModifiedCallback ()
 
const ModifiedCallback * getModifiedCallback () const
 
void dirty ()
 
void setModifiedCount (unsigned int value)
 
unsigned int getModifiedCount () const
 
virtual void resizeGLObjectBuffers (unsigned int maxSize)
 
void releaseGLObjects (State *state=0) const
 
unsigned int getNumClients () const
 
void addClient (osg::Object *)
 
void removeClient (osg::Object *)
 
- Public Member Functions inherited from osg::Object
 Object ()
 
 Object (bool threadSafeRefUnref)
 
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 
std::string getCompoundClassName () const
 
virtual Node * asNode ()
 
virtual const Node * asNode () const
 
virtual NodeVisitor * asNodeVisitor ()
 
virtual const NodeVisitor * asNodeVisitor () const
 
virtual StateSet * asStateSet ()
 
virtual const StateSet * asStateSet () const
 
virtual StateAttribute * asStateAttribute ()
 
virtual const StateAttribute * asStateAttribute () const
 
virtual Uniform * asUniform ()
 
virtual const Uniform * asUniform () const
 
virtual Camera * asCamera ()
 
virtual const Camera * asCamera () const
 
virtual Drawable * asDrawable ()
 
virtual const Drawable * asDrawable () const
 
virtual Callback * asCallback ()
 
virtual const Callback * asCallback () const
 
virtual CallbackObject * asCallbackObject ()
 
virtual const CallbackObject * asCallbackObject () const
 
virtual UserDataContainer * asUserDataContainer ()
 
virtual const UserDataContainer * asUserDataContainer () const
 
virtual ValueObject * asValueObject ()
 
virtual const ValueObject * asValueObject () const
 
virtual void setThreadSafeRefUnref (bool threadSafe)
 
virtual void setName (const std::string &name)
 
void setName (const char *name)
 
const std::string & getName () const
 
void setDataVariance (DataVariance dv)
 
DataVariance getDataVariance () const
 
virtual void computeDataVariance ()
 
void setUserDataContainer (osg::UserDataContainer *udc)
 
template<class T >
void setUserDataContainer (const ref_ptr< T > &udc)
 
osg::UserDataContainer * getUserDataContainer ()
 
const osg::UserDataContainer * getUserDataContainer () const
 
osg::UserDataContainer * getOrCreateUserDataContainer ()
 
virtual void setUserData (Referenced *obj)
 
template<class T >
void setUserData (const ref_ptr< T > &ud)
 
virtual Referenced * getUserData ()
 
virtual const Referenced * getUserData () const
 
template<typename T >
bool getUserValue (const std::string &name, T &value) const
 
template<typename T >
void setUserValue (const std::string &name, const T &value)
 
template<typename T >
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool getUserValue (const std::string &name, T &value) const
 
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 
 Referenced (bool threadSafeRefUnref)
 
 Referenced (const Referenced &)
 
Referenced & operator= (const Referenced &)
 
bool getThreadSafeRefUnref () const
 
OpenThreads::Mutex * getRefMutex () const
 
int ref () const
 
int unref () const
 
int unref_nodelete () const
 
int referenceCount () const
 
ObserverSet * getObserverSet () const
 
ObserverSet * getOrCreateObserverSet () const
 
void addObserver (Observer *observer) const
 
void removeObserver (Observer *observer) const
 
- Public Member Functions inherited from osg::MixinVector< T >
 MixinVector ()
 
 MixinVector (size_type initial_size, const value_type &fill_value=value_type())
 
 MixinVector (InputIterator first, InputIterator last)
 
 MixinVector (const vector_type &other)
 
 MixinVector (const MixinVector &other)
 
MixinVector & operator= (const vector_type &other)
 
MixinVector & operator= (const MixinVector &other)
 
virtual ~MixinVector ()
 
void clear ()
 
void resize (size_type new_size, const value_type &fill_value=value_type())
 
void reserve (size_type new_capacity)
 
void swap (vector_type &other)
 
void swap (MixinVector &other)
 
bool empty () const
 
size_type size () const
 
size_type capacity () const
 
size_type max_size () const
 
allocator_type get_allocator () const
 
const_iterator begin () const
 
iterator begin ()
 
const_iterator end () const
 
iterator end ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rend () const
 
reverse_iterator rend ()
 
const_reference operator[] (size_type index) const
 
reference operator[] (size_type index)
 
const_reference at (size_type index) const
 
reference at (size_type index)
 
void assign (size_type count, const value_type &value)
 
void assign (Iter first, Iter last)
 
void push_back (const value_type &value)
 
void pop_back ()
 
iterator erase (iterator where)
 
iterator erase (iterator first, iterator last)
 
iterator insert (iterator where, const value_type &value)
 
void insert (iterator where, InputIterator first, InputIterator last)
 
void insert (iterator where, size_type count, const value_type &value)
 
const_reference back () const
 
reference back ()
 
const_reference front () const
 
reference front ()
 
vector_type & asVector ()
 
const vector_type & asVector () const
 

Protected Member Functions

virtual ~TemplateArray ()
 
- Protected Member Functions inherited from osg::Array
virtual ~Array ()
 
- Protected Member Functions inherited from osg::BufferData
virtual ~BufferData ()
 
- Protected Member Functions inherited from osg::Object
virtual ~Object ()
 
- Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
 
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
 
void deleteUsingDeleteHandler () const
 

Additional Inherited Members

- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * getGlobalReferencedMutex ()
 
static void setDeleteHandler (DeleteHandler *handler)
 
static DeleteHandler * getDeleteHandler ()
 
- Protected Attributes inherited from osg::Array
Type _arrayType
 
GLint _dataSize
 
GLenum _dataType
 
Binding _binding
 
bool _normalize
 
bool _preserveDataType
 
- Protected Attributes inherited from osg::BufferData
unsigned int _modifiedCount
 
unsigned int _bufferIndex
 
osg::ref_ptr< BufferObject > _bufferObject
 
osg::ref_ptr< ModifiedCallback > _modifiedCallback
 
unsigned int _numClients
 
- Protected Attributes inherited from osg::Object
std::string _name
 
DataVariance _dataVariance
 
osg::UserDataContainer * _userDataContainer
 
- Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
 
OpenThreads::Atomic _refCount
 

Detailed Description

template<typename T, Array::Type ARRAYTYPE, int DataSize, int DataType>
class osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >

A concrete array holding elements of type T.

Member Typedef Documentation

◆ ElementDataType

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
typedef T osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::ElementDataType

Constructor & Destructor Documentation

◆ TemplateArray() [1/7]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::TemplateArray ( Binding  binding = BIND_UNDEFINED)
inline

◆ TemplateArray() [2/7]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::TemplateArray ( const TemplateArray< T, ARRAYTYPE, DataSize, DataType > &  ta,
const CopyOp &  copyop = CopyOp::SHALLOW_COPY 
)
inline

◆ TemplateArray() [3/7]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::TemplateArray ( unsigned int  no)
inline

◆ TemplateArray() [4/7]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::TemplateArray ( unsigned int  no,
const T *  ptr 
)
inline

◆ TemplateArray() [5/7]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::TemplateArray ( Binding  binding,
unsigned int  no 
)
inline

◆ TemplateArray() [6/7]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::TemplateArray ( Binding  binding,
unsigned int  no,
const T *  ptr 
)
inline

◆ TemplateArray() [7/7]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
template<class InputIterator >
osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::TemplateArray ( InputIterator  first,
InputIterator  last 
)
inline

◆ ~TemplateArray()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::~TemplateArray ( )
inlineprotectedvirtual

Member Function Documentation

◆ accept() [1/4]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
void osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::accept ( ArrayVisitor &  av)
inlinevirtual

Implements osg::Array.

◆ accept() [2/4]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
void osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::accept ( ConstArrayVisitor &  av) const
inlinevirtual

Implements osg::Array.

◆ accept() [3/4]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
void osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::accept ( unsigned int  index,
ConstValueVisitor &  vv 
) const
inlinevirtual

Implements osg::Array.

◆ accept() [4/4]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
void osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::accept ( unsigned int  index,
ValueVisitor &  vv 
)
inlinevirtual

Implements osg::Array.

◆ clone()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual Object * osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::clone ( const CopyOp &  ) const
inlinevirtual

Clone an object, with Object* return type. Must be defined by derived classes.

Implements osg::Object.

◆ cloneType()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual Object * osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::cloneType ( ) const
inlinevirtual

Clone the type of an object, with Object* return type. Must be defined by derived classes.

Implements osg::Object.

◆ compare()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual int osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::compare ( unsigned int  lhs,
unsigned int  rhs 
) const
inlinevirtual

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

Implements osg::Array.

◆ getDataPointer() [1/2]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual const GLvoid * osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::getDataPointer ( ) const
inlinevirtual

Implements osg::Array.

◆ getDataPointer() [2/2]

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual const GLvoid * osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::getDataPointer ( unsigned int  index) const
inlinevirtual

Implements osg::Array.

◆ getElementSize()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual unsigned int osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::getElementSize ( ) const
inlinevirtual

Implements osg::Array.

◆ getNumElements()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual unsigned int osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::getNumElements ( ) const
inlinevirtual

Implements osg::Array.

◆ getTotalDataSize()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual unsigned int osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::getTotalDataSize ( ) const
inlinevirtual

Implements osg::Array.

◆ operator=()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
TemplateArray & osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::operator= ( const TemplateArray< T, ARRAYTYPE, DataSize, DataType > &  array)
inline

◆ reserveArray()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual void osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::reserveArray ( unsigned int  num)
inlinevirtual

Implements osg::Array.

◆ resizeArray()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual void osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::resizeArray ( unsigned int  num)
inlinevirtual

Implements osg::Array.

◆ trim()

template<typename T , Array::Type ARRAYTYPE, int DataSize, int DataType>
virtual void osg::TemplateArray< T, ARRAYTYPE, DataSize, DataType >::trim ( )
inlinevirtual

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

Reimplemented from osg::Array.


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