1al_check_inverse(3)                                        al_check_inverse(3)
2
3
4

NAME

6       al_check_inverse - Allegro 5 API
7

SYNOPSIS

9              #include <allegro5/allegro.h>
10
11              int al_check_inverse(const ALLEGRO_TRANSFORM *trans, float tol)
12

DESCRIPTION

14       Checks  if  the transformation has an inverse using the supplied toler‐
15       ance.  Tolerance should be a small value between 0  and  1,  with  1e-7
16       being sufficient for most applications.
17
18       In  this  function tolerance specifies how close the determinant can be
19       to 0 (if the determinant is 0,  the  transformation  has  no  inverse).
20       Thus the smaller the tolerance you specify, the "worse" transformations
21       will pass this test.  Using a  tolerance  of  1e-7  will  catch  errors
22       greater  than  1/1000's  of a pixel, but let smaller errors pass.  That
23       means that if you transformed a point  by  a  transformation  and  then
24       transformed  it  again  by  the inverse transformation that passed this
25       check, the resultant point should less than 1/1000's of  a  pixel  away
26       from the original point.
27
28       Note  that  this  check  is  superfluous  most of the time if you never
29       touched the transformation matrix values yourself.  The only thing that
30       would cause the transformation to not have an inverse is if you applied
31       a 0 (or very small) scale to the transformation or you  have  a  really
32       large  translation.   As  long as the scale is comfortably above 0, the
33       transformation will be invertible.
34
35       Parameters:
36
37       · trans - Transformation to check
38
39       · tol - Tolerance
40
41       Returns: 1 if the transformation is invertible, 0 otherwise
42

SEE ALSO

44       al_invert_transform(3)
45
46
47
48Allegro reference manual                                   al_check_inverse(3)
Impressum