aboutsummaryrefslogtreecommitdiff
path: root/doc/Manual/ru/BH_Ray3f.pod
blob: 8905426992a5e707d2981ecd64b03f44dace71f4 (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
=encoding UTF-8


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

BH_Ray3f, BH_Segment3f - луч/сегмент в пространстве


=head1 СИНТАКСИС

 #include <BH/Math/Ray3f.h>

 cc prog.c -o prog -lbh


=head1 ОПИСАНИЕ

Данный модуль предоставляет функции для работы с лучами и сегментами в
трёхмерном пространстве. Он включает в себя методы для проверки пересечений
лучей и сегментов с плоскостями, треугольниками и ограничивающими
прямоугольниками.


=head1 API ВЫЗОВЫ


=head2 BH_Ray3fIntersectPlane

 int BH_Ray3fIntersectPlane(const float start[3],
                            const float direction[3],
                            const float plane[4],
                            float *t,
                            float out[3]);

Проверяет пересечение между лучом и плоскостью.

Параметры I<start> и I<direction> описывают луч.

Параметр I<plane> описывает плоскость.

Параметр I<t> описывает результирующее время пересечения луча.

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

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


=head2 BH_Ray3fIntersectTriangle

 int BH_Ray3fIntersectTriangle(const float start[3],
                               const float direction[3],
                               const float a[3],
                               const float b[3],
                               const float c[3],
                               float *t,
                               float out[3]);

Проверяет пересечение между лучом и треугольником.

Параметры I<start> и I<direction> описывают луч.

Параметры I<a>, I<b>, I<c> описывают точки треугольника.

Параметр I<t> описывает результирующее время пересечения луча.

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

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


=head2 BH_Segment3fIntersectPlane

 int BH_Segment3fIntersectPlane(const float start[3],
                                const float end[3],
                                const float plane[4],
                                float *t,
                                float out[3]);

Проверяет пересечение между сегментом и плоскостью.

Параметры I<start> и I<end> описывают сегмент.

Параметр I<plane> описывает плоскость.

Параметр I<t> описывает результирующее время пересечения сегмента.

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

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


=head2 BH_Segment3fIntersectTriangle

 int BH_Segment3fIntersectTriangle(const float start[3],
                                   const float end[3],
                                   const float a[3],
                                   const float b[3],
                                   const float c[3],
                                   float *t,
                                   float out[3]);

Проверяет пересечение между сегментом и треугольником.

Параметры I<start> и I<end> описывают сегмент.

Параметры I<a>, I<b>, I<c> описывают точки треугольника.

Параметр I<t> описывает результирующее время пересечения луча.

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

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


=head2 BH_Ray3fIntersectBox3f

 int BH_Ray3fIntersectBox3f(const float aStart[3],
                            const float aDirection[3],
                            const float bMin[3],
                            const float bMax[3],
                            float *t,
                            float out[3]);

Проверяет пересечение между лучом и ограничивающим прямоугольником.

Параметры I<aStart> и I<aDirection> описывают луч.

Параметры I<bMin> и I<bMax> описывают ограничивающий прямоугольник.

Параметр I<t> описывает результирующее время пересечения первого сегмента.

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

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


=head2 BH_Segment3fIntersectBox3f

 int BH_Segment3fIntersectBox3f(const float aStart[3],
                                const float aEnd[3],
                                const float bMin[3],
                                const float bMax[3],
                                float *t,
                                float out[3]);

Проверяет пересечение между сегментом и ограничивающим прямоугольником.

Параметры I<aStart> и I<aEnd> описывают сегмент.

Параметры I<bMin> и I<bMax> описывают ограничивающий прямоугольник.

Параметр I<t> описывает результирующее время пересечения первого сегмента.

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

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


=head1 СМ. ТАКЖЕ

L<BH>