File: al_build_camera_transform.3

package info (click to toggle)
allegro5 2%3A5.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 23,032 kB
  • sloc: ansic: 120,340; cpp: 15,707; objc: 4,805; python: 2,915; java: 2,195; sh: 887; xml: 86; makefile: 49; perl: 37; pascal: 24
file content (75 lines) | stat: -rw-r--r-- 1,853 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.TH "al_build_camera_transform" "3" "" "Allegro reference manual" ""
.SH NAME
.PP
al_build_camera_transform \- Allegro 5 API
.SH SYNOPSIS
.IP
.nf
\f[C]
#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)
\f[]
.fi
.SH DESCRIPTION
.PP
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\[aq]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).
.PP
For example:
.IP
.nf
\f[C]
al_build_camera_transform(&t,
\ \ \ \ 1,\ 1,\ 1,
\ \ \ \ 5,\ 5,\ 5,
\ \ \ \ 0,\ 1,\ 0);
\f[]
.fi
.PP
This create a transformation for a camera standing at 1/1/1 and looking
towards 5/5/5.
.RS
.PP
\f[I]Note\f[]: If the \f[I]position\f[] and \f[I]look\f[] parameters are
identical, or if the \f[I]up\f[] direction is parallel to the view
direction, an identity matrix is created.
.RE
.PP
Another example which will simply re\-create the identity matrix:
.IP
.nf
\f[C]
al_build_camera_transform(&t,
\ \ \ \ 0,\ 0,\ 0,
\ \ \ \ 0,\ 0,\ \-1,
\ \ \ \ 0,\ 1,\ 0);
\f[]
.fi
.PP
An example where the up vector will cause the camera to lean (roll) by
45 degrees:
.IP
.nf
\f[C]
al_build_camera_transform(&t,
\ \ \ \ 1,\ 1,\ 1,
\ \ \ \ 5,\ 5,\ 5,
\ \ \ \ 1,\ 1,\ 0);
\f[]
.fi
.PP
Since 5.1.9
.SH SEE ALSO
.PP
al_translate_transform_3d(3), al_rotate_transform_3d(3),
al_scale_transform_3d(3), al_compose_transform(3), al_use_transform(3)