A structure capable of holding a 4x4 matrix.
The contents of the Graphene.Matrix.Graphene_Matrix_T structure are private and should never be accessed directly.
function Decompose
(Self : not null access Graphene_Matrix_T;
Translate : not null access Graphene.Vec3.Graphene_Vec3_T;
Scale : not null access Graphene.Vec3.Graphene_Vec3_T;
Rotate : not null access Graphene.Quaternion.Graphene_Quaternion_T;
Shear : not null access Graphene.Vec3.Graphene_Vec3_T;
Perspective : not null access Graphene.Vec4.Graphene_Vec4_T)
return Boolean
Decomposes a transformation matrix into its component transformations. The algorithm for decomposing a matrix is taken from the CSS3 Transforms specification; specifically, the decomposition code is based on the equivalent code published in "Graphics Gems II", edited by Jim Arvo, and available online.
the translation vector
the scale vector
the rotation quaternion
the shear vector
the perspective vector
true if the matrix could be decomposed
function Determinant
(Self : not null access Graphene_Matrix_T) return Interfaces.C.C_float
Computes the determinant of the given matrix. Since: gtk+ 1.0
the value of the determinant
function Equal
(Self : not null access Graphene_Matrix_T;
B : not null access Graphene_Matrix_T) return Boolean
Checks whether the two given Graphene.Matrix.Graphene_Matrix_T matrices are equal. Since: gtk+ 1.10
a Graphene.Matrix.Graphene_Matrix_T
true if the two matrices are equal, and false otherwise
function Equal_Fast
(Self : not null access Graphene_Matrix_T;
B : not null access Graphene_Matrix_T) return Boolean
Checks whether the two given Graphene.Matrix.Graphene_Matrix_T matrices are byte-by-byte equal. While this function is faster than Graphene.Matrix.Equal, it can also return false negatives, so it should be used in conjuction with either Graphene.Matrix.Equal or Graphene.Matrix.Near. For instance:
if (graphene_matrix_equal_fast (a, b))
{
// matrices are definitely the same
}
else
{
if (graphene_matrix_equal (a, b))
// matrices contain the same values within an epsilon of FLT_EPSILON
else if (graphene_matrix_near (a, b, 0.0001))
// matrices contain the same values within an epsilon of 0.0001
else
// matrices are not equal
}
Since: gtk+ 1.10
a Graphene.Matrix.Graphene_Matrix_T
true if the matrices are equal. and false otherwise
procedure Free (Self : not null access Graphene_Matrix_T)
Frees the resources allocated by graphene_matrix_alloc. Since: gtk+ 1.0
function From_Object_Free
(B : not null access Graphene_Matrix_T) return Graphene_Matrix_T
Return the underlying object and free the pointer. This is meant to be used internally by GtkAda, and should not in general be called by user code.
procedure Get_Row
(Self : not null access Graphene_Matrix_T;
Index : Guint;
Res : not null access Graphene.Vec4.Graphene_Vec4_T)
Retrieves the given row vector at Index_ inside a matrix. Since: gtk+ 1.0
the index of the row vector, between 0 and 3
return location for the Graphene.Vec4.Graphene_Vec4_T that is used to store the row vector
function Get_Type return Glib.GType
function Get_Value
(Self : not null access Graphene_Matrix_T;
Row : Guint;
Col : Guint) return Interfaces.C.C_float
Retrieves the value at the given Row and Col index. Since: gtk+ 1.0
the row index
the column index
the value at the given indices
function Get_X_Scale
(Self : not null access Graphene_Matrix_T) return Interfaces.C.C_float
Retrieves the scaling factor on the X axis in M. Since: gtk+ 1.0
the value of the scaling factor
function Get_X_Translation
(Self : not null access Graphene_Matrix_T) return Interfaces.C.C_float
Retrieves the translation component on the X axis from M. Since: gtk+ 1.10
the translation component
function Get_Y_Scale
(Self : not null access Graphene_Matrix_T) return Interfaces.C.C_float
Retrieves the scaling factor on the Y axis in M. Since: gtk+ 1.0
the value of the scaling factor
function Get_Y_Translation
(Self : not null access Graphene_Matrix_T) return Interfaces.C.C_float
Retrieves the translation component on the Y axis from M. Since: gtk+ 1.10
the translation component
function Get_Z_Scale
(Self : not null access Graphene_Matrix_T) return Interfaces.C.C_float
Retrieves the scaling factor on the Z axis in M. Since: gtk+ 1.0
the value of the scaling factor
function Get_Z_Translation
(Self : not null access Graphene_Matrix_T) return Interfaces.C.C_float
Retrieves the translation component on the Z axis from M. Since: gtk+ 1.10
the translation component
type Graphene_Matrix_T is record
Value : Graphene.Config.Graphene_Simd4x4f;
end record;
A structure capable of holding a 4x4 matrix.
The contents of the Graphene.Matrix.Graphene_Matrix_T structure are private and should never be accessed directly.
function Init_From_2D
(Self : not null access Graphene_Matrix_T;
Xx : Gdouble;
Yx : Gdouble;
Xy : Gdouble;
Yy : Gdouble;
X_0 : Gdouble;
Y_0 : Gdouble) return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T from the values of an affine transformation matrix. The arguments map to the following matrix layout:
â xx yx â â a b 0 â
â xy yy â = â c d 0 â
â x0 y0 â â tx ty 1 â
This function can be used to convert between an affine matrix type from other libraries and a Graphene.Matrix.Graphene_Matrix_T. Since: gtk+ 1.0
the xx member
the yx member
the xy member
the yy member
the x0 member
the y0 member
the initialized matrix
function Init_From_Matrix
(Self : not null access Graphene_Matrix_T;
Src : not null access Graphene_Matrix_T)
return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T using the values of the given matrix. Since: gtk+ 1.0
a Graphene.Matrix.Graphene_Matrix_T
the initialized matrix
function Init_From_Vec4
(Self : not null access Graphene_Matrix_T;
V0 : not null access Graphene.Vec4.Graphene_Vec4_T;
V1 : not null access Graphene.Vec4.Graphene_Vec4_T;
V2 : not null access Graphene.Vec4.Graphene_Vec4_T;
V3 : not null access Graphene.Vec4.Graphene_Vec4_T)
return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T with the given four row vectors. Since: gtk+ 1.0
the first row vector
the second row vector
the third row vector
the fourth row vector
the initialized matrix
function Init_Frustum
(Self : not null access Graphene_Matrix_T;
Left : Interfaces.C.C_float;
Right : Interfaces.C.C_float;
Bottom : Interfaces.C.C_float;
Top : Interfaces.C.C_float;
Z_Near : Interfaces.C.C_float;
Z_Far : Interfaces.C.C_float) return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T compatible with Graphene.Frustum.Graphene_Frustum_T. See also: Graphene.Frustum.Init_From_Matrix Since: gtk+ 1.2
distance of the left clipping plane
distance of the right clipping plane
distance of the bottom clipping plane
distance of the top clipping plane
distance of the near clipping plane
distance of the far clipping plane
the initialized matrix
function Init_Identity
(Self : not null access Graphene_Matrix_T)
return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T with the identity matrix. Since: gtk+ 1.0
the initialized matrix
function Init_Look_At
(Self : not null access Graphene_Matrix_T;
Eye : not null access Graphene.Vec3.Graphene_Vec3_T;
Center : not null access Graphene.Vec3.Graphene_Vec3_T;
Up : not null access Graphene.Vec3.Graphene_Vec3_T)
return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T so that it positions the "camera" at the given Eye coordinates towards an object at the Center coordinates. The top of the camera is aligned to the direction of the Up vector. Before the transform, the camera is assumed to be placed at the origin, looking towards the negative Z axis, with the top side of the camera facing in the direction of the Y axis and the right side in the direction of the X axis. In theory, one could use M to transform a model of such a camera into world-space. However, it is more common to use the inverse of M to transform another object from world coordinates to the view coordinates of the camera. Typically you would then apply the camera projection transform to get from view to screen coordinates. Since: gtk+ 1.0
the vector describing the position to look from
the vector describing the position to look at
the vector describing the world's upward direction; usually, this is the Graphene.Vec3.Y_Axis vector
the initialized matrix
function Init_Ortho
(Self : not null access Graphene_Matrix_T;
Left : Interfaces.C.C_float;
Right : Interfaces.C.C_float;
Top : Interfaces.C.C_float;
Bottom : Interfaces.C.C_float;
Z_Near : Interfaces.C.C_float;
Z_Far : Interfaces.C.C_float) return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T with an orthographic projection. Since: gtk+ 1.0
the left edge of the clipping plane
the right edge of the clipping plane
the top edge of the clipping plane
the bottom edge of the clipping plane
the distance of the near clipping plane
the distance of the far clipping plane
the initialized matrix
function Init_Perspective
(Self : not null access Graphene_Matrix_T;
Fovy : Interfaces.C.C_float;
Aspect : Interfaces.C.C_float;
Z_Near : Interfaces.C.C_float;
Z_Far : Interfaces.C.C_float) return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T with a perspective projection. Since: gtk+ 1.0
the field of view angle, in degrees
the aspect value
the near Z plane
the far Z plane
the initialized matrix
function Init_Rotate
(Self : not null access Graphene_Matrix_T;
Angle : Interfaces.C.C_float;
Axis : not null access Graphene.Vec3.Graphene_Vec3_T)
return access Graphene_Matrix_T
Initializes M to represent a rotation of Angle degrees on the axis represented by the Axis vector. Since: gtk+ 1.0
the rotation angle, in degrees
the axis vector as a Graphene.Vec3.Graphene_Vec3_T
the initialized matrix
function Init_Scale
(Self : not null access Graphene_Matrix_T;
X : Interfaces.C.C_float;
Y : Interfaces.C.C_float;
Z : Interfaces.C.C_float) return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T with the given scaling factors. Since: gtk+ 1.0
the scale factor on the X axis
the scale factor on the Y axis
the scale factor on the Z axis
the initialized matrix
function Init_Skew
(Self : not null access Graphene_Matrix_T;
X_Skew : Interfaces.C.C_float;
Y_Skew : Interfaces.C.C_float) return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T with a skew transformation with the given factors. Since: gtk+ 1.0
skew factor, in radians, on the X axis
skew factor, in radians, on the Y axis
the initialized matrix
function Init_Translate
(Self : not null access Graphene_Matrix_T;
P : not null access Graphene.Point3d.Graphene_Point3D_T)
return access Graphene_Matrix_T
Initializes a Graphene.Matrix.Graphene_Matrix_T with a translation to the given coordinates. Since: gtk+ 1.0
the translation coordinates
the initialized matrix
procedure Interpolate
(Self : not null access Graphene_Matrix_T;
B : not null access Graphene_Matrix_T;
Factor : Gdouble;
Res : not null access Graphene_Matrix_T)
Linearly interpolates the two given Graphene.Matrix.Graphene_Matrix_T by interpolating the decomposed transformations separately. If either matrix cannot be reduced to their transformations then the interpolation cannot be performed, and this function will return an identity matrix. Since: gtk+ 1.0
a Graphene.Matrix.Graphene_Matrix_T
the linear interpolation factor
return location for the interpolated matrix
function Inverse
(Self : not null access Graphene_Matrix_T;
Res : not null access Graphene_Matrix_T) return Boolean
Inverts the given matrix. Since: gtk+ 1.0
return location for the inverse matrix
true if the matrix is invertible
function Is_2D (Self : not null access Graphene_Matrix_T) return Boolean
Checks whether the given Graphene.Matrix.Graphene_Matrix_T is compatible with an a 2D affine transformation matrix. Since: gtk+ 1.0
true if the matrix is compatible with an affine transformation matrix
function Is_Backface_Visible
(Self : not null access Graphene_Matrix_T) return Boolean
Checks whether a Graphene.Matrix.Graphene_Matrix_T has a visible back face. Since: gtk+ 1.0
true if the back face of the matrix is visible
function Is_Identity
(Self : not null access Graphene_Matrix_T) return Boolean
Checks whether the given Graphene.Matrix.Graphene_Matrix_T is the identity matrix. Since: gtk+ 1.0
true if the matrix is the identity matrix
function Is_Singular
(Self : not null access Graphene_Matrix_T) return Boolean
Checks whether a matrix is singular. Since: gtk+ 1.0
true if the matrix is singular
procedure Multiply
(Self : not null access Graphene_Matrix_T;
B : not null access Graphene_Matrix_T;
Res : not null access Graphene_Matrix_T)
Multiplies two Graphene.Matrix.Graphene_Matrix_T. Matrix multiplication is not commutative in general; the order of the factors matters. The product of this multiplication is (A Ã B) Since: gtk+ 1.0
a Graphene.Matrix.Graphene_Matrix_T
return location for the matrix result
function Near
(Self : not null access Graphene_Matrix_T;
B : not null access Graphene_Matrix_T;
Epsilon : Interfaces.C.C_float) return Boolean
Compares the two given Graphene.Matrix.Graphene_Matrix_T matrices and checks whether their values are within the given Epsilon of each other. Since: gtk+ 1.10
a Graphene.Matrix.Graphene_Matrix_T
the threshold between the two matrices
true if the two matrices are near each other, and false otherwise
procedure Normalize
(Self : not null access Graphene_Matrix_T;
Res : not null access Graphene_Matrix_T)
Normalizes the given Graphene.Matrix.Graphene_Matrix_T. Since: gtk+ 1.0
return location for the normalized matrix
procedure Perspective
(Self : not null access Graphene_Matrix_T;
Depth : Interfaces.C.C_float;
Res : not null access Graphene_Matrix_T)
Applies a perspective of Depth to the matrix. Since: gtk+ 1.0
the depth of the perspective
return location for the perspective matrix
procedure Print (Self : not null access Graphene_Matrix_T)
Prints the contents of a matrix to the standard error stream. This function is only useful for debugging; there are no guarantees made on the format of the output. Since: gtk+ 1.0
procedure Project_Point
(Self : not null access Graphene_Matrix_T;
P : not null access Graphene.Point.Graphene_Point_T;
Res : not null access Graphene.Point.Graphene_Point_T)
Projects a Graphene.Point.Graphene_Point_T using the matrix M. Since: gtk+ 1.0
a Graphene.Point.Graphene_Point_T
return location for the projected point
procedure Project_Rect
(Self : not null access Graphene_Matrix_T;
R : not null access Graphene.Rect.Graphene_Rect_T;
Res : not null access Graphene.Quad.Graphene_Quad_T)
Projects all corners of a Graphene.Rect.Graphene_Rect_T using the given matrix. See also: Graphene.Matrix.Project_Point Since: gtk+ 1.2
a Graphene.Rect.Graphene_Rect_T
return location for the projected rectangle
procedure Project_Rect_Bounds
(Self : not null access Graphene_Matrix_T;
R : not null access Graphene.Rect.Graphene_Rect_T;
Res : not null access Graphene.Rect.Graphene_Rect_T)
Projects a Graphene.Rect.Graphene_Rect_T using the given matrix. The resulting rectangle is the axis aligned bounding rectangle capable of fully containing the projected rectangle. Since: gtk+ 1.0
a Graphene.Rect.Graphene_Rect_T
return location for the projected rectangle
procedure Rotate
(Self : not null access Graphene_Matrix_T;
Angle : Interfaces.C.C_float;
Axis : not null access Graphene.Vec3.Graphene_Vec3_T)
Adds a rotation transformation to M, using the given Angle and Axis vector. This is the equivalent of calling Graphene.Matrix.Init_Rotate and then multiplying the matrix M with the rotation matrix. Since: gtk+ 1.0
the rotation angle, in degrees
the rotation axis, as a Graphene.Vec3.Graphene_Vec3_T
procedure Rotate_Euler
(Self : not null access Graphene_Matrix_T;
E : not null access Graphene.Euler.Graphene_Euler_T)
Adds a rotation transformation to M, using the given Graphene.Euler.Graphene_Euler_T. Since: gtk+ 1.2
a rotation described by a Graphene.Euler.Graphene_Euler_T
procedure Rotate_Quaternion
(Self : not null access Graphene_Matrix_T;
Q : not null access Graphene.Quaternion.Graphene_Quaternion_T)
Adds a rotation transformation to M, using the given Graphene.Quaternion.Graphene_Quaternion_T. This is the equivalent of calling Graphene.Quaternion.To_Matrix and then multiplying M with the rotation matrix. Since: gtk+ 1.2
a rotation described by a Graphene.Quaternion.Graphene_Quaternion_T
procedure Rotate_X
(Self : not null access Graphene_Matrix_T;
Angle : Interfaces.C.C_float)
Adds a rotation transformation around the X axis to M, using the given Angle. See also: Graphene.Matrix.Rotate Since: gtk+ 1.0
the rotation angle, in degrees
procedure Rotate_Y
(Self : not null access Graphene_Matrix_T;
Angle : Interfaces.C.C_float)
Adds a rotation transformation around the Y axis to M, using the given Angle. See also: Graphene.Matrix.Rotate Since: gtk+ 1.0
the rotation angle, in degrees
procedure Rotate_Z
(Self : not null access Graphene_Matrix_T;
Angle : Interfaces.C.C_float)
Adds a rotation transformation around the Z axis to M, using the given Angle. See also: Graphene.Matrix.Rotate Since: gtk+ 1.0
the rotation angle, in degrees
procedure Scale
(Self : not null access Graphene_Matrix_T;
Factor_X : Interfaces.C.C_float;
Factor_Y : Interfaces.C.C_float;
Factor_Z : Interfaces.C.C_float)
Adds a scaling transformation to M, using the three given factors. This is the equivalent of calling Graphene.Matrix.Init_Scale and then multiplying the matrix M with the scale matrix. Since: gtk+ 1.0
scaling factor on the X axis
scaling factor on the Y axis
scaling factor on the Z axis
procedure Skew_Xy
(Self : not null access Graphene_Matrix_T;
Factor : Interfaces.C.C_float)
Adds a skew of Factor on the X and Y axis to the given matrix. Since: gtk+ 1.0
skew factor
procedure Skew_Xz
(Self : not null access Graphene_Matrix_T;
Factor : Interfaces.C.C_float)
Adds a skew of Factor on the X and Z axis to the given matrix. Since: gtk+ 1.0
skew factor
procedure Skew_Yz
(Self : not null access Graphene_Matrix_T;
Factor : Interfaces.C.C_float)
Adds a skew of Factor on the Y and Z axis to the given matrix. Since: gtk+ 1.0
skew factor
function To_2D
(Self : not null access Graphene_Matrix_T;
Xx : out Gdouble;
Yx : out Gdouble;
Xy : out Gdouble;
Yy : out Gdouble;
X_0 : out Gdouble;
Y_0 : out Gdouble) return Boolean
Converts a Graphene.Matrix.Graphene_Matrix_T to an affine transformation matrix, if the given matrix is compatible. The returned values have the following layout:
â xx yx â â a b 0 â
â xy yy â = â c d 0 â
â x0 y0 â â tx ty 1 â
This function can be used to convert between a Graphene.Matrix.Graphene_Matrix_T and an affine matrix type from other libraries. Since: gtk+ 1.0
return location for the xx member
return location for the yx member
return location for the xy member
return location for the yy member
return location for the x0 member
return location for the y0 member
true if the matrix is compatible with an affine transformation matrix
procedure Transform_Bounds
(Self : not null access Graphene_Matrix_T;
R : not null access Graphene.Rect.Graphene_Rect_T;
Res : not null access Graphene.Rect.Graphene_Rect_T)
Transforms each corner of a Graphene.Rect.Graphene_Rect_T using the given matrix M. The result is the axis aligned bounding rectangle containing the coplanar quadrilateral. See also: Graphene.Matrix.Transform_Point Since: gtk+ 1.0
a Graphene.Rect.Graphene_Rect_T
return location for the bounds of the transformed rectangle
procedure Transform_Box
(Self : not null access Graphene_Matrix_T;
B : not null access Graphene.Box.Graphene_Box_T;
Res : not null access Graphene.Box.Graphene_Box_T)
Transforms the vertices of a Graphene.Box.Graphene_Box_T using the given matrix M. The result is the axis aligned bounding box containing the transformed vertices. Since: gtk+ 1.2
a Graphene.Box.Graphene_Box_T
return location for the bounds of the transformed box
procedure Transform_Point
(Self : not null access Graphene_Matrix_T;
P : not null access Graphene.Point.Graphene_Point_T;
Res : not null access Graphene.Point.Graphene_Point_T)
Transforms the given Graphene.Point.Graphene_Point_T using the matrix M. Unlike Graphene.Matrix.Transform_Vec3, this function will take into account the fourth row vector of the Graphene.Matrix.Graphene_Matrix_T when computing the dot product of each row vector of the matrix. See also: graphene_simd4x4f_point3_mul Since: gtk+ 1.0
a Graphene.Point.Graphene_Point_T
return location for the transformed Graphene.Point.Graphene_Point_T
procedure Transform_Point3D
(Self : not null access Graphene_Matrix_T;
P : not null access Graphene.Point3d.Graphene_Point3D_T;
Res : not null access Graphene.Point3d.Graphene_Point3D_T)
Transforms the given Graphene.Point3d.Graphene_Point3D_T using the matrix M. Unlike Graphene.Matrix.Transform_Vec3, this function will take into account the fourth row vector of the Graphene.Matrix.Graphene_Matrix_T when computing the dot product of each row vector of the matrix. See also: graphene_simd4x4f_point3_mul Since: gtk+ 1.2
a Graphene.Point3d.Graphene_Point3D_T
return location for the result
procedure Transform_Ray
(Self : not null access Graphene_Matrix_T;
R : not null access Graphene.Ray.Graphene_Ray_T;
Res : not null access Graphene.Ray.Graphene_Ray_T)
Transform a Graphene.Ray.Graphene_Ray_T using the given matrix M. Since: gtk+ 1.4
a Graphene.Ray.Graphene_Ray_T
return location for the transformed ray
procedure Transform_Rect
(Self : not null access Graphene_Matrix_T;
R : not null access Graphene.Rect.Graphene_Rect_T;
Res : not null access Graphene.Quad.Graphene_Quad_T)
Transforms each corner of a Graphene.Rect.Graphene_Rect_T using the given matrix M. The result is a coplanar quadrilateral. See also: Graphene.Matrix.Transform_Point Since: gtk+ 1.0
a Graphene.Rect.Graphene_Rect_T
return location for the transformed quad
procedure Transform_Sphere
(Self : not null access Graphene_Matrix_T;
S : not null access Graphene.Sphere.Graphene_Sphere_T;
Res : not null access Graphene.Sphere.Graphene_Sphere_T)
Transforms a Graphene.Sphere.Graphene_Sphere_T using the given matrix M. The result is the bounding sphere containing the transformed sphere. Since: gtk+ 1.2
a Graphene.Sphere.Graphene_Sphere_T
return location for the bounds of the transformed sphere
procedure Transform_Vec3
(Self : not null access Graphene_Matrix_T;
V : not null access Graphene.Vec3.Graphene_Vec3_T;
Res : not null access Graphene.Vec3.Graphene_Vec3_T)
Transforms the given Graphene.Vec3.Graphene_Vec3_T using the matrix M. This function will multiply the X, Y, and Z row vectors of the matrix M with the corresponding components of the vector V. The W row vector will be ignored. See also: graphene_simd4x4f_vec3_mul Since: gtk+ 1.0
a Graphene.Vec3.Graphene_Vec3_T
return location for a Graphene.Vec3.Graphene_Vec3_T
procedure Transform_Vec4
(Self : not null access Graphene_Matrix_T;
V : not null access Graphene.Vec4.Graphene_Vec4_T;
Res : not null access Graphene.Vec4.Graphene_Vec4_T)
Transforms the given Graphene.Vec4.Graphene_Vec4_T using the matrix M. See also: graphene_simd4x4f_vec4_mul Since: gtk+ 1.0
a Graphene.Vec4.Graphene_Vec4_T
return location for a Graphene.Vec4.Graphene_Vec4_T
procedure Translate
(Self : not null access Graphene_Matrix_T;
Pos : not null access Graphene.Point3d.Graphene_Point3D_T)
Adds a translation transformation to M using the coordinates of the given Graphene.Point3d.Graphene_Point3D_T. This is the equivalent of calling Graphene.Matrix.Init_Translate and then multiplying M with the translation matrix. Since: gtk+ 1.0
a Graphene.Point3d.Graphene_Point3D_T
procedure Transpose
(Self : not null access Graphene_Matrix_T;
Res : not null access Graphene_Matrix_T)
Transposes the given matrix. Since: gtk+ 1.0
return location for the transposed matrix
procedure Unproject_Point3D
(Self : not null access Graphene_Matrix_T;
Modelview : not null access Graphene_Matrix_T;
Point : not null access Graphene.Point3d.Graphene_Point3D_T;
Res : not null access Graphene.Point3d.Graphene_Point3D_T)
Unprojects the given Point using the Projection matrix and a Modelview matrix. Since: gtk+ 1.2
a Graphene.Matrix.Graphene_Matrix_T for the modelview matrix; this is the inverse of the modelview used when projecting the point
a Graphene.Point3d.Graphene_Point3D_T with the coordinates of the point
return location for the unprojected point
procedure Untransform_Bounds
(Self : not null access Graphene_Matrix_T;
R : not null access Graphene.Rect.Graphene_Rect_T;
Bounds : not null access Graphene.Rect.Graphene_Rect_T;
Res : not null access Graphene.Rect.Graphene_Rect_T)
Undoes the transformation on the corners of a Graphene.Rect.Graphene_Rect_T using the given matrix, within the given axis aligned rectangular Bounds. Since: gtk+ 1.0
a Graphene.Rect.Graphene_Rect_T
the bounds of the transformation
return location for the untransformed rectangle
function Untransform_Point
(Self : not null access Graphene_Matrix_T;
P : not null access Graphene.Point.Graphene_Point_T;
Bounds : not null access Graphene.Rect.Graphene_Rect_T;
Res : not null access Graphene.Point.Graphene_Point_T)
return Boolean
Undoes the transformation of a Graphene.Point.Graphene_Point_T using the given matrix, within the given axis aligned rectangular Bounds. Since: gtk+ 1.0
a Graphene.Point.Graphene_Point_T
the bounds of the transformation
return location for the untransformed point
true if the point was successfully untransformed