Visualization Library

A lightweight C++ OpenGL middleware for 2D/3D graphics
[Home] [Tutorials] [All Classes] [Grouped Classes]

vl::ArrayAbstract Class Reference

The ArrayAbstract class defines an abstract interface to conveniently manipulate data stored in a GLBufferObject. More...

#include <Array.hpp>

Inheritance diagram for vl::ArrayAbstract:

vl::Object vl::Array< vector_type, scalar_type, gl_size, gl_type >

List of all members.

Public Member Functions

virtual const char * className ()
 Returns the name of the class.
 ArrayAbstract ()
 Default constructor.
 ArrayAbstract (const ArrayAbstract &other)
 Copies only the local data and not the VBO related fields.
void operator= (const ArrayAbstract &other)
 Copies only the local data and not the VBO related fields.
virtual ref< ArrayAbstractclone () const =0
const GLBufferObjectgpuBuffer () const
GLBufferObjectgpuBuffer ()
void clear ()
const unsigned char * ptr () const
 Returns the pointer to the first element of the local buffer. Equivalent to gpuBuffer()->ptr().
unsigned char * ptr ()
 Returns the pointer to the first element of the local buffer. Equivalent to gpuBuffer()->ptr().
virtual size_t bytesUsed () const
 Returns the amount of memory in bytes used by an array. Equivalent to gpuBuffer()->bytesUsed().
virtual size_t glSize () const =0
 Returns the number of scalar components for the array, ie 3 for ArrayFVec3, 1 for ArrayUInt etc.
virtual int glType () const =0
 Returns the OpenGL type for the array, ie GL_FLOAT for ArrayFVec3, GL_UNSIGNED_INT for ArrayUInt etc.
virtual size_t size () const =0
 Returns the number of elements of an array.
virtual Sphere computeBoundingSphere () const =0
 Computes the bounding sphere enclosing the vectors contained in the buffer.
virtual AABB computeBoundingBox () const =0
 Computes the axis aligned bounding box enclosing the vectors contained in the buffer.
virtual void transform (const mat4 &m)=0
 Transforms the vectors contained in the buffer.
virtual void normalize ()=0
 Normalizes the vectors contained in the buffer.
virtual vec4 vectorAsVec4 (size_t vector_index) const =0
 Returns a vector from the buffer as a vec4 value.
virtual int compare (int a, int b) const =0
 Compares two vectors.
bool vboDirty () const
 true by default
void setVBODirty (bool dirty)
 true by default
EGLBufferUsage usage () const
 GBU_STATIC_DRAW by default.
void setUsage (EGLBufferUsage usage)
 GBU_STATIC_DRAW by default.
void updateVBO (bool discard_local_storage=false)

Protected Attributes

ref< GLBufferObjectmBufferGPU
EGLBufferUsage mVBOUsage
bool mVBODirty


Detailed Description

The ArrayAbstract class defines an abstract interface to conveniently manipulate data stored in a GLBufferObject.

See also:

Constructor & Destructor Documentation

vl::ArrayAbstract::ArrayAbstract (  )  [inline]

Default constructor.

vl::ArrayAbstract::ArrayAbstract ( const ArrayAbstract other  )  [inline]

Copies only the local data and not the VBO related fields.


Member Function Documentation

virtual const char* vl::ArrayAbstract::className (  )  [inline, virtual]

Returns the name of the class.

Reimplemented from vl::Object.

Reimplemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

void vl::ArrayAbstract::operator= ( const ArrayAbstract other  )  [inline]

Copies only the local data and not the VBO related fields.

virtual ref<ArrayAbstract> vl::ArrayAbstract::clone (  )  const [pure virtual]

const GLBufferObject* vl::ArrayAbstract::gpuBuffer (  )  const [inline]

GLBufferObject* vl::ArrayAbstract::gpuBuffer (  )  [inline]

void vl::ArrayAbstract::clear (  )  [inline]

const unsigned char* vl::ArrayAbstract::ptr (  )  const [inline]

Returns the pointer to the first element of the local buffer. Equivalent to gpuBuffer()->ptr().

unsigned char* vl::ArrayAbstract::ptr (  )  [inline]

Returns the pointer to the first element of the local buffer. Equivalent to gpuBuffer()->ptr().

virtual size_t vl::ArrayAbstract::bytesUsed (  )  const [inline, virtual]

Returns the amount of memory in bytes used by an array. Equivalent to gpuBuffer()->bytesUsed().

virtual size_t vl::ArrayAbstract::glSize (  )  const [pure virtual]

Returns the number of scalar components for the array, ie 3 for ArrayFVec3, 1 for ArrayUInt etc.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

virtual int vl::ArrayAbstract::glType (  )  const [pure virtual]

Returns the OpenGL type for the array, ie GL_FLOAT for ArrayFVec3, GL_UNSIGNED_INT for ArrayUInt etc.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

virtual size_t vl::ArrayAbstract::size (  )  const [pure virtual]

Returns the number of elements of an array.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

virtual Sphere vl::ArrayAbstract::computeBoundingSphere (  )  const [pure virtual]

Computes the bounding sphere enclosing the vectors contained in the buffer.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

virtual AABB vl::ArrayAbstract::computeBoundingBox (  )  const [pure virtual]

Computes the axis aligned bounding box enclosing the vectors contained in the buffer.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

virtual void vl::ArrayAbstract::transform ( const mat4 m  )  [pure virtual]

Transforms the vectors contained in the buffer.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

virtual void vl::ArrayAbstract::normalize (  )  [pure virtual]

Normalizes the vectors contained in the buffer.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

virtual vec4 vl::ArrayAbstract::vectorAsVec4 ( size_t  vector_index  )  const [pure virtual]

Returns a vector from the buffer as a vec4 value.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

virtual int vl::ArrayAbstract::compare ( int  a,
int  b 
) const [pure virtual]

Compares two vectors.

Implemented in vl::Array< vector_type, scalar_type, gl_size, gl_type >.

bool vl::ArrayAbstract::vboDirty (  )  const [inline]

true by default

void vl::ArrayAbstract::setVBODirty ( bool  dirty  )  [inline]

true by default

EGLBufferUsage vl::ArrayAbstract::usage (  )  const [inline]

GBU_STATIC_DRAW by default.

void vl::ArrayAbstract::setUsage ( EGLBufferUsage  usage  )  [inline]

GBU_STATIC_DRAW by default.

void vl::ArrayAbstract::updateVBO ( bool  discard_local_storage = false  )  [inline]


Member Data Documentation

bool vl::ArrayAbstract::mVBODirty [protected]


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

Visualization Library v2010.06 Reference Documentation
Copyright 2005-2009 Michele Bosi. All rights reserved.
Updated on Tue Jun 1 00:57:12 2010.
Permission is granted to use this page to write and publish articles regarding Visualization Library.