OpenSceneGraph
Public Member Functions | Protected Attributes | List of all members
osg::TemplatePrimitiveFunctor< T > Class Template Reference

Provides access to the primitives that compose an osg::Drawable. More...

Inheritance diagram for osg::TemplatePrimitiveFunctor< T >:
Inheritance graph
[legend]
Collaboration diagram for osg::TemplatePrimitiveFunctor< T >:
Collaboration graph
[legend]

Public Member Functions

void setTreatVertexDataAsTemporary (bool treatVertexDataAsTemporary)
 
bool getTreatVertexDataAsTemporary () const
 
virtual void setVertexArray (unsigned int, const Vec2 *)
 Sets the array of vertices used to describe the primitives. More...
 
virtual void setVertexArray (unsigned int count, const Vec3 *vertices)
 Sets the array of vertices used to describe the primitives. More...
 
virtual void setVertexArray (unsigned int, const Vec4 *)
 Sets the array of vertices used to describe the primitives. More...
 
virtual void setVertexArray (unsigned int, const Vec2d *)
 Sets the array of vertices used to describe the primitives. More...
 
virtual void setVertexArray (unsigned int, const Vec3d *)
 Sets the array of vertices used to describe the primitives. More...
 
virtual void setVertexArray (unsigned int, const Vec4d *)
 Sets the array of vertices used to describe the primitives. More...
 
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. More...
 
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.
 
- Public Member Functions inherited from osg::PrimitiveFunctor
void useVertexCacheAsVertexArray ()
 

Protected Attributes

unsigned int _vertexArraySize
 
const Vec3_vertexArrayPtr
 
GLenum _modeCache
 

Additional Inherited Members

- Public Attributes inherited from osg::PrimitiveFunctor
std::vector< Vec3_vertexCache
 
bool _treatVertexDataAsTemporary
 

Detailed Description

template<class T>
class osg::TemplatePrimitiveFunctor< T >

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.

See also
PrimitiveFunctor for general usage hints.

Member Function Documentation

◆ begin()

template<class T >
virtual void osg::TemplatePrimitiveFunctor< T >::begin ( GLenum  mode)
inlinevirtual

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.

◆ setVertexArray() [1/6]

template<class T >
virtual void osg::TemplatePrimitiveFunctor< T >::setVertexArray ( unsigned  count,
const Vec2 vertices 
)
inlinevirtual

Sets the array of vertices used to describe the primitives.

Somehow mimics the OpenGL glVertexPointer() function.

Implements osg::PrimitiveFunctor.

◆ setVertexArray() [2/6]

template<class T >
virtual void osg::TemplatePrimitiveFunctor< T >::setVertexArray ( unsigned int  count,
const Vec3 vertices 
)
inlinevirtual

Sets the array of vertices used to describe the primitives.

Somehow mimics the OpenGL glVertexPointer() function.

Implements osg::PrimitiveFunctor.

◆ setVertexArray() [3/6]

template<class T >
virtual void osg::TemplatePrimitiveFunctor< T >::setVertexArray ( unsigned  count,
const Vec4 vertices 
)
inlinevirtual

Sets the array of vertices used to describe the primitives.

Somehow mimics the OpenGL glVertexPointer() function.

Implements osg::PrimitiveFunctor.

◆ setVertexArray() [4/6]

template<class T >
virtual void osg::TemplatePrimitiveFunctor< T >::setVertexArray ( unsigned  count,
const Vec2d vertices 
)
inlinevirtual

Sets the array of vertices used to describe the primitives.

Somehow mimics the OpenGL glVertexPointer() function.

Implements osg::PrimitiveFunctor.

◆ setVertexArray() [5/6]

template<class T >
virtual void osg::TemplatePrimitiveFunctor< T >::setVertexArray ( unsigned  count,
const Vec3d vertices 
)
inlinevirtual

Sets the array of vertices used to describe the primitives.

Somehow mimics the OpenGL glVertexPointer() function.

Implements osg::PrimitiveFunctor.

◆ setVertexArray() [6/6]

template<class T >
virtual void osg::TemplatePrimitiveFunctor< T >::setVertexArray ( unsigned  count,
const Vec4d vertices 
)
inlinevirtual

Sets the array of vertices used to describe the primitives.

Somehow mimics the OpenGL glVertexPointer() function.

Implements osg::PrimitiveFunctor.


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