libgpac
Documentation of the core library of GPAC
|
import"evg.idl";
Public Member Functions | |
Matrix | copy (Matrix from) |
boolean | equal (Matrix other) |
Matrix | translate (float x, float y, float z) |
Matrix | translate (Vec3f v) |
Matrix | scale (float x, float y, float z) |
Matrix | scale (Vec3f v) |
Matrix | rotate (float x, float y, float z, float angle) |
Matrix | rotate (Vec4f v) |
Matrix | add (Matrix mul, optional boolean do_4x4=false) |
Matrix | inverse (optional boolean do_4x4=false) |
Matrix | transpose () |
Matrix | ortho (float left, float right, float bottom, float top, float z_near, float z_far) |
Matrix | perspective (float fov, float aspect_ratio, float z_near, float z_far) |
Matrix | lookat (Vec3f position, Vec3f target, Vec3f up_vector) |
Rectf | apply (Rectf rc) |
Vec4f | apply (Vec4f v) |
Vec3f | apply (Vec3f v) |
Data Fields | |
attribute boolean | identity |
attribute const boolean | is3D = true |
attribute Array< float > | m |
attribute readonly float | yaw |
attribute readonly float | pitch |
attribute readonly float | roll |
attribute readonly Vec3f | dec_translate |
attribute readonly Vec3f | dec_scale |
attribute readonly Vec4f | dec_rotate |
attribute readonly Vec3f | dec_shear |
Matrix 4x4 object.
The Matrix object can be imported using:
Most transformation values return the matrix object so that transformations can be chained:
All objects (Vec3f, Vec4f, Rectf) used in the API do not use constructors, their type is inferred if the expected attributes (eg x y, ...) are present in the object
copies matrix
from | matrix to copy coeficient from |
boolean Matrix::equal | ( | Matrix | other | ) |
check matrices are equal
other | matrix to compare with |
Matrix Matrix::translate | ( | float | x, |
float | y, | ||
float | z | ||
) |
translate a matrix
x | X translation value |
y | Y translation value |
z | Z translation value |
translate a matrix
v | translation vector |
Matrix Matrix::scale | ( | float | x, |
float | y, | ||
float | z | ||
) |
scale a matrix
x | X scale value |
y | Y scale value |
z | Z scale value |
Matrix Matrix::rotate | ( | float | x, |
float | y, | ||
float | z, | ||
float | angle | ||
) |
rotate a matrix
x | X value of rotation axis vector |
y | Y value of rotation axis vector |
z | Z value of rotation axis vector |
angle | rotation angle in radians |
scale a matrix
v | rotation vector+angle |
multiplies with another matrix (mx = mx * mul)
mul | the matrix |
do_4x4 | if true, performs full multiplication on each row/col, otherwise handles last row as 0 0 0 1 |
Matrix Matrix::inverse | ( | optional boolean | do_4x4 = false | ) |
inverse the matrix
do_4x4 | if true, performs full inversion on each row/col, otherwise handles last row as 0 0 0 1 |
Matrix Matrix::transpose | ( | ) |
transposes the matrix
Matrix Matrix::ortho | ( | float | left, |
float | right, | ||
float | bottom, | ||
float | top, | ||
float | z_near, | ||
float | z_far | ||
) |
Loads an orthogonal projection matrix
left | min horizontal coordinate of viewport |
right | max horizontal coordinate of viewport |
bottom | min vertical coordinate of viewport |
top | max vertical coordinate of viewport |
z_near | min depth coordinate of viewport |
z_far | max depth coordinate of viewport |
Matrix Matrix::perspective | ( | float | fov, |
float | aspect_ratio, | ||
float | z_near, | ||
float | z_far | ||
) |
loads a perspective projection matrix
fov | camera field of view angle in radian |
aspect_ratio | viewport aspect ratio |
z_near | min depth coordinate of viewport |
z_far | max depth coordinate of viewport |
loads a lookat matrix
position | position |
target | look direction |
up_vector | vector describing the up direction |
transforms a rectangle
rc | the rectangle to transform |
transforms a 4D vector
v | the 4D vector to transform |
transforms a 3D vector
v | the 3D vector to transform |
attribute boolean Matrix::identity |
indicates if matrix is identity. If set to true, resets matrix
attribute const boolean Matrix::is3D = true |
indicates matrix is a 3D matrix
attribute Array<float> Matrix::m |
float buffer of coeficients (typically use matrix.m to pass matrices uniforms)
attribute readonly float Matrix::yaw |
yaw value of matrix
attribute readonly float Matrix::pitch |
pitch value of matrix
attribute readonly float Matrix::roll |
roll value of matrix
attribute readonly Vec3f Matrix::dec_translate |
translation value of decomposed matrix
attribute readonly Vec3f Matrix::dec_scale |
scale value of decomposed matrix
attribute readonly Vec4f Matrix::dec_rotate |
rotation value of decomposed matrix
attribute readonly Vec3f Matrix::dec_shear |
shear value of decomposed matrix