[..] Module – hmm
Module hmm provides bindings for the HandmadeMath C library. hmm conditionally links to a specific version of HandmadeMath based on the module parameters passed when importing. Additionally, a few liberties were taken during the binding process to either fix issues with automatic binding generation, or improve the usability of these bindings. Here are the main changes:
- Converted procedure argument names from PascalCase to snake_case - Converted struct field names from PascalCase to snake_case
#import "jc/ext/hmm";
Index
Constants (11)
Procedures (132)
- ACosF
- AddM2
- AddM3
- AddM4
- AddQ
- AddV2
- AddV3
- AddV4
- Clamp
- CosF
- Cross
- DeterminantM2
- DeterminantM3
- DeterminantM4
- DivM2F
- DivM3F
- DivM4F
- DivQF
- DivV2
- DivV2F
- DivV3
- DivV3F
- DivV4
- DivV4F
- DotQ
- DotV2
- DotV3
- DotV4
- EqV2
- EqV3
- EqV4
- InvGeneralM2
- InvGeneralM3
- InvGeneralM4
- InvLookAt
- InvOrthographic
- InvPerspective_LH
- InvPerspective_RH
- InvQ
- InvRotate
- InvScale
- InvSqrtF
- InvTranslate
- LenSqrV2
- LenSqrV3
- LenSqrV4
- LenV2
- LenV3
- LenV4
- Lerp
- LerpV2
- LerpV3
- LerpV4
- LinearCombineV4M4
- LookAt
- LookAt_LH
- LookAt_RH
- M2
- M2D
- M3
- M3D
- M4
- M4D
- M4ToQ_LH
- M4ToQ_RH
- MixQ
- MulM2
- MulM2F
- MulM2V2
- MulM3
- MulM3F
- MulM3V3
- MulM4
- MulM4F
- MulM4V4
- MulQ
- MulQF
- MulV2
- MulV2F
- MulV3
- MulV3F
- MulV4
- MulV4F
- NLerp
- NormQ
- NormV2
- NormV3
- NormV4
- Orthographic_LH_NO
- Orthographic_LH_ZO
- Orthographic_RH_NO
- Orthographic_RH_ZO
- Perspective_LH_NO
- Perspective_LH_ZO
- Perspective_RH_NO
- Perspective_RH_ZO
- Q
- QFromAxisAngle_LH
- QFromAxisAngle_RH
- QFromNormPair
- QFromVecPair
- QToM4
- QV4
- RotateV2
- RotateV3AxisAngle_LH
- RotateV3AxisAngle_RH
- RotateV3Q
- Rotate_LH
- Rotate_RH
- SLerp
- Scale
- SinF
- SqrtF
- SubM2
- SubM3
- SubM4
- SubQ
- SubV2
- SubV3
- SubV4
- TanF
- ToDeg
- ToRad
- ToTurn
- Translate
- TransposeM2
- TransposeM3
- TransposeM4
- V2
- V3
- V4
- V4V
Imports (1)
Constants
HANDMADE_MATH__USE_C11_GENERICS ¶
HANDMADE_MATH__USE_C11_GENERICS :: 1;
HANDMADE_MATH__USE_NEON ¶
HANDMADE_MATH__USE_NEON :: 1;
HMM_DEG180 ¶
HMM_DEG180 :: 180.0;
HMM_DEG18032 ¶
HMM_DEG18032 :: 180.0;
HMM_TURNHALF ¶
HMM_TURNHALF :: 0.5;
HMM_TURNHALF32 ¶
HMM_TURNHALF32 :: 0.5;
Procedures
DeterminantM2 ¶
DeterminantM2 :: (matrix: Mat2) -> float
DeterminantM3 ¶
DeterminantM3 :: (matrix: Mat3) -> float
DeterminantM4 ¶
DeterminantM4 :: (matrix: Mat4) -> float
InvGeneralM2 ¶
InvGeneralM2 :: (matrix: Mat2) -> Mat2
InvGeneralM3 ¶
InvGeneralM3 :: (matrix: Mat3) -> Mat3
InvGeneralM4 ¶
InvGeneralM4 :: (matrix: Mat4) -> Mat4
InvOrthographic ¶
InvOrthographic :: (ortho_matrix: Mat4) -> Mat4
InvPerspective_LH ¶
InvPerspective_LH :: (perspective_matrix: Mat4) -> Mat4
InvPerspective_RH ¶
InvPerspective_RH :: (perspective_matrix: Mat4) -> Mat4
InvTranslate ¶
InvTranslate :: (translation_matrix: Mat4) -> Mat4
LinearCombineV4M4 ¶
LinearCombineV4M4 :: (left: Vec4, right: Mat4) -> Vec4
Orthographic_LH_NO ¶
Orthographic_LH_NO :: (left: float, right: float, bottom: float, top: float, near: float, far: float) -> Mat4
Orthographic_LH_ZO ¶
Orthographic_LH_ZO :: (left: float, right: float, bottom: float, top: float, near: float, far: float) -> Mat4
Orthographic_RH_NO ¶
Orthographic_RH_NO :: (left: float, right: float, bottom: float, top: float, near: float, far: float) -> Mat4
Orthographic_RH_ZO ¶
Orthographic_RH_ZO :: (left: float, right: float, bottom: float, top: float, near: float, far: float) -> Mat4
Perspective_LH_NO ¶
Perspective_LH_NO :: (fov: float, aspect_ratio: float, near: float, far: float) -> Mat4
Perspective_LH_ZO ¶
Perspective_LH_ZO :: (fov: float, aspect_ratio: float, near: float, far: float) -> Mat4
Perspective_RH_NO ¶
Perspective_RH_NO :: (fov: float, aspect_ratio: float, near: float, far: float) -> Mat4
Perspective_RH_ZO ¶
Perspective_RH_ZO :: (fov: float, aspect_ratio: float, near: float, far: float) -> Mat4
QFromAxisAngle_LH ¶
QFromAxisAngle_LH :: (axis: Vec3, angle: float) -> Quat
QFromAxisAngle_RH ¶
QFromAxisAngle_RH :: (axis: Vec3, angle: float) -> Quat
QFromNormPair ¶
QFromNormPair :: (left: Vec3, right: Vec3) -> Quat
QFromVecPair ¶
QFromVecPair :: (left: Vec3, right: Vec3) -> Quat
RotateV3AxisAngle_LH ¶
RotateV3AxisAngle_LH :: (v: Vec3, axis: Vec3, angle: float) -> Vec3
RotateV3AxisAngle_RH ¶
RotateV3AxisAngle_RH :: (v: Vec3, axis: Vec3, angle: float) -> Vec3
TransposeM2 ¶
TransposeM2 :: (matrix: Mat2) -> Mat2
TransposeM3 ¶
TransposeM3 :: (matrix: Mat3) -> Mat3
TransposeM4 ¶
TransposeM4 :: (matrix: Mat4) -> Mat4
Macros
This section is empty.
Types
Quat ¶
Quat :: union {
struct {
union {
xyz: Vec3;
struct { x: float; y: float; z: float; }
}
w: float;
}
elements: [4]float;
_: u8 #align 16;
}Vec2 ¶
Vec2 :: union {
struct {
x: float;
y: float;
}
struct {
u: float;
v: float;
}
struct {
left: float;
right: float;
}
struct {
width: float;
height: float;
}
elements: [2] float;
}Vec3 ¶
Vec3 :: union {
struct {
x: float;
y: float;
z: float;
}
struct {
u: float;
v: float;
w: float;
}
struct {
r: float;
g: float;
b: float;
}
struct {
xy: Vec2;
_ignored0: float;
}
struct {
_ignored1: float;
yz: Vec2;
}
struct {
uv: Vec2;
_ignored2: float;
}
struct {
_ignored3: float;
vw: Vec2;
}
elements: [3] float;
}Vec4 ¶
Vec4 :: union {
struct {
union {
xyz: Vec3;
struct { x: float; y: float; z: float; }
}
w: float;
}
struct {
union {
rgb: Vec3;
struct { r: float; g: float; b: float; }
}
a: float;
}
struct {
xy: Vec2;
_: float;
_: float;
}
struct {
_: float;
yz: Vec2;
_: float;
}
struct {
_: float;
_: float;
zw: Vec2;
}
elements: [4] float;
_: u8 #align 16;
}