Provided by: allegro5-doc_5.2.9.1+dfsg-1.1build4_all bug

NAME

       al_check_inverse - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro.h>

              int al_check_inverse(const ALLEGRO_TRANSFORM *trans, float tol)

DESCRIPTION

       Checks  if  the  transformation has an inverse using the supplied tolerance.  Tolerance should be a small
       value between 0 and 1, with 1e-7 being sufficient for most applications.

       In this function tolerance specifies how close the determinant can be to 0 (if the determinant is 0,  the
       transformation  has no inverse).  Thus the smaller the tolerance you specify, the “worse” transformations
       will pass this test.  Using a tolerance of 1e-7 will catch errors greater than 1/1000’s of a  pixel,  but
       let  smaller errors pass.  That means that if you transformed a point by a transformation and then trans‐
       formed it again by the inverse transformation that passed this check, the  resultant  point  should  less
       than 1/1000’s of a pixel away from the original point.

       Note  that this check is superfluous most of the time if you never touched the transformation matrix val‐
       ues yourself.  The only thing that would cause the transformation to not have an inverse is  if  you  ap‐
       plied a 0 (or very small) scale to the transformation or you have a really large translation.  As long as
       the scale is comfortably above 0, the transformation will be invertible.

       Parameters:

       • trans - Transformation to check

       • tol - Tolerance

       Returns: 1 if the transformation is invertible, 0 otherwise

              Note: Allegro’s transformation inversion functions work correctly only with 2D transformations.

SEE ALSO

       al_invert_transform(3alleg5)

Allegro reference manual                                                               al_check_inverse(3alleg5)