Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
al_check_inverse(3)	    Library Functions Manual	     al_check_inverse(3)

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  suffi-
     cient 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 transformed  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 values yourself.  The only thing that would cause
     the  transformation  to  not have an inverse is if you applied 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 in-
     vertible.

     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(3)

Allegro reference manual				     al_check_inverse(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=al_check_inverse&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help