Provided by: allegro5-doc_5.2.3.0-1_all bug

NAME

       al_build_camera_transform - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro.h>

              void al_build_camera_transform(ALLEGRO_TRANSFORM *trans,
                 float position_x, float position_y, float position_z,
                 float look_x, float look_y, float look_z,
                 float up_x, float up_y, float up_z)

DESCRIPTION

       Builds  a  transformation  which can be used to transform 3D coordinates in world space to
       camera space.  This involves translation and  a  rotation.   The  function  expects  three
       coordinate  triplets:  The camera's position, the position the camera is looking at and an
       up vector.  The up vector does not need to be of unit length and also does not need to  be
       perpendicular  to the view direction - it can usually just be the world up direction (most
       commonly 0/1/0).

       For example:

              al_build_camera_transform(&t,
                  1, 1, 1,
                  5, 5, 5,
                  0, 1, 0);

       This create a transformation for a camera standing at 1/1/1 and looking towards 5/5/5.

              Note: If the position and look parameters are identical, or if the up direction  is
              parallel to the view direction, an identity matrix is created.

       Another example which will simply re-create the identity matrix:

              al_build_camera_transform(&t,
                  0, 0, 0,
                  0, 0, -1,
                  0, 1, 0);

       An example where the up vector will cause the camera to lean (roll) by 45 degrees:

              al_build_camera_transform(&t,
                  1, 1, 1,
                  5, 5, 5,
                  1, 1, 0);

       Since 5.1.9

SEE ALSO

       al_translate_transform_3d(3alleg5),                       al_rotate_transform_3d(3alleg5),
       al_scale_transform_3d(3alleg5), al_compose_transform(3alleg5), al_use_transform(3alleg5)