123 lines
7.5 KiB
Plaintext
123 lines
7.5 KiB
Plaintext
float3 :: struct {
|
|
v: [3]float;
|
|
}
|
|
|
|
float16 :: struct {
|
|
v: [16]float;
|
|
}
|
|
|
|
Clamp :: proc(value: float, min: float, max: float): float; @api
|
|
Lerp :: proc(start: float, end: float, amount: float): float; @api
|
|
Normalize :: proc(value: float, start: float, end: float): float; @api
|
|
Remap :: proc(value: float, inputStart: float, inputEnd: float, outputStart: float, outputEnd: float): float; @api
|
|
Wrap :: proc(value: float, min: float, max: float): float; @api
|
|
FloatEquals :: proc(x: float, y: float): int; @api
|
|
Vector2Zero :: proc(): Vector2; @api
|
|
Vector2One :: proc(): Vector2; @api
|
|
Vector2Add :: proc(v1: Vector2, v2: Vector2): Vector2; @api
|
|
Vector2AddValue :: proc(v: Vector2, add: float): Vector2; @api
|
|
Vector2Subtract :: proc(v1: Vector2, v2: Vector2): Vector2; @api
|
|
Vector2SubtractValue :: proc(v: Vector2, sub: float): Vector2; @api
|
|
Vector2Length :: proc(v: Vector2): float; @api
|
|
Vector2LengthSqr :: proc(v: Vector2): float; @api
|
|
Vector2DotProduct :: proc(v1: Vector2, v2: Vector2): float; @api
|
|
Vector2Distance :: proc(v1: Vector2, v2: Vector2): float; @api
|
|
Vector2DistanceSqr :: proc(v1: Vector2, v2: Vector2): float; @api
|
|
Vector2Angle :: proc(v1: Vector2, v2: Vector2): float; @api
|
|
Vector2LineAngle :: proc(start: Vector2, end: Vector2): float; @api
|
|
Vector2Scale :: proc(v: Vector2, scale: float): Vector2; @api
|
|
Vector2Multiply :: proc(v1: Vector2, v2: Vector2): Vector2; @api
|
|
Vector2Negate :: proc(v: Vector2): Vector2; @api
|
|
Vector2Divide :: proc(v1: Vector2, v2: Vector2): Vector2; @api
|
|
Vector2Normalize :: proc(v: Vector2): Vector2; @api
|
|
Vector2Transform :: proc(v: Vector2, mat: Matrix): Vector2; @api
|
|
Vector2Lerp :: proc(v1: Vector2, v2: Vector2, amount: float): Vector2; @api
|
|
Vector2Reflect :: proc(v: Vector2, normal: Vector2): Vector2; @api
|
|
Vector2Rotate :: proc(v: Vector2, angle: float): Vector2; @api
|
|
Vector2MoveTowards :: proc(v: Vector2, target: Vector2, maxDistance: float): Vector2; @api
|
|
Vector2Invert :: proc(v: Vector2): Vector2; @api
|
|
Vector2Clamp :: proc(v: Vector2, min: Vector2, max: Vector2): Vector2; @api
|
|
Vector2ClampValue :: proc(v: Vector2, min: float, max: float): Vector2; @api
|
|
Vector2Equals :: proc(p: Vector2, q: Vector2): int; @api
|
|
Vector3Zero :: proc(): Vector3; @api
|
|
Vector3One :: proc(): Vector3; @api
|
|
Vector3Add :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3AddValue :: proc(v: Vector3, add: float): Vector3; @api
|
|
Vector3Subtract :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3SubtractValue :: proc(v: Vector3, sub: float): Vector3; @api
|
|
Vector3Scale :: proc(v: Vector3, scalar: float): Vector3; @api
|
|
Vector3Multiply :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3CrossProduct :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3Perpendicular :: proc(v: Vector3): Vector3; @api
|
|
Vector3Length :: proc(v: Vector3): float; @api
|
|
Vector3LengthSqr :: proc(v: Vector3): float; @api
|
|
Vector3DotProduct :: proc(v1: Vector3, v2: Vector3): float; @api
|
|
Vector3Distance :: proc(v1: Vector3, v2: Vector3): float; @api
|
|
Vector3DistanceSqr :: proc(v1: Vector3, v2: Vector3): float; @api
|
|
Vector3Angle :: proc(v1: Vector3, v2: Vector3): float; @api
|
|
Vector3Negate :: proc(v: Vector3): Vector3; @api
|
|
Vector3Divide :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3Normalize :: proc(v: Vector3): Vector3; @api
|
|
Vector3Project :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3Reject :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3OrthoNormalize :: proc(v1: *Vector3, v2: *Vector3); @api
|
|
Vector3Transform :: proc(v: Vector3, mat: Matrix): Vector3; @api
|
|
Vector3RotateByQuaternion :: proc(v: Vector3, q: Quaternion): Vector3; @api
|
|
Vector3RotateByAxisAngle :: proc(v: Vector3, axis: Vector3, angle: float): Vector3; @api
|
|
Vector3Lerp :: proc(v1: Vector3, v2: Vector3, amount: float): Vector3; @api
|
|
Vector3Reflect :: proc(v: Vector3, normal: Vector3): Vector3; @api
|
|
Vector3Min :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3Max :: proc(v1: Vector3, v2: Vector3): Vector3; @api
|
|
Vector3Barycenter :: proc(p: Vector3, a: Vector3, b: Vector3, c: Vector3): Vector3; @api
|
|
Vector3Unproject :: proc(source: Vector3, projection: Matrix, view: Matrix): Vector3; @api
|
|
Vector3ToFloatV :: proc(v: Vector3): float3; @api
|
|
Vector3Invert :: proc(v: Vector3): Vector3; @api
|
|
Vector3Clamp :: proc(v: Vector3, min: Vector3, max: Vector3): Vector3; @api
|
|
Vector3ClampValue :: proc(v: Vector3, min: float, max: float): Vector3; @api
|
|
Vector3Equals :: proc(p: Vector3, q: Vector3): int; @api
|
|
Vector3Refract :: proc(v: Vector3, n: Vector3, r: float): Vector3; @api
|
|
MatrixDeterminant :: proc(mat: Matrix): float; @api
|
|
MatrixTrace :: proc(mat: Matrix): float; @api
|
|
MatrixTranspose :: proc(mat: Matrix): Matrix; @api
|
|
MatrixInvert :: proc(mat: Matrix): Matrix; @api
|
|
MatrixIdentity :: proc(): Matrix; @api
|
|
MatrixAdd :: proc(left: Matrix, right: Matrix): Matrix; @api
|
|
MatrixSubtract :: proc(left: Matrix, right: Matrix): Matrix; @api
|
|
MatrixMultiply :: proc(left: Matrix, right: Matrix): Matrix; @api
|
|
MatrixTranslate :: proc(x: float, y: float, z: float): Matrix; @api
|
|
MatrixRotate :: proc(axis: Vector3, angle: float): Matrix; @api
|
|
MatrixRotateX :: proc(angle: float): Matrix; @api
|
|
MatrixRotateY :: proc(angle: float): Matrix; @api
|
|
MatrixRotateZ :: proc(angle: float): Matrix; @api
|
|
MatrixRotateXYZ :: proc(angle: Vector3): Matrix; @api
|
|
MatrixRotateZYX :: proc(angle: Vector3): Matrix; @api
|
|
MatrixScale :: proc(x: float, y: float, z: float): Matrix; @api
|
|
MatrixFrustum :: proc(left: double, right: double, bottom: double, top: double, near: double, far: double): Matrix; @api
|
|
MatrixPerspective :: proc(fovY: double, aspect: double, nearPlane: double, farPlane: double): Matrix; @api
|
|
MatrixOrtho :: proc(left: double, right: double, bottom: double, top: double, nearPlane: double, farPlane: double): Matrix; @api
|
|
MatrixLookAt :: proc(eye: Vector3, target: Vector3, up: Vector3): Matrix; @api
|
|
MatrixToFloatV :: proc(mat: Matrix): float16; @api
|
|
QuaternionAdd :: proc(q1: Quaternion, q2: Quaternion): Quaternion; @api
|
|
QuaternionAddValue :: proc(q: Quaternion, add: float): Quaternion; @api
|
|
QuaternionSubtract :: proc(q1: Quaternion, q2: Quaternion): Quaternion; @api
|
|
QuaternionSubtractValue :: proc(q: Quaternion, sub: float): Quaternion; @api
|
|
QuaternionIdentity :: proc(): Quaternion; @api
|
|
QuaternionLength :: proc(q: Quaternion): float; @api
|
|
QuaternionNormalize :: proc(q: Quaternion): Quaternion; @api
|
|
QuaternionInvert :: proc(q: Quaternion): Quaternion; @api
|
|
QuaternionMultiply :: proc(q1: Quaternion, q2: Quaternion): Quaternion; @api
|
|
QuaternionScale :: proc(q: Quaternion, mul: float): Quaternion; @api
|
|
QuaternionDivide :: proc(q1: Quaternion, q2: Quaternion): Quaternion; @api
|
|
QuaternionLerp :: proc(q1: Quaternion, q2: Quaternion, amount: float): Quaternion; @api
|
|
QuaternionNlerp :: proc(q1: Quaternion, q2: Quaternion, amount: float): Quaternion; @api
|
|
QuaternionSlerp :: proc(q1: Quaternion, q2: Quaternion, amount: float): Quaternion; @api
|
|
QuaternionFromVector3ToVector3 :: proc(from: Vector3, to: Vector3): Quaternion; @api
|
|
QuaternionFromMatrix :: proc(mat: Matrix): Quaternion; @api
|
|
QuaternionToMatrix :: proc(q: Quaternion): Matrix; @api
|
|
QuaternionFromAxisAngle :: proc(axis: Vector3, angle: float): Quaternion; @api
|
|
QuaternionToAxisAngle :: proc(q: Quaternion, outAxis: *Vector3, outAngle: *float); @api
|
|
QuaternionFromEuler :: proc(pitch: float, yaw: float, roll: float): Quaternion; @api
|
|
QuaternionToEuler :: proc(q: Quaternion): Vector3; @api
|
|
QuaternionTransform :: proc(q: Quaternion, mat: Matrix): Quaternion; @api
|
|
QuaternionEquals :: proc(p: Quaternion, q: Quaternion): int; @api
|