Overview | Modules | Class Hierarchy | Classes | Members

# tlp::GlShaderProgram Class Reference

`#include <GlShaderManager.h>`

List of all members.

## Public Member Functions

- GlShaderProgram (const std::string &name, const GLuint programObjectId)
- std::string getName () const
- GLuint getShaderProgramId () const
- void setUniformFloat (const std::string &variateName, const float f)
- void setUniformVec2Float (const std::string &variableName, const Vector< float, 2 > &vec2f)
- void setUniformVec2Float (const std::string &variableName, const float f1, const float f2)
- void setUniformVec3Float (const std::string &variableName, const Vector< float, 3 > &vec3f)
- void setUniformVec3Float (const std::string &variableName, const float f1, const float f2, const float f3)
- void setUniformVec4Float (const std::string &variableName, const Vector< float, 4 > &vec4f)
- void setUniformVec4Float (const std::string &variableName, const float f1, const float f2, const float f3, const float f4)
- void setUniformMat2Float (const std::string &variableName, const Matrix< float, 2 > &mat2f, const bool transpose=false)
- void setUniformMat2Float (const std::string &variableName, const float *f, const bool transpose=false)
- void setUniformMat3Float (const std::string &variableName, const Matrix< float, 3 > &mat3f, const bool transpose=false)
- void setUniformMat3Float (const std::string &variableName, const float *f, const bool transpose=false)
- void setUniformMat4Float (const std::string &variableName, const Matrix< float, 4 > &mat4f, const bool transpose=false)
- void setUniformMat4Float (const std::string &variableName, const float *f, const bool transpose=false)
- void setUniformInt (const std::string &variableName, const int f)
- void setUniformVec2Int (const std::string &variableName, const Vector< int, 2 > &vec2i)
- void setUniformVec2Int (const std::string &variableName, const float i1, const float i2)
- void setUniformVec3Int (const std::string &variableName, const Vector< int, 3 > &vec3i)
- void setUniformVec3Int (const std::string &variableName, const int i1, const int i2, const int i3)
- void setUniformVec4Int (const std::string &variableName, const Vector< int, 4 > &vec4i)
- void setUniformVec4Int (const std::string &variableName, const int i1, const int i2, const int i3, const int i4)
- void setUniformBool (const std::string &variableName, const bool b)
- void setUniformVec2Bool (const std::string &variableName, const Vector< bool, 2 > &vec2b)
- void setUniformVec2Bool (const std::string &variableName, const bool b1, const bool b2)
- void setUniformVec3Bool (const std::string &variableName, const Vector< bool, 3 > &vec3b)
- void setUniformVec3Bool (const std::string &variableName, const bool b1, const bool b2, const bool b3)
- void setUniformVec4Bool (const std::string &variableName, const Vector< bool, 4 > &vec4b)
- void setUniformVec4Bool (const std::string &variableName, const bool i1, const bool i2, const bool i3, const bool i4)
- void setAttributeFloat (const std::string &variableName, const float f)
- void setAttributeVec2Float (const std::string &variableName, const Vector< float, 2 > &vec2f)
- void setAttributeVec2Float (const std::string &variableName, const float f1, const float f2)
- void setAttributeVec3Float (const std::string &variableName, const Vector< float, 3 > &vec3f)
- void setAttributeVec3Float (const std::string &variableName, const float f1, const float f2, const float f3)
- void setAttributeVec4Float (const std::string &variableName, const Vector< float, 4 > &vec4f)
- void setAttributeVec4Float (const std::string &variableName, const float f1, const float f2, const float f3, const float f4)
- void setAttributeInt (const std::string &variableName, const int f)
- void setAttributeVec2Int (const std::string &variableName, const Vector< int, 2 > &vec2i)
- void setAttributeVec2Int (const std::string &variableName, const float i1, const float i2)
- void setAttributeVec3Int (const std::string &variableName, const Vector< int, 3 > &vec3i)
- void setAttributeVec3Int (const std::string &variableName, const int i1, const int i2, const int i3)
- void setAttributeVec4Int (const std::string &variableName, const Vector< int, 4 > &vec4i)
- void setAttributeVec4Int (const std::string &variableName, const int i1, const int i2, const int i3, const int i4)
- void setAttributeBool (const std::string &variableName, const bool b)
- void setAttributeVec2Bool (const std::string &variableName, const Vector< bool, 2 > &vec2b)
- void setAttributeVec2Bool (const std::string &variableName, const bool b1, const bool b2)
- void setAttributeVec3Bool (const std::string &variableName, const Vector< bool, 3 > &vec3b)
- void setAttributeVec3Bool (const std::string &variableName, const bool b1, const bool b2, const bool b3)
- void setAttributeVec4Bool (const std::string &variableName, const Vector< bool, 4 > &vec4b)
- void setAttributeVec4Bool (const std::string &variableName, const bool b1, const bool b2, const bool b3, const bool b4)
- void setUniformTextureSampler (const std::string &samplerVariateName, const int samplerId)
- void setUniformColor (const std::string &variableName, const Color &color)
- void setAttributeColor (const std::string &variableName, const Color &color)
- template<unsigned int SIZE> void setUniformFloatArray (const std::string &variableName, const Vector< float, SIZE > &vecf)
- void setUniformFloatArray (const std::string &variableName, const unsigned int fCount, const float *f)
- template<unsigned int SIZE> void setUniformVec2FloatArray (const std::string &variableName, const Vector< Vector< float, 2 >, SIZE > &vecvec2f)
- void setUniformVec2FloatArray (const std::string &variableName, const unsigned int vec2fCount, const float *f)
- template<unsigned int SIZE> void setUniformVec3FloatArray (const std::string &variableName, const Vector< Vector< float, 3 >, SIZE > &vecvec3f)
- void setUniformVec3FloatArray (const std::string &variableName, const unsigned int vec3fCount, const float *f)
- template<unsigned int SIZE> void setUniformVec4FloatArray (const std::string &variableName, const Vector< Vector< float, 4 >, SIZE > &vecvec4f)
- void setUniformVec4FloatArray (const std::string &variableName, const unsigned int vec4fCount, const float *f)
- template<unsigned int SIZE> void setUniformMat2FloatArray (const std::string &variableName, const Vector< Matrix< float, 2 >, SIZE > &vecmat2f, const bool transpose=false)
- void setUniformMat2FloatArray (const std::string &variableName, const unsigned int mat2fCount, const float *f, const bool transpose=false)
- template<unsigned int SIZE> void setUniformMat3FloatArray (const std::string &variableName, const Vector< Matrix< float, 3 >, SIZE > &vecmat3f, const bool transpose=false)
- void setUniformMat3FloatArray (const std::string &variableName, const unsigned int mat3fCount, const float *f, const bool transpose=false)
- template<unsigned int SIZE> void setUniformMat4FloatArray (const std::string &variableName, const Vector< Matrix< float, 4 >, SIZE > &vecmat4f, const bool transpose=false)
- void setUniformMat4FloatArray (const std::string &variableName, const unsigned int mat4fCount, const float *f, const bool transpose=false)
- template<unsigned int SIZE> void setUniformIntArray (const std::string &variableName, const Vector< int, SIZE > &veci)
- void setUniformIntArray (const std::string &variableName, const unsigned int iCount, const int *i)
- template<unsigned int SIZE> void setUniformVec2IntArray (const std::string &variableName, const Vector< Vector< int, 2 >, SIZE > &vecvec2i)
- void setUniformVec2IntArray (const std::string &variableName, const unsigned int vec2iCount, const int *i)
- template<unsigned int SIZE> void setUniformVec3IntArray (const std::string &variableName, const Vector< Vector< int, 3 >, SIZE > &vecvec3i)
- void setUniformVec3IntArray (const std::string &variableName, const unsigned int vec3iCount, const int *i)
- template<unsigned int SIZE> void setUniformVec4IntArray (const std::string &variableName, const Vector< Vector< int, 4 >, SIZE > &vecvec4i)
- void setUniformVec4IntArray (const std::string &variableName, const unsigned int vec4iCount, const int *i)
- template<unsigned int SIZE> void setUniformBoolArray (const std::string &variableName, const Vector< bool, SIZE > &vecb)
- void setUniformBoolArray (const std::string &variableName, const unsigned int bCount, const bool *b)
- template<unsigned int SIZE> void setUniformVec2BoolArray (const std::string &variableName, const Vector< Vector< bool, 2 >, SIZE > &vecvec2b)
- void setUniformVec2BoolArray (const std::string &variableName, const unsigned int vec2bCount, const bool *b)
- template<unsigned int SIZE> void setUniformVec3BoolArray (const std::string &variableName, const Vector< Vector< bool, 3 >, SIZE > &vecvec3b)
- void setUniformVec3BoolArray (const std::string &variableName, const unsigned int vec3bCount, const bool *b)
- template<unsigned int SIZE> void setUniformVec4BoolArray (const std::string &variableName, const Vector< Vector< bool, 4 >, SIZE > &vecvec4b)
- void setUniformVec4BoolArray (const std::string &variableName, const unsigned int vec4bCount, const bool *b)
- void getUniformFloatVariableValue (const std::string &variableName, float *value)
- void getUniformIntVariableValue (const std::string &variableName, int *value)
- void getUniformBoolVariableValue (const std::string &variableName, bool *value)
- void getUniformVec2BoolVariableValue (const std::string &variableName, bool *value)
- void getUniformVec3BoolVariableValue (const std::string &variableName, bool *value)
- void getUniformVec4BoolVariableValue (const std::string &variableName, bool *value)

## Constructor & Destructor Documentation

tlp::GlShaderProgram::GlShaderProgram | ( | const std::string & | name,
|  | const GLuint | programObjectId
| ) |

## Member Function Documentation

std::string tlp::GlShaderProgram::getName | ( |  | ) | const`[inline]`

GLuint tlp::GlShaderProgram::getShaderProgramId | ( |  | ) | const`[inline]`

void tlp::GlShaderProgram::getUniformBoolVariableValue | ( | const std::string & | variableName,
|  | bool * | value
| ) |

void tlp::GlShaderProgram::getUniformFloatVariableValue | ( | const std::string & | variableName,
|  | float * | value
| ) |

void tlp::GlShaderProgram::getUniformIntVariableValue | ( | const std::string & | variableName,
|  | int * | value
| ) |

void tlp::GlShaderProgram::getUniformVec2BoolVariableValue | ( | const std::string & | variableName,
|  | bool * | value
| ) |

void tlp::GlShaderProgram::getUniformVec3BoolVariableValue | ( | const std::string & | variableName,
|  | bool * | value
| ) |

void tlp::GlShaderProgram::getUniformVec4BoolVariableValue | ( | const std::string & | variableName,
|  | bool * | value
| ) |

void tlp::GlShaderProgram::setAttributeBool | ( | const std::string & | variableName,
|  | const bool | b
| ) |

void tlp::GlShaderProgram::setAttributeColor | ( | const std::string & | variableName,
|  | const Color & | color
| ) |

void tlp::GlShaderProgram::setAttributeFloat | ( | const std::string & | variableName,
|  | const float | f
| ) |

void tlp::GlShaderProgram::setAttributeInt | ( | const std::string & | variableName,
|  | const int | f
| ) |

void tlp::GlShaderProgram::setAttributeVec2Bool | ( | const std::string & | variableName,
|  | const bool | b1,
|  | const bool | b2
| ) |

void tlp::GlShaderProgram::setAttributeVec2Bool | ( | const std::string & | variableName,
|  | const Vector< bool, 2 > & | vec2b
| ) |

void tlp::GlShaderProgram::setAttributeVec2Float | ( | const std::string & | variableName,
|  | const float | f1,
|  | const float | f2
| ) |

void tlp::GlShaderProgram::setAttributeVec2Float | ( | const std::string & | variableName,
|  | const Vector< float, 2 > & | vec2f
| ) |

void tlp::GlShaderProgram::setAttributeVec2Int | ( | const std::string & | variableName,
|  | const float | i1,
|  | const float | i2
| ) |

void tlp::GlShaderProgram::setAttributeVec2Int | ( | const std::string & | variableName,
|  | const Vector< int, 2 > & | vec2i
| ) |

void tlp::GlShaderProgram::setAttributeVec3Bool | ( | const std::string & | variableName,
|  | const bool | b1,
|  | const bool | b2,
|  | const bool | b3
| ) |

void tlp::GlShaderProgram::setAttributeVec3Bool | ( | const std::string & | variableName,
|  | const Vector< bool, 3 > & | vec3b
| ) |

void tlp::GlShaderProgram::setAttributeVec3Float | ( | const std::string & | variableName,
|  | const float | f1,
|  | const float | f2,
|  | const float | f3
| ) |

void tlp::GlShaderProgram::setAttributeVec3Float | ( | const std::string & | variableName,
|  | const Vector< float, 3 > & | vec3f
| ) |

void tlp::GlShaderProgram::setAttributeVec3Int | ( | const std::string & | variableName,
|  | const int | i1,
|  | const int | i2,
|  | const int | i3
| ) |

void tlp::GlShaderProgram::setAttributeVec3Int | ( | const std::string & | variableName,
|  | const Vector< int, 3 > & | vec3i
| ) |

void tlp::GlShaderProgram::setAttributeVec4Bool | ( | const std::string & | variableName,
|  | const bool | b1,
|  | const bool | b2,
|  | const bool | b3,
|  | const bool | b4
| ) |

void tlp::GlShaderProgram::setAttributeVec4Bool | ( | const std::string & | variableName,
|  | const Vector< bool, 4 > & | vec4b
| ) |

void tlp::GlShaderProgram::setAttributeVec4Float | ( | const std::string & | variableName,
|  | const float | f1,
|  | const float | f2,
|  | const float | f3,
|  | const float | f4
| ) |

void tlp::GlShaderProgram::setAttributeVec4Float | ( | const std::string & | variableName,
|  | const Vector< float, 4 > & | vec4f
| ) |

void tlp::GlShaderProgram::setAttributeVec4Int | ( | const std::string & | variableName,
|  | const int | i1,
|  | const int | i2,
|  | const int | i3,
|  | const int | i4
| ) |

void tlp::GlShaderProgram::setAttributeVec4Int | ( | const std::string & | variableName,
|  | const Vector< int, 4 > & | vec4i
| ) |

void tlp::GlShaderProgram::setUniformBool | ( | const std::string & | variableName,
|  | const bool | b
| ) |

void tlp::GlShaderProgram::setUniformBoolArray | ( | const std::string & | variableName,
|  | const unsigned int | bCount,
|  | const bool * | b
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformBoolArray | ( | const std::string & | variableName,
|  | const Vector< bool, SIZE > & | vecb
| ) |

void tlp::GlShaderProgram::setUniformColor | ( | const std::string & | variableName,
|  | const Color & | color
| ) |

void tlp::GlShaderProgram::setUniformFloat | ( | const std::string & | variateName,
|  | const float | f
| ) |

void tlp::GlShaderProgram::setUniformFloatArray | ( | const std::string & | variableName,
|  | const unsigned int | fCount,
|  | const float * | f
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformFloatArray | ( | const std::string & | variableName,
|  | const Vector< float, SIZE > & | vecf
| ) |

void tlp::GlShaderProgram::setUniformInt | ( | const std::string & | variableName,
|  | const int | f
| ) |

void tlp::GlShaderProgram::setUniformIntArray | ( | const std::string & | variableName,
|  | const unsigned int | iCount,
|  | const int * | i
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformIntArray | ( | const std::string & | variableName,
|  | const Vector< int, SIZE > & | veci
| ) |

void tlp::GlShaderProgram::setUniformMat2Float | ( | const std::string & | variableName,
|  | const float * | f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformMat2Float | ( | const std::string & | variableName,
|  | const Matrix< float, 2 > & | mat2f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformMat2FloatArray | ( | const std::string & | variableName,
|  | const unsigned int | mat2fCount,
|  | const float * | f,
|  | const bool | transpose = `false`
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformMat2FloatArray | ( | const std::string & | variableName,
|  | const Vector< Matrix< float, 2 >, SIZE > & | vecmat2f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformMat3Float | ( | const std::string & | variableName,
|  | const float * | f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformMat3Float | ( | const std::string & | variableName,
|  | const Matrix< float, 3 > & | mat3f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformMat3FloatArray | ( | const std::string & | variableName,
|  | const unsigned int | mat3fCount,
|  | const float * | f,
|  | const bool | transpose = `false`
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformMat3FloatArray | ( | const std::string & | variableName,
|  | const Vector< Matrix< float, 3 >, SIZE > & | vecmat3f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformMat4Float | ( | const std::string & | variableName,
|  | const float * | f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformMat4Float | ( | const std::string & | variableName,
|  | const Matrix< float, 4 > & | mat4f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformMat4FloatArray | ( | const std::string & | variableName,
|  | const unsigned int | mat4fCount,
|  | const float * | f,
|  | const bool | transpose = `false`
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformMat4FloatArray | ( | const std::string & | variableName,
|  | const Vector< Matrix< float, 4 >, SIZE > & | vecmat4f,
|  | const bool | transpose = `false`
| ) |

void tlp::GlShaderProgram::setUniformTextureSampler | ( | const std::string & | samplerVariateName,
|  | const int | samplerId
| ) |

void tlp::GlShaderProgram::setUniformVec2Bool | ( | const std::string & | variableName,
|  | const bool | b1,
|  | const bool | b2
| ) |

void tlp::GlShaderProgram::setUniformVec2Bool | ( | const std::string & | variableName,
|  | const Vector< bool, 2 > & | vec2b
| ) |

void tlp::GlShaderProgram::setUniformVec2BoolArray | ( | const std::string & | variableName,
|  | const unsigned int | vec2bCount,
|  | const bool * | b
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec2BoolArray | ( | const std::string & | variableName,
|  | const Vector< Vector< bool, 2 >, SIZE > & | vecvec2b
| ) |

void tlp::GlShaderProgram::setUniformVec2Float | ( | const std::string & | variableName,
|  | const float | f1,
|  | const float | f2
| ) |

void tlp::GlShaderProgram::setUniformVec2Float | ( | const std::string & | variableName,
|  | const Vector< float, 2 > & | vec2f
| ) |

void tlp::GlShaderProgram::setUniformVec2FloatArray | ( | const std::string & | variableName,
|  | const unsigned int | vec2fCount,
|  | const float * | f
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec2FloatArray | ( | const std::string & | variableName,
|  | const Vector< Vector< float, 2 >, SIZE > & | vecvec2f
| ) |

void tlp::GlShaderProgram::setUniformVec2Int | ( | const std::string & | variableName,
|  | const float | i1,
|  | const float | i2
| ) |

void tlp::GlShaderProgram::setUniformVec2Int | ( | const std::string & | variableName,
|  | const Vector< int, 2 > & | vec2i
| ) |

void tlp::GlShaderProgram::setUniformVec2IntArray | ( | const std::string & | variableName,
|  | const unsigned int | vec2iCount,
|  | const int * | i
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec2IntArray | ( | const std::string & | variableName,
|  | const Vector< Vector< int, 2 >, SIZE > & | vecvec2i
| ) |

void tlp::GlShaderProgram::setUniformVec3Bool | ( | const std::string & | variableName,
|  | const bool | b1,
|  | const bool | b2,
|  | const bool | b3
| ) |

void tlp::GlShaderProgram::setUniformVec3Bool | ( | const std::string & | variableName,
|  | const Vector< bool, 3 > & | vec3b
| ) |

void tlp::GlShaderProgram::setUniformVec3BoolArray | ( | const std::string & | variableName,
|  | const unsigned int | vec3bCount,
|  | const bool * | b
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec3BoolArray | ( | const std::string & | variableName,
|  | const Vector< Vector< bool, 3 >, SIZE > & | vecvec3b
| ) |

void tlp::GlShaderProgram::setUniformVec3Float | ( | const std::string & | variableName,
|  | const float | f1,
|  | const float | f2,
|  | const float | f3
| ) |

void tlp::GlShaderProgram::setUniformVec3Float | ( | const std::string & | variableName,
|  | const Vector< float, 3 > & | vec3f
| ) |

void tlp::GlShaderProgram::setUniformVec3FloatArray | ( | const std::string & | variableName,
|  | const unsigned int | vec3fCount,
|  | const float * | f
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec3FloatArray | ( | const std::string & | variableName,
|  | const Vector< Vector< float, 3 >, SIZE > & | vecvec3f
| ) |

void tlp::GlShaderProgram::setUniformVec3Int | ( | const std::string & | variableName,
|  | const int | i1,
|  | const int | i2,
|  | const int | i3
| ) |

void tlp::GlShaderProgram::setUniformVec3Int | ( | const std::string & | variableName,
|  | const Vector< int, 3 > & | vec3i
| ) |

void tlp::GlShaderProgram::setUniformVec3IntArray | ( | const std::string & | variableName,
|  | const unsigned int | vec3iCount,
|  | const int * | i
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec3IntArray | ( | const std::string & | variableName,
|  | const Vector< Vector< int, 3 >, SIZE > & | vecvec3i
| ) |

void tlp::GlShaderProgram::setUniformVec4Bool | ( | const std::string & | variableName,
|  | const bool | i1,
|  | const bool | i2,
|  | const bool | i3,
|  | const bool | i4
| ) |

void tlp::GlShaderProgram::setUniformVec4Bool | ( | const std::string & | variableName,
|  | const Vector< bool, 4 > & | vec4b
| ) |

void tlp::GlShaderProgram::setUniformVec4BoolArray | ( | const std::string & | variableName,
|  | const unsigned int | vec4bCount,
|  | const bool * | b
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec4BoolArray | ( | const std::string & | variableName,
|  | const Vector< Vector< bool, 4 >, SIZE > & | vecvec4b
| ) |

void tlp::GlShaderProgram::setUniformVec4Float | ( | const std::string & | variableName,
|  | const float | f1,
|  | const float | f2,
|  | const float | f3,
|  | const float | f4
| ) |

void tlp::GlShaderProgram::setUniformVec4Float | ( | const std::string & | variableName,
|  | const Vector< float, 4 > & | vec4f
| ) |

void tlp::GlShaderProgram::setUniformVec4FloatArray | ( | const std::string & | variableName,
|  | const unsigned int | vec4fCount,
|  | const float * | f
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec4FloatArray | ( | const std::string & | variableName,
|  | const Vector< Vector< float, 4 >, SIZE > & | vecvec4f
| ) |

void tlp::GlShaderProgram::setUniformVec4Int | ( | const std::string & | variableName,
|  | const int | i1,
|  | const int | i2,
|  | const int | i3,
|  | const int | i4
| ) |

void tlp::GlShaderProgram::setUniformVec4Int | ( | const std::string & | variableName,
|  | const Vector< int, 4 > & | vec4i
| ) |

void tlp::GlShaderProgram::setUniformVec4IntArray | ( | const std::string & | variableName,
|  | const unsigned int | vec4iCount,
|  | const int * | i
| ) |

template<unsigned int SIZE>
void tlp::GlShaderProgram::setUniformVec4IntArray | ( | const std::string & | variableName,
|  | const Vector< Vector< int, 4 >, SIZE > & | vecvec4i
| ) |

Tulip Software by LaBRI Visualization Team 2001 - 2010