logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

al_build_camera_transform - Allegro 5 API

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

Name

       al_build_camera_transform - Allegro 5 API

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)

Allegro reference manual                                                      al_build_camera_transform(3alleg5)

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)

See Also