|
Graphite Version 3
An experimental 3D geometry processing program
|
Internal implementation of GLUP context. More...
#include <geogram_gfx/basic/common.h>#include <geogram_gfx/GLUP/GLUP.h>#include <geogram_gfx/GLUP/GLUP_marching_cells.h>#include <geogram_gfx/basic/GLSL.h>#include <map>Go to the source code of this file.
Classes | |
| class | GLUP::MatrixStack |
| A Matrix stack. More... | |
| struct | GLUP::MatrixStack::Matrix |
| class | GLUP::ImmediateBuffer |
| A buffer used by GLUP in immediate mode. More... | |
| class | GLUP::ImmediateState |
| Stores all the buffers used to implement the immediate-mode interface. More... | |
| class | GLUP::StateVariableBase |
| Base class for representing GLUP state variables. More... | |
| class | GLUP::StateVariable< T > |
| A GLUP state variable of a given type. More... | |
| class | GLUP::FloatsArrayStateVariable |
| A GLUP state variable that contains an array of floating points. This concerns both vectors and matrices. More... | |
| class | GLUP::VectorStateVariable |
| A GLUP state variable that contains a vector. More... | |
| struct | GLUP::UniformState |
| The set of state variables that represent GLUP uniform state. More... | |
| struct | GLUP::PrimitiveInfo |
| Stores the programs and vertex array object used to display a primitive of a given type. More... | |
| class | GLUP::Context |
| GLUP context stores a Uniform Buffer Object with state variables similar to OpenGL's fixed functionality pipeline, and a set of Vertex Buffer Objects to emulate OpenGL's immediate mode. More... | |
Enumerations | |
| enum | GLUP::GLUPattribute { GLUP_VERTEX_ATTRIBUTE = 0 , GLUP_COLOR_ATTRIBUTE = 1 , GLUP_TEX_COORD_ATTRIBUTE = 2 , GLUP_NORMAL_ATTRIBUTE = 3 , GLUP_VERTEX_ID_ATTRIBUTE = 4 } |
| Index of an ImmediateBuffer in the ImmediateState. More... | |
Functions | |
| GLboolean | GLUP::invert_matrix (GLfloat inv[16], const GLfloat m[16]) |
| Computes the inverse of a 4x4 matrix. | |
| GLboolean | GLUP::invert_matrix (GLdouble inv[16], const GLdouble m[16]) |
| Computes the inverse of a 4x4 matrix. | |
| void | GLUP::mult_matrices (GLfloat out[16], const GLfloat m1[16], const GLfloat m2[16]) |
| Computes the product of two 4x4 matrices. | |
| void | GLUP::mult_matrices (GLdouble out[16], const GLdouble m1[16], const GLdouble m2[16]) |
| Computes the product of two 4x4 matrices. | |
| void | GLUP::mult_matrix_vector (GLfloat out[4], const GLfloat m[16], const GLfloat v[4]) |
| Computes the product of a 4x4 matrix and a vector. | |
| void | GLUP::mult_transpose_matrix_vector (GLfloat out[4], const GLfloat m[16], const GLfloat v[4]) |
| Computes the product of the transpose of a 4x4 matrix and a vector. | |
| void | GLUP::mult_transpose_matrix_vector (GLdouble out[4], const GLdouble m[16], const GLdouble v[4]) |
| Computes the product of the transpose of a 4x4 matrix and a vector. | |
| void | GLUP::mult_matrix_vector (GLdouble out[4], const GLdouble m[16], const GLdouble v[4]) |
| Computes the product of a 4x4 matrix and a vector. | |
| void | GLUP::transpose_matrix (GLfloat m[16]) |
| Transposes a matrix in-place. | |
| void | GLUP::transpose_matrix (GLdouble m[16]) |
| Transposes a matrix in-place. | |
| void | GLUP::show_matrix (const GLfloat m[16]) |
| For debugging, outputs a matrix to the standard error. | |
| void | GLUP::show_matrix (const GLdouble m[16]) |
| For debugging, outputs a matrix to the standard error. | |
| void | GLUP::show_vector (const GLfloat v[4]) |
| For debugging, outputs a vector to the standard error. | |
| void | GLUP::show_vector (const GLdouble v[4]) |
| For debugging, outputs a vector to the standard error. | |
| void | GLUP::load_identity_matrix (GLfloat out[16]) |
| Resets a matrix to the identity matrix. | |
| void | GLUP::load_identity_matrix (GLdouble out[16]) |
| Resets a matrix to the identity matrix. | |
| void | GLUP::copy_vector (GLfloat *to, const GLfloat *from, index_t dim) |
| Copies a vector of floats. | |
| void | GLUP::copy_vector (GLdouble *to, const GLdouble *from, index_t dim) |
| Copies a vector of doubles. | |
| void | GLUP::copy_vector (GLfloat *to, const GLdouble *from, index_t dim) |
| Copies a vector of doubles to a vector of floats. | |
| void | GLUP::copy_vector (GLdouble *to, const GLfloat *from, index_t dim) |
| Copies a vector of floats to a vector of doubles. | |
| void | GLUP::normalize_vector (GLfloat v[3]) |
| Normalizes a vector. | |
Internal implementation of GLUP context.
Definition in file GLUP_context.h.
| enum GLUP::GLUPattribute |
Index of an ImmediateBuffer in the ImmediateState.
GLUP_VERTEX_ID_ATTRIBUTE is used internally
Definition at line 347 of file GLUP_context.h.
|
inline |
Copies a vector of doubles.
| [out] | to | a pointer to the destination vector |
| [in] | from | a const pointer to the source vector |
| [in] | dim | the number of components to copy |
Definition at line 226 of file GLUP_context.h.
|
inline |
Copies a vector of floats to a vector of doubles.
| [out] | to | a pointer to the destination vector |
| [in] | from | a const pointer to the source vector |
| [in] | dim | the number of components to copy |
Definition at line 248 of file GLUP_context.h.
|
inline |
Copies a vector of doubles to a vector of floats.
| [out] | to | a pointer to the destination vector |
| [in] | from | a const pointer to the source vector |
| [in] | dim | the number of components to copy |
Definition at line 236 of file GLUP_context.h.
|
inline |
Copies a vector of floats.
| [out] | to | a pointer to the destination vector |
| [in] | from | a const pointer to the source vector |
| [in] | dim | the number of components to copy |
Definition at line 216 of file GLUP_context.h.
| GLboolean GLUP::invert_matrix | ( | GLdouble | inv[16], |
| const GLdouble | m[16] | ||
| ) |
Computes the inverse of a 4x4 matrix.
| [out] | inv | the computed inverse of m |
| [in] | m | pointer to the input matrix |
| GL_TRUE | if the matrix m is invertible |
| GL_FALSE | if the matrix m is singular. Then inv receives the transpose of the comatrix of m |
| GLboolean GLUP::invert_matrix | ( | GLfloat | inv[16], |
| const GLfloat | m[16] | ||
| ) |
Computes the inverse of a 4x4 matrix.
| [out] | inv | the computed inverse of m |
| [in] | m | pointer to the input matrix |
| GL_TRUE | if the matrix m is invertible |
| GL_FALSE | if the matrix m is singular. Then inv receives the transpose of the comatrix of m |
| void GLUP::load_identity_matrix | ( | GLdouble | out[16] | ) |
Resets a matrix to the identity matrix.
| [out] | out | the matrix to be reset. |
| void GLUP::load_identity_matrix | ( | GLfloat | out[16] | ) |
Resets a matrix to the identity matrix.
| [out] | out | the matrix to be reset. |
| void GLUP::mult_matrices | ( | GLdouble | out[16], |
| const GLdouble | m1[16], | ||
| const GLdouble | m2[16] | ||
| ) |
Computes the product of two 4x4 matrices.
| [out] | out | the computed product m1 * m2 |
| [in] | m1,m2 | pointers to the input matrices |
| void GLUP::mult_matrices | ( | GLfloat | out[16], |
| const GLfloat | m1[16], | ||
| const GLfloat | m2[16] | ||
| ) |
Computes the product of two 4x4 matrices.
| [out] | out | the computed product m1 * m2 |
| [in] | m1,m2 | pointers to the input matrices |
| void GLUP::mult_matrix_vector | ( | GLdouble | out[4], |
| const GLdouble | m[16], | ||
| const GLdouble | v[4] | ||
| ) |
Computes the product of a 4x4 matrix and a vector.
| [out] | out | the computed product m * v |
| [in] | m | pointer to the input matrix |
| [in] | v | pointer to the input vector |
| void GLUP::mult_matrix_vector | ( | GLfloat | out[4], |
| const GLfloat | m[16], | ||
| const GLfloat | v[4] | ||
| ) |
Computes the product of a 4x4 matrix and a vector.
| [out] | out | the computed product m * v |
| [in] | m | pointer to the input matrix |
| [in] | v | pointer to the input vector \TODO: it seems that in GLSL, w = M*v uses the transpose form, maybe I should change the names !! |
| void GLUP::mult_transpose_matrix_vector | ( | GLdouble | out[4], |
| const GLdouble | m[16], | ||
| const GLdouble | v[4] | ||
| ) |
Computes the product of the transpose of a 4x4 matrix and a vector.
| [out] | out | the computed product m * v |
| [in] | m | pointer to the input matrix |
| [in] | v | pointer to the input vector \TODO: it seems that in GLSL, w = M*v uses this one, maybe I should change the names !! |
| void GLUP::mult_transpose_matrix_vector | ( | GLfloat | out[4], |
| const GLfloat | m[16], | ||
| const GLfloat | v[4] | ||
| ) |
Computes the product of the transpose of a 4x4 matrix and a vector.
| [out] | out | the computed product m * v |
| [in] | m | pointer to the input matrix |
| [in] | v | pointer to the input vector \TODO: it seems that in GLSL, w = M*v uses this one, maybe I should change the names !! |
|
inline |
Normalizes a vector.
| [in,out] | v | a pointer to the 3 coordinates of the 3d vector to be normalized. |
Definition at line 259 of file GLUP_context.h.
| void GLUP::show_matrix | ( | const GLdouble | m[16] | ) |
For debugging, outputs a matrix to the standard error.
| [in] | m | the matrix to be displayed. |
| void GLUP::show_matrix | ( | const GLfloat | m[16] | ) |
For debugging, outputs a matrix to the standard error.
| [in] | m | the matrix to be displayed. |
| void GLUP::show_vector | ( | const GLdouble | v[4] | ) |
For debugging, outputs a vector to the standard error.
| [in] | v | the vector to be displayed |
| void GLUP::show_vector | ( | const GLfloat | v[4] | ) |
For debugging, outputs a vector to the standard error.
| [in] | v | the vector to be displayed |
| void GLUP::transpose_matrix | ( | GLdouble | m[16] | ) |
Transposes a matrix in-place.
| [in,out] | m | a pointer to the 16 double-precision floating point coefficients of the matrix to be transposed. |
| void GLUP::transpose_matrix | ( | GLfloat | m[16] | ) |
Transposes a matrix in-place.
| [in,out] | m | a pointer to the 16 single-precision floating point coefficients of the matrix to be transposed. |