aboutsummaryrefslogtreecommitdiff
path: root/doc/Manual/ru/BH_Mat4f.pod
blob: 35c45ffac1151117062963656064b016e794760f (plain)
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
=encoding UTF-8


=head1 НАИМЕНОВАНИЕ

BH_Mat4f - вещественная матрица 4x4


=head1 СИНТАКСИС

 #include <BH/Math/Mat4f.h>
 
 cc prog.c -o prog -lbh


=head1 ОПИСАНИЕ

Модуль BH_Mat4f предоставляет набор функций для работы с вещественными матрицами
размером 4x4. Эти функции позволяют выполнять различные операции над матрицами,
такие как сложение, вычитание, умножение, транспонирование, вычисление 
определителя и другие.


=head1 API ВЫЗОВЫ


=head2 BH_Mat4fIdentity

 void BH_Mat4fIdentity(float out[16]);

Записывает единичную матрицу в I<out>.


=head2 BH_Mat4fAdd

 void BH_Mat4fAdd(const float a[16],
                  const float b[16],
                  float out[16]);

Вычисляет сумму двух матриц I<a> и I<b>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fSub

 void BH_Mat4fSub(const float a[16],
                  const float b[16],
                  float out[16]);

Вычисляет разность двух матриц I<a> и I<b>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fMul

 void BH_Mat4fMul(const float a[16],
                  const float b[16],
                  float out[16]);

Вычисляет результат перемножения двух матриц I<a> и I<b>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fScale

 void BH_Mat4fScale(const float a[16],
                    float b,
                    float out[16]);

Вычисляет результат умножения матрицы I<a> на значение I<b>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fTranspose

 void BH_Mat4fTranspose(const float in[16],
                        float out[16]);

Транспонирует матрицу I<in>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fTrace

 float BH_Mat4fTrace(const float in[16]);

Вычисляет сумму элементов главной диагонали матрицы I<in>.


=head2 BH_Mat4fDet

 float BH_Mat4fDet(const float in[16]);

Вычисляет определитель матрицы I<in>.


=head2 BH_Mat4fInverse

 int BH_Mat4fInverse(const float in[16],
                     float out[16]);

Вычисляет обратную матрицу для I<in>.

Параметр I<out> описывает результирующую матрицу.

В случае успеха функция возвращает 0, в противном случае - код ошибки.


=head2 BH_Mat4fFromScale

 void BH_Mat4fFromScale(float x,
                        float y,
                        float z,
                        float out[16]);

Вычисляет масштабирующую матрицу с масштабами I<x>, I<y> и I<z>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromTranslation

 void BH_Mat4fFromTranslation(float x,
                              float y,
                              float z,
                              float out[16]);

Вычисляет матрицу смещения со значениями I<x>, I<y> и I<z>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromRotationX

 void BH_Mat4fFromRotationX(float angle,
                            float out[16]);

Вычисляет матрицу вращения относительно оси X с заданным углом I<angle>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromRotationY

 void BH_Mat4fFromRotationY(float angle,
                            float out[16]);

Вычисляет матрицу вращения относительно оси Y с заданным углом I<angle>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromRotationZ

 void BH_Mat4fFromRotationZ(float angle,
                            float out[16]);

Вычисляет матрицу вращения относительно оси Z с заданным углом I<angle>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromAxis

 void BH_Mat4fFromAxis(const float axis[3],
                       float angle,
                       float out[16]);

Вычисляет матрицу вращения относительно оси I<axis> с заданным углом I<angle>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromEuler

 void BH_Mat4fFromEuler(float roll,
                        float pitch,
                        float yaw,
                        float out[16]);

Вычисляет матрицу вращения из углов связанной системы координат I<roll>,
I<pitch> и I<yaw>.

Порядок применения вращения ZYX (yaw, pitch, roll).

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromQuat4f

 void BH_Mat4fFromQuat4f(const float in[4],
                         float out[16]);

Вычисляет матрицу вращения из кватерниона I<in>.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromOrtho

 void BH_Mat4fFromOrtho(float xMin,
                        float xMax,
                        float yMin,
                        float yMax,
                        float zMin,
                        float zMax,
                        float out[16]);

Вычисляет матрицу ортографической проекции.

Параметры I<xMin> и I<xMax> определяют допустимый диапазон значений X
координат.

Параметры I<yMin> и I<yMax> определяют допустимый диапазон значений Y
координат.

Параметры I<zMin> и I<zMax> определяют допустимый диапазон значений Z
координат.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromFrustum

 void BH_Mat4fFromFrustum(float fov,
                          float aspect,
                          float zMin,
                          float zMax,
                          float out[16]);

Вычисляет матрицу перспективной проекции.

Параметр I<fov> определяет угол обзора.

Параметр I<aspect> определяет соотношение сторон.

Параметры I<zMin> и I<zMax> определяют допустимый диапазон значений Z
координат.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fFromLookAt

 void BH_Mat4fFromLookAt(const float position[3],
                         const float at[3],
                         const float up[3],
                         float out[16]);

Вычисляет видовую матрицу камеры.

Параметр I<position> определяет положение камеры в пространстве.

Параметр I<at> определяет точку, куда направлена камера.

Параметр I<up> определяет «верх» камеры.

Параметр I<out> описывает результирующую матрицу.


=head2 BH_Mat4fApplyVec4f

 void BH_Mat4fApplyVec4f(const float a[16],
                         const float b[4],
                         float out[4]);

Вычисляет результат перемножения матрицы I<a> и вектора I<b>.

Параметр I<out> описывает результирующий вектор.


=head2 BH_Mat4fApplyVec3f

 void BH_Mat4fApplyVec3f(const float a[16],
                         const float b[3],
                         float out[3]);

Вычисляет результат перемножения матрицы I<a> и вектора I<b>.

Параметр I<out> описывает результирующий вектор.


=head1 СМ. ТАКЖЕ

L<BH>