mirror of
https://github.com/Not-Nik/raylib-zig.git
synced 2025-09-09 12:07:27 +00:00
130 lines
7.2 KiB
Zig
Executable File
130 lines
7.2 KiB
Zig
Executable File
const rl = @import("raylib-zig.zig");
|
|
|
|
const Matrix = rl.Matrix;
|
|
const Quaternion = rl.Quaternion;
|
|
const Vector2 = rl.Vector2;
|
|
const Vector3 = rl.Vector3;
|
|
const Vector4 = rl.Vector4;
|
|
|
|
pub const float3 = extern struct {
|
|
v: [3]f32,
|
|
};
|
|
|
|
pub const float16 = extern struct {
|
|
v: [16]f32,
|
|
};
|
|
|
|
pub extern fn Clamp(value: f32, min: f32, max: f32) f32;
|
|
pub extern fn Lerp(start: f32, end: f32, amount: f32) f32;
|
|
pub extern fn Normalize(value: f32, start: f32, end: f32) f32;
|
|
pub extern fn Remap(value: f32, inputStart: f32, inputEnd: f32, outputStart: f32, outputEnd: f32) f32;
|
|
pub extern fn Wrap(value: f32, min: f32, max: f32) f32;
|
|
pub extern fn FloatEquals(x: f32, y: f32) c_int;
|
|
pub extern fn Vector2Zero() Vector2;
|
|
pub extern fn Vector2One() Vector2;
|
|
pub extern fn Vector2Add(v1: Vector2, v2: Vector2) Vector2;
|
|
pub extern fn Vector2AddValue(v: Vector2, add: f32) Vector2;
|
|
pub extern fn Vector2Subtract(v1: Vector2, v2: Vector2) Vector2;
|
|
pub extern fn Vector2SubtractValue(v: Vector2, sub: f32) Vector2;
|
|
pub extern fn Vector2Length(v: Vector2) f32;
|
|
pub extern fn Vector2LengthSqr(v: Vector2) f32;
|
|
pub extern fn Vector2DotProduct(v1: Vector2, v2: Vector2) f32;
|
|
pub extern fn Vector2Distance(v1: Vector2, v2: Vector2) f32;
|
|
pub extern fn Vector2DistanceSqr(v1: Vector2, v2: Vector2) f32;
|
|
pub extern fn Vector2Angle(v1: Vector2, v2: Vector2) f32;
|
|
pub extern fn Vector2Scale(v: Vector2, scale: f32) Vector2;
|
|
pub extern fn Vector2Multiply(v1: Vector2, v2: Vector2) Vector2;
|
|
pub extern fn Vector2Negate(v: Vector2) Vector2;
|
|
pub extern fn Vector2Divide(v1: Vector2, v2: Vector2) Vector2;
|
|
pub extern fn Vector2Normalize(v: Vector2) Vector2;
|
|
pub extern fn Vector2Transform(v: Vector2, mat: Matrix) Vector2;
|
|
pub extern fn Vector2Lerp(v1: Vector2, v2: Vector2, amount: f32) Vector2;
|
|
pub extern fn Vector2Reflect(v: Vector2, normal: Vector2) Vector2;
|
|
pub extern fn Vector2Rotate(v: Vector2, angle: f32) Vector2;
|
|
pub extern fn Vector2MoveTowards(v: Vector2, target: Vector2, maxDistance: f32) Vector2;
|
|
pub extern fn Vector2Invert(v: Vector2) Vector2;
|
|
pub extern fn Vector2Clamp(v: Vector2, min: Vector2, max: Vector2) Vector2;
|
|
pub extern fn Vector2ClampValue(v: Vector2, min: f32, max: f32) Vector2;
|
|
pub extern fn Vector2Equals(p: Vector2, q: Vector2) c_int;
|
|
pub extern fn Vector3Zero() Vector3;
|
|
pub extern fn Vector3One() Vector3;
|
|
pub extern fn Vector3Add(v1: Vector3, v2: Vector3) Vector3;
|
|
pub extern fn Vector3AddValue(v: Vector3, add: f32) Vector3;
|
|
pub extern fn Vector3Subtract(v1: Vector3, v2: Vector3) Vector3;
|
|
pub extern fn Vector3SubtractValue(v: Vector3, sub: f32) Vector3;
|
|
pub extern fn Vector3Scale(v: Vector3, scalar: f32) Vector3;
|
|
pub extern fn Vector3Multiply(v1: Vector3, v2: Vector3) Vector3;
|
|
pub extern fn Vector3CrossProduct(v1: Vector3, v2: Vector3) Vector3;
|
|
pub extern fn Vector3Perpendicular(v: Vector3) Vector3;
|
|
pub extern fn Vector3Length(v: Vector3) f32;
|
|
pub extern fn Vector3LengthSqr(v: Vector3) f32;
|
|
pub extern fn Vector3DotProduct(v1: Vector3, v2: Vector3) f32;
|
|
pub extern fn Vector3Distance(v1: Vector3, v2: Vector3) f32;
|
|
pub extern fn Vector3DistanceSqr(v1: Vector3, v2: Vector3) f32;
|
|
pub extern fn Vector3Angle(v1: Vector3, v2: Vector3) f32;
|
|
pub extern fn Vector3Negate(v: Vector3) Vector3;
|
|
pub extern fn Vector3Divide(v1: Vector3, v2: Vector3) Vector3;
|
|
pub extern fn Vector3Normalize(v: Vector3) Vector3;
|
|
pub extern fn Vector3OrthoNormalize(v1: [*c]Vector3, v2: [*c]Vector3) void;
|
|
pub extern fn Vector3Transform(v: Vector3, mat: Matrix) Vector3;
|
|
pub extern fn Vector3RotateByQuaternion(v: Vector3, q: Quaternion) Vector3;
|
|
pub extern fn Vector3RotateByAxisAngle(v: Vector3, axis: Vector3, angle: f32) Vector3;
|
|
pub extern fn Vector3Lerp(v1: Vector3, v2: Vector3, amount: f32) Vector3;
|
|
pub extern fn Vector3Reflect(v: Vector3, normal: Vector3) Vector3;
|
|
pub extern fn Vector3Min(v1: Vector3, v2: Vector3) Vector3;
|
|
pub extern fn Vector3Max(v1: Vector3, v2: Vector3) Vector3;
|
|
pub extern fn Vector3Barycenter(p: Vector3, a: Vector3, b: Vector3, c: Vector3) Vector3;
|
|
pub extern fn Vector3Unproject(source: Vector3, projection: Matrix, view: Matrix) Vector3;
|
|
pub extern fn Vector3ToFloatV(v: Vector3) float3;
|
|
pub extern fn Vector3Invert(v: Vector3) Vector3;
|
|
pub extern fn Vector3Clamp(v: Vector3, min: Vector3, max: Vector3) Vector3;
|
|
pub extern fn Vector3ClampValue(v: Vector3, min: f32, max: f32) Vector3;
|
|
pub extern fn Vector3Equals(p: Vector3, q: Vector3) c_int;
|
|
pub extern fn Vector3Refract(v: Vector3, n: Vector3, r: f32) Vector3;
|
|
pub extern fn MatrixDeterminant(mat: Matrix) f32;
|
|
pub extern fn MatrixTrace(mat: Matrix) f32;
|
|
pub extern fn MatrixTranspose(mat: Matrix) Matrix;
|
|
pub extern fn MatrixInvert(mat: Matrix) Matrix;
|
|
pub extern fn MatrixIdentity() Matrix;
|
|
pub extern fn MatrixAdd(left: Matrix, right: Matrix) Matrix;
|
|
pub extern fn MatrixSubtract(left: Matrix, right: Matrix) Matrix;
|
|
pub extern fn MatrixMultiply(left: Matrix, right: Matrix) Matrix;
|
|
pub extern fn MatrixTranslate(x: f32, y: f32, z: f32) Matrix;
|
|
pub extern fn MatrixRotate(axis: Vector3, angle: f32) Matrix;
|
|
pub extern fn MatrixRotateX(angle: f32) Matrix;
|
|
pub extern fn MatrixRotateY(angle: f32) Matrix;
|
|
pub extern fn MatrixRotateZ(angle: f32) Matrix;
|
|
pub extern fn MatrixRotateXYZ(angle: Vector3) Matrix;
|
|
pub extern fn MatrixRotateZYX(angle: Vector3) Matrix;
|
|
pub extern fn MatrixScale(x: f32, y: f32, z: f32) Matrix;
|
|
pub extern fn MatrixFrustum(left: f64, right: f64, bottom: f64, top: f64, near: f64, far: f64) Matrix;
|
|
pub extern fn MatrixPerspective(fovy: f64, aspect: f64, near: f64, far: f64) Matrix;
|
|
pub extern fn MatrixOrtho(left: f64, right: f64, bottom: f64, top: f64, near: f64, far: f64) Matrix;
|
|
pub extern fn MatrixLookAt(eye: Vector3, target: Vector3, up: Vector3) Matrix;
|
|
pub extern fn MatrixToFloatV(mat: Matrix) float16;
|
|
pub extern fn QuaternionAdd(q1: Quaternion, q2: Quaternion) Quaternion;
|
|
pub extern fn QuaternionAddValue(q: Quaternion, add: f32) Quaternion;
|
|
pub extern fn QuaternionSubtract(q1: Quaternion, q2: Quaternion) Quaternion;
|
|
pub extern fn QuaternionSubtractValue(q: Quaternion, sub: f32) Quaternion;
|
|
pub extern fn QuaternionIdentity() Quaternion;
|
|
pub extern fn QuaternionLength(q: Quaternion) f32;
|
|
pub extern fn QuaternionNormalize(q: Quaternion) Quaternion;
|
|
pub extern fn QuaternionInvert(q: Quaternion) Quaternion;
|
|
pub extern fn QuaternionMultiply(q1: Quaternion, q2: Quaternion) Quaternion;
|
|
pub extern fn QuaternionScale(q: Quaternion, mul: f32) Quaternion;
|
|
pub extern fn QuaternionDivide(q1: Quaternion, q2: Quaternion) Quaternion;
|
|
pub extern fn QuaternionLerp(q1: Quaternion, q2: Quaternion, amount: f32) Quaternion;
|
|
pub extern fn QuaternionNlerp(q1: Quaternion, q2: Quaternion, amount: f32) Quaternion;
|
|
pub extern fn QuaternionSlerp(q1: Quaternion, q2: Quaternion, amount: f32) Quaternion;
|
|
pub extern fn QuaternionFromVector3ToVector3(from: Vector3, to: Vector3) Quaternion;
|
|
pub extern fn QuaternionFromMatrix(mat: Matrix) Quaternion;
|
|
pub extern fn QuaternionToMatrix(q: Quaternion) Matrix;
|
|
pub extern fn QuaternionFromAxisAngle(axis: Vector3, angle: f32) Quaternion;
|
|
pub extern fn QuaternionToAxisAngle(q: Quaternion, outAxis: [*c]Vector3, outAngle: [*c]f32) void;
|
|
pub extern fn QuaternionFromEuler(pitch: f32, yaw: f32, roll: f32) Quaternion;
|
|
pub extern fn QuaternionToEuler(q: Quaternion) Vector3;
|
|
pub extern fn QuaternionTransform(q: Quaternion, mat: Matrix) Quaternion;
|
|
pub extern fn QuaternionEquals(p: Quaternion, q: Quaternion) c_int;
|
|
|
|
|