Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
enmath3d.c
Go to the documentation of this file.
1
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
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
447 static vector GetRandomDir()
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
503 proto static void BlendCartesian(vector samplePosition, notnull array<vector> inPositions, notnull array<float> outWeights);
504};
Definition enmath.c:7
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
ECurveType
Definition enmath3d.c:21
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
@ NaturalCubic
Definition enmath3d.c:23
@ CatmullRom
Definition enmath3d.c:22
@ UniformCubic
Definition enmath3d.c:24
Icon x
Icon y