DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
EnMath3D.c
См. документацию.
1
5
18proto native vector Vector(float x, float y, float z);
19
26
27class Math3D
28{
29 private void Math3D() {}
30 private void ~Math3D() {}
31
32 //-----------------------------------------------------------------
33 proto static vector ClipLine(vector start, vector end, vector norm, float d);
34
43 proto static float IntersectRaySphere(vector raybase, vector raycos, vector center, float radius);
44
53 proto static float IntersectRayBox(vector start, vector end, vector mins, vector maxs);
54
63 proto static bool IntersectSphereBox(vector origin, float radius, vector mins, vector maxs);
64
74 proto static bool IntersectSphereCone(vector origin, float radius, vector conepos, vector axis, float angle);
75
85 proto static bool IntersectWholeSphereCone(vector origin, float radius, vector conepos, vector axis, float angle);
86
97 proto static bool IntersectCylinderOBB(vector mins, vector maxs, vector obbMat[4], vector cylMat[4], float cylinderRadius, float cylinderHeight);
98
108 proto static bool IntersectRayCylinder(vector rayStart, vector rayEnd, vector center, float radius, float height);
109
119 proto static int IntersectRayPlane(vector rayStart, vector rayEnd, vector planeNormal, float planeDist, out vector intersection);
120
133 proto static void YawPitchRollMatrix(vector ang, out vector mat[3]);
134
150 proto static void DirectionAndUpMatrix(vector dir, vector up, out vector mat[4]);
151
167 proto static void MatrixMultiply4(vector mat0[4], vector mat1[4], out vector res[4]);
168
184 proto static void MatrixMultiply3(vector mat0[3], vector mat1[3], out vector res[3]);
185
201 proto static void MatrixInvMultiply4(vector mat0[4], vector mat1[4], out vector res[4]);
202
218 proto static void MatrixInvMultiply3(vector mat0[3], vector mat1[3], out vector res[3]);
219
224 proto static void MatrixInverse4(vector mat[4]);
225
230 proto static void MatrixInverse3(vector mat[3]);
231
236 proto static void MatrixOrthogonalize4(vector mat[4]);
237
242 proto static void MatrixOrthogonalize3(vector mat[3]);
243
255
256 static void MatrixIdentity4(out vector mat[4])
257 {
258 mat[0] = "1 0 0";
259 mat[1] = "0 1 0";
260 mat[2] = "0 0 1";
261 mat[3] = vector.Zero;
262 }
263
275 static void MatrixIdentity3(out vector mat[3])
276 {
277 mat[0] = "1 0 0";
278 mat[1] = "0 1 0";
279 mat[2] = "0 0 1";
280 }
281
294 static void ScaleMatrix(float scale, out vector mat[3])
295 {
296 vector v0, v1, v2;
297 v0[0] = scale;
298 v1[1] = scale;
299 v2[2] = scale;
300 mat[0] = v0;
301 mat[1] = v1;
302 mat[2] = v2;
303 }
304
316 static void QuatIdentity(out float q[4])
317 {
318 q[0] = 0;
319 q[1] = 0;
320 q[2] = 0;
321 q[3] = 1;
322 }
323
337 static void QuatCopy(float s[4], out float d[4])
338 {
339 d[0] = s[0];
340 d[1] = s[1];
341 d[2] = s[2];
342 d[3] = s[3];
343 }
344
360 proto static void MatrixToQuat(vector mat[3], out float d[4]);
361
362
364 proto static void QuatToMatrix(float q[4], out vector mat[3]);
365
379 proto static vector MatrixToAngles(vector mat[3]);
380
397 proto static void QuatLerp(out float qout[4], float q1[4], float q2[4], float frac);
398
414 proto static void QuatMultiply(out float qout[4], float q1[4], float q2[4]);
415
417 proto static vector QuatToAngles(float q[4]);
418
436 proto static int CheckBoundBox(vector mins1, vector maxs1, vector mins2, vector maxs2);
437
448 {
449 float x = Math.RandomFloatInclusive(-1, 1);
450 float y = Math.RandomFloatInclusive(-1, 1);
451 float z = Math.RandomFloatInclusive(-1, 1);
452
453 return Vector(x, y, z).Normalized();
454 }
455
456
471 proto static native vector Curve(ECurveType type, float param, notnull array<vector> points);
472
473
478 proto static vector NearestPoint(vector beg, vector end, vector pos);
479
484 proto static float AngleFromPosition(vector origin, vector originDir, vector target);
485
495 proto static void ConePoints(vector origin, float length, float halfAngle, float angleOffset, out vector leftPoint, out vector rightPoint);
496};
497
Icon x
Icon y
Определения EnMath.c:7
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto vector Normalized()
return normalized vector (keeps orginal vector untouched)
static const vector Zero
Определения EnConvert.c:110
Определения EnConvert.c:106
ECurveType
Определения EnMath3D.c:21
@ NaturalCubic
Определения EnMath3D.c:23
@ CatmullRom
Определения EnMath3D.c:22
@ UniformCubic
Определения EnMath3D.c:24
static void QuatIdentity(out float q[4])
Creates identity quaternion.
Определения EnMath3D.c:316
static proto void QuatToMatrix(float q[4], out vector mat[3])
Converts quaternion to rotation matrix.
static proto vector MatrixToAngles(vector mat[3])
Returns angles of rotation matrix.
static proto void QuatLerp(out float qout[4], float q1[4], float q2[4], float frac)
Linear interpolation between q1 and q2 with weight 'frac' (0...1)
static proto void MatrixOrthogonalize3(vector mat[3])
Orthogonalizes matrix.
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static void QuatCopy(float s[4], out float d[4])
Copies quaternion.
Определения EnMath3D.c:337
static proto float AngleFromPosition(vector origin, vector originDir, vector target)
Angle that a target is from the direction of an origin.
static proto int CheckBoundBox(vector mins1, vector maxs1, vector mins2, vector maxs2)
Returns 1, when bounding boxes intersects.
void Math3D()
Определения EnMath3D.c:29
static proto void MatrixMultiply4(vector mat0[4], vector mat1[4], out vector res[4])
Transforms matrix.
void ~Math3D()
Определения EnMath3D.c:30
static proto void MatrixInverse4(vector mat[4])
Inverses a matrix.
static proto vector ClipLine(vector start, vector end, vector norm, float d)
static proto void MatrixToQuat(vector mat[3], out float d[4])
Converts rotation matrix to quaternion.
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
static proto bool IntersectSphereCone(vector origin, float radius, vector conepos, vector axis, float angle)
Tests whether sphere is intersecting cone.
static proto void QuatMultiply(out float qout[4], float q1[4], float q2[4])
Multiplies quaternions.
static proto vector NearestPoint(vector beg, vector end, vector pos)
Point on line beg .. end nearest to pos.
static proto void ConePoints(vector origin, float length, float halfAngle, float angleOffset, out vector leftPoint, out vector rightPoint)
Calculates the points of a right 2D cone in 3D space.
static proto bool IntersectRayCylinder(vector rayStart, vector rayEnd, vector center, float radius, float height)
Tests whether ray is intersecting cylinder.
static proto int IntersectRayPlane(vector rayStart, vector rayEnd, vector planeNormal, float planeDist, out vector intersection)
Tests whether ray is intersecting plane.
static proto bool IntersectCylinderOBB(vector mins, vector maxs, vector obbMat[4], vector cylMat[4], float cylinderRadius, float cylinderHeight)
Tests whether cylinder is intersecting oriented box.
static proto bool IntersectSphereBox(vector origin, float radius, vector mins, vector maxs)
Tests whether sphere is intersecting axis aligned box.
static proto vector QuatToAngles(float q[4])
Returns Angles vector from quaternion.
static proto float IntersectRaySphere(vector raybase, vector raycos, vector center, float radius)
Tests whether ray is intersecting sphere.
static proto void MatrixMultiply3(vector mat0[3], vector mat1[3], out vector res[3])
Transforms rotation matrix.
static void ScaleMatrix(float scale, out vector mat[3])
Creates scale matrix.
Определения EnMath3D.c:294
static proto void MatrixInvMultiply4(vector mat0[4], vector mat1[4], out vector res[4])
Invert-transforms matrix.
static proto void MatrixInvMultiply3(vector mat0[3], vector mat1[3], out vector res[3])
Invert-transforms rotation matrix.
static void MatrixIdentity4(out vector mat[4])
Creates identity matrix.
Определения EnMath3D.c:256
static proto void DirectionAndUpMatrix(vector dir, vector up, out vector mat[4])
Creates rotation matrix from direction and up vector.
static proto void MatrixOrthogonalize4(vector mat[4])
Orthogonalizes matrix.
static proto void MatrixInverse3(vector mat[3])
Inverses a matrix.
static proto float IntersectRayBox(vector start, vector end, vector mins, vector maxs)
Tests whether ray is intersecting axis aligned box.
static vector GetRandomDir()
Returns randon normalized direction.
Определения EnMath3D.c:447
static proto native vector Curve(ECurveType type, float param, notnull array< vector > points)
Computes curve.
static void MatrixIdentity3(out vector mat[3])
Creates identity matrix.
Определения EnMath3D.c:275
static proto bool IntersectWholeSphereCone(vector origin, float radius, vector conepos, vector axis, float angle)
Tests whether sphere is fully inside cone.
static float RandomFloatInclusive(float min, float max)
Returns a random float number between and min [inclusive] and max [inclusive].
Определения EnMath.c:106