osg::TriangleFunctor< T > Class Template Reference

`#include <TriangleFunctor>`

Inheritance diagram for osg::TriangleFunctor< T >:

## Public Member Functions

| TriangleFunctor ()
virtual | ~TriangleFunctor ()
virtual void | setVertexArray (unsigned int, const Vec2 *)
virtual void | setVertexArray (unsigned int count, const Vec3 *vertices)
virtual void | setVertexArray (unsigned int, const Vec4 *)
virtual void | setVertexArray (unsigned int, const Vec2d *)
virtual void | setVertexArray (unsigned int, const Vec3d *)
virtual void | setVertexArray (unsigned int, const Vec4d *)
virtual void | drawArrays (GLenum mode, GLint first, GLsizei count)
| Mimics the OpenGL `glDrawArrays()` function.
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.
Public Member Functions inherited from osg::PrimitiveFunctor
virtual | ~PrimitiveFunctor ()

## Protected Attributes

unsigned int | _vertexArraySize
const Vec3 * | _vertexArrayPtr

## Detailed Description

template<class T>
class osg::TriangleFunctor< T >

Provides access to the triangles that compose an `osg::Drawable`. If the `Drawable` is not composed of triangles, the `TriangleFunctor` will convert the primitives to triangles whenever possible.

Notice that `TriangleFunctor` is a class template, and that it inherits from its template parameter `T`. This template parameter must implement T::operator() (const osg::Vec3 v1, const osg::Vec3 v2, const osg::Vec3 v3, bool treatVertexDataAsTemporary), which will be called for every triangle when the functor is applied to a `Drawable`. Parameters `v1`, `v2`, and `v3` are the triangle vertices. The fourth parameter, `treatVertexDataAsTemporary`, indicates whether these vertices are coming from a "real" vertex array, or from a temporary vertex array, created by the `TriangleFunctor` from some other geometry representation.

See also
  `PrimitiveFunctor` for general usage hints.

## Constructor & Destructor Documentation

## TriangleFunctor()

template<class T>

osg::TriangleFunctor< T >::TriangleFunctor | ( |  | ) |

inline

References _vertexArrayPtr, and _vertexArraySize.

## ~TriangleFunctor()

template<class T>

virtual osg::TriangleFunctor< T >::~TriangleFunctor | ( |  | ) |

inline virtual

## Member Function Documentation

## drawArrays()

template<class T>

virtual void osg::TriangleFunctor< T >::drawArrays | ( | GLenum | mode,
|  | GLint | first,
|  | GLsizei | count )

inline virtual

Mimics the OpenGL `glDrawArrays()` function.

Implements osg::PrimitiveFunctor.

References _vertexArrayPtr.

## drawElements() [1/3]

template<class T>

virtual void osg::TriangleFunctor< T >::drawElements | ( | GLenum | mode,
|  | GLsizei | count,
|  | const GLubyte * | indices )

inline virtual

Mimics the OpenGL `glDrawElements()` function.

Implements osg::PrimitiveFunctor.

References _vertexArrayPtr.

## drawElements() [2/3]

template<class T>

virtual void osg::TriangleFunctor< T >::drawElements | ( | GLenum | mode,
|  | GLsizei | count,
|  | const GLuint * | indices )

inline virtual

Mimics the OpenGL `glDrawElements()` function.

Implements osg::PrimitiveFunctor.

References _vertexArrayPtr.

## drawElements() [3/3]

template<class T>

virtual void osg::TriangleFunctor< T >::drawElements | ( | GLenum | mode,
|  | GLsizei | count,
|  | const GLushort * | indices )

inline virtual

Mimics the OpenGL `glDrawElements()` function.

Implements osg::PrimitiveFunctor.

References _vertexArrayPtr.

## setVertexArray() [1/6]

template<class T>

virtual void osg::TriangleFunctor< T >::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 _vertexArrayPtr, and _vertexArraySize.

## setVertexArray() [2/6]

template<class T>

virtual void osg::TriangleFunctor< T >::setVertexArray | ( | unsigned int | 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.

## setVertexArray() [3/6]

template<class T>

virtual void osg::TriangleFunctor< T >::setVertexArray | ( | unsigned int | 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.

## setVertexArray() [4/6]

template<class T>

virtual void osg::TriangleFunctor< T >::setVertexArray | ( | unsigned int | 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.

## setVertexArray() [5/6]

template<class T>

virtual void osg::TriangleFunctor< T >::setVertexArray | ( | unsigned int | 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.

## setVertexArray() [6/6]

template<class T>

virtual void osg::TriangleFunctor< T >::setVertexArray | ( | unsigned int | 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.

## Member Data Documentation

## _vertexArrayPtr

template<class T>

const Vec3* osg::TriangleFunctor< T >::_vertexArrayPtr

protected

Referenced by drawArrays(), drawElements(), drawElements(), drawElements(), setVertexArray(), and TriangleFunctor().

## _vertexArraySize

template<class T>

unsigned int osg::TriangleFunctor< T >::_vertexArraySize

protected

Referenced by setVertexArray(), and TriangleFunctor().

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

- TriangleFunctor