OpenSceneGraph
3.0.1
|
Provides access to the primitives that compose an osg::Drawable
.
More...
Public Member Functions | |
TemplatePrimitiveFunctor () | |
virtual | ~TemplatePrimitiveFunctor () |
void | setTreatVertexDataAsTemporary (bool treatVertexDataAsTemporary) |
bool | getTreatVertexDataAsTemporary () const |
virtual void | setVertexArray (unsigned int, const Vec2 *) |
Sets the array of vertices used to describe the primitives. | |
virtual void | setVertexArray (unsigned int count, const Vec3 *vertices) |
Sets the array of vertices used to describe the primitives. | |
virtual void | setVertexArray (unsigned int, const Vec4 *) |
Sets the array of vertices used to describe the primitives. | |
virtual void | setVertexArray (unsigned int, const Vec2d *) |
Sets the array of vertices used to describe the primitives. | |
virtual void | setVertexArray (unsigned int, const Vec3d *) |
Sets the array of vertices used to describe the primitives. | |
virtual void | setVertexArray (unsigned int, const Vec4d *) |
Sets the array of vertices used to describe the primitives. | |
virtual void | drawArrays (GLenum mode, GLint first, GLsizei count) |
Mimics the OpenGL glDrawArrays() function. | |
template<class IndexType > | |
void | drawElementsTemplate (GLenum mode, GLsizei count, const IndexType *indices) |
virtual void | drawElements (GLenum mode, GLsizei count, const GLubyte *indices) |
Mimics the OpenGL glDrawElements() function. | |
virtual void | drawElements (GLenum mode, GLsizei count, const GLushort *indices) |
Mimics the OpenGL glDrawElements() function. | |
virtual void | drawElements (GLenum mode, GLsizei count, const GLuint *indices) |
Mimics the OpenGL glDrawElements() function. | |
virtual void | begin (GLenum mode) |
Note: begin(..),vertex(..) & end() are convenience methods for adapting non vertex array primitives to vertex array based primitives. | |
virtual void | vertex (const Vec2 &vert) |
Mimics the OpenGL glVertex() "family of functions". | |
virtual void | vertex (const Vec3 &vert) |
Mimics the OpenGL glVertex() "family of functions". | |
virtual void | vertex (const Vec4 &vert) |
Mimics the OpenGL glVertex() "family of functions". | |
virtual void | vertex (float x, float y) |
Mimics the OpenGL glVertex() "family of functions". | |
virtual void | vertex (float x, float y, float z) |
Mimics the OpenGL glVertex() "family of functions". | |
virtual void | vertex (float x, float y, float z, float w) |
Mimics the OpenGL glVertex() "family of functions". | |
virtual void | end () |
Mimics the OpenGL glEnd() function. | |
Protected Attributes | |
unsigned int | _vertexArraySize |
const Vec3 * | _vertexArrayPtr |
GLenum | _modeCache |
std::vector< Vec3 > | _vertexCache |
bool | _treatVertexDataAsTemporary |
Provides access to the primitives that compose an osg::Drawable
.
Notice that TemplatePrimitiveFunctor
is a class template, and that it inherits from its template parameter T
. This template parameter must implement operator()(const osg::Vec3 v1, const osg::Vec3 v2, const osg::Vec3 v3, bool treatVertexDataAsTemporary)
, operator()(const osg::Vec3 v1, const osg::Vec3 v2, bool treatVertexDataAsTemporary)
, operator()(const osg::Vec3 v1, const osg::Vec3 v2, const osg::Vec3 v3, bool treatVertexDataAsTemporary)
, and operator()(const osg::Vec3 v1, const osg::Vec3 v2, const osg::Vec3 v3, const osg::Vec3 v4, bool treatVertexDataAsTemporary)
which will be called for the matching primitive when the functor is applied to a Drawable
. Parameters v1
, v2
, v3
, and v4
are the vertices of the primitive. The last parameter, treatVertexDataAsTemporary
, indicates whether these vertices are coming from a "real" vertex array, or from a temporary vertex array, created by the TemplatePrimitiveFunctor
from some other geometry representation.
PrimitiveFunctor
for general usage hints. osg::TemplatePrimitiveFunctor::TemplatePrimitiveFunctor | ( | ) | [inline] |
References _vertexArraySize, _vertexArrayPtr, _modeCache, and _treatVertexDataAsTemporary.
virtual osg::TemplatePrimitiveFunctor::~TemplatePrimitiveFunctor | ( | ) | [inline, virtual] |
virtual void osg::TemplatePrimitiveFunctor::begin | ( | GLenum | mode | ) | [inline, virtual] |
Note: begin(..),vertex(..) & end() are convenience methods for adapting non vertex array primitives to vertex array based primitives.
This is done to simplify the implementation of primitive functor subclasses - users only need override drawArray and drawElements.
Implements osg::PrimitiveFunctor.
References _modeCache, and _vertexCache.
virtual void osg::TemplatePrimitiveFunctor::drawArrays | ( | GLenum | mode, |
GLint | first, | ||
GLsizei | count | ||
) | [inline, virtual] |
Mimics the OpenGL glDrawArrays()
function.
Implements osg::PrimitiveFunctor.
References _vertexArrayPtr, and _treatVertexDataAsTemporary.
Referenced by end().
virtual void osg::TemplatePrimitiveFunctor::drawElements | ( | GLenum | mode, |
GLsizei | count, | ||
const GLubyte * | indices | ||
) | [inline, virtual] |
Mimics the OpenGL glDrawElements()
function.
Implements osg::PrimitiveFunctor.
References drawElementsTemplate().
virtual void osg::TemplatePrimitiveFunctor::drawElements | ( | GLenum | mode, |
GLsizei | count, | ||
const GLushort * | indices | ||
) | [inline, virtual] |
Mimics the OpenGL glDrawElements()
function.
Implements osg::PrimitiveFunctor.
References drawElementsTemplate().
virtual void osg::TemplatePrimitiveFunctor::drawElements | ( | GLenum | mode, |
GLsizei | count, | ||
const GLuint * | indices | ||
) | [inline, virtual] |
Mimics the OpenGL glDrawElements()
function.
Implements osg::PrimitiveFunctor.
References drawElementsTemplate().
void osg::TemplatePrimitiveFunctor::drawElementsTemplate | ( | GLenum | mode, |
GLsizei | count, | ||
const IndexType * | indices | ||
) | [inline] |
References _vertexArrayPtr, and _treatVertexDataAsTemporary.
Referenced by drawElements().
virtual void osg::TemplatePrimitiveFunctor::end | ( | ) | [inline, virtual] |
Mimics the OpenGL glEnd()
function.
Implements osg::PrimitiveFunctor.
References _vertexCache, setVertexArray(), _treatVertexDataAsTemporary, drawArrays(), and _modeCache.
bool osg::TemplatePrimitiveFunctor::getTreatVertexDataAsTemporary | ( | ) | const [inline] |
References _treatVertexDataAsTemporary.
void osg::TemplatePrimitiveFunctor::setTreatVertexDataAsTemporary | ( | bool | treatVertexDataAsTemporary | ) | [inline] |
References _treatVertexDataAsTemporary.
virtual void osg::TemplatePrimitiveFunctor::setVertexArray | ( | unsigned | count, |
const Vec2 * | vertices | ||
) | [inline, virtual] |
Sets the array of vertices used to describe the primitives.
Somehow mimics the OpenGL glVertexPointer()
function.
Implements osg::PrimitiveFunctor.
References osg::notify(), and osg::WARN.
Referenced by end().
virtual void osg::TemplatePrimitiveFunctor::setVertexArray | ( | unsigned int | count, |
const Vec3 * | vertices | ||
) | [inline, virtual] |
Sets the array of vertices used to describe the primitives.
Somehow mimics the OpenGL glVertexPointer()
function.
Implements osg::PrimitiveFunctor.
References _vertexArraySize, and _vertexArrayPtr.
virtual void osg::TemplatePrimitiveFunctor::setVertexArray | ( | unsigned | count, |
const Vec4 * | vertices | ||
) | [inline, virtual] |
Sets the array of vertices used to describe the primitives.
Somehow mimics the OpenGL glVertexPointer()
function.
Implements osg::PrimitiveFunctor.
References osg::notify(), and osg::WARN.
virtual void osg::TemplatePrimitiveFunctor::setVertexArray | ( | unsigned | count, |
const Vec2d * | vertices | ||
) | [inline, virtual] |
Sets the array of vertices used to describe the primitives.
Somehow mimics the OpenGL glVertexPointer()
function.
Implements osg::PrimitiveFunctor.
References osg::notify(), and osg::WARN.
virtual void osg::TemplatePrimitiveFunctor::setVertexArray | ( | unsigned | count, |
const Vec3d * | vertices | ||
) | [inline, virtual] |
Sets the array of vertices used to describe the primitives.
Somehow mimics the OpenGL glVertexPointer()
function.
Implements osg::PrimitiveFunctor.
References osg::notify(), and osg::WARN.
virtual void osg::TemplatePrimitiveFunctor::setVertexArray | ( | unsigned | count, |
const Vec4d * | vertices | ||
) | [inline, virtual] |
Sets the array of vertices used to describe the primitives.
Somehow mimics the OpenGL glVertexPointer()
function.
Implements osg::PrimitiveFunctor.
References osg::notify(), and osg::WARN.
virtual void osg::TemplatePrimitiveFunctor::vertex | ( | const Vec2 & | vert | ) | [inline, virtual] |
Mimics the OpenGL glVertex()
"family of functions".
Implements osg::PrimitiveFunctor.
References _vertexCache.
virtual void osg::TemplatePrimitiveFunctor::vertex | ( | const Vec3 & | vert | ) | [inline, virtual] |
Mimics the OpenGL glVertex()
"family of functions".
Implements osg::PrimitiveFunctor.
References _vertexCache.
virtual void osg::TemplatePrimitiveFunctor::vertex | ( | const Vec4 & | vert | ) | [inline, virtual] |
Mimics the OpenGL glVertex()
"family of functions".
Implements osg::PrimitiveFunctor.
References _vertexCache.
virtual void osg::TemplatePrimitiveFunctor::vertex | ( | float | x, |
float | y | ||
) | [inline, virtual] |
Mimics the OpenGL glVertex()
"family of functions".
Implements osg::PrimitiveFunctor.
References _vertexCache.
virtual void osg::TemplatePrimitiveFunctor::vertex | ( | float | x, |
float | y, | ||
float | z | ||
) | [inline, virtual] |
Mimics the OpenGL glVertex()
"family of functions".
Implements osg::PrimitiveFunctor.
References _vertexCache.
virtual void osg::TemplatePrimitiveFunctor::vertex | ( | float | x, |
float | y, | ||
float | z, | ||
float | w | ||
) | [inline, virtual] |
Mimics the OpenGL glVertex()
"family of functions".
Implements osg::PrimitiveFunctor.
References _vertexCache.
GLenum osg::TemplatePrimitiveFunctor::_modeCache [protected] |
Referenced by TemplatePrimitiveFunctor(), begin(), and end().
bool osg::TemplatePrimitiveFunctor::_treatVertexDataAsTemporary [protected] |
const Vec3* osg::TemplatePrimitiveFunctor::_vertexArrayPtr [protected] |
Referenced by TemplatePrimitiveFunctor(), setVertexArray(), drawArrays(), and drawElementsTemplate().
unsigned int osg::TemplatePrimitiveFunctor::_vertexArraySize [protected] |
Referenced by TemplatePrimitiveFunctor(), and setVertexArray().
std::vector<Vec3> osg::TemplatePrimitiveFunctor::_vertexCache [protected] |
![]() | Generated at Mon Oct 3 2011 12:39:44 for the OpenSceneGraph by doxygen 1.7.5. |