objc2-gl-kit 0.3.2

Bindings to the GLKit framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;

use crate::*;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/glkit/glkquaternionidentity?language=objc)
    #[cfg(feature = "GLKMathTypes")]
    pub static GLKQuaternionIdentity: GLKQuaternion;
}

// TODO: pub fn GLKQuaternionMake(x: c_float,y: c_float,z: c_float,w: c_float,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMakeWithVector3(vector: GLKVector3,scalar: c_float,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMakeWithArray(values: ArrayUnknownABI<[c_float; 4]>,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMakeWithAngleAndAxis(radians: c_float,x: c_float,y: c_float,z: c_float,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMakeWithAngleAndVector3Axis(radians: c_float,axis_vector: GLKVector3,) -> GLKQuaternion;

extern "C-unwind" {
    #[cfg(feature = "GLKMathTypes")]
    pub fn GLKQuaternionMakeWithMatrix3(matrix: GLKMatrix3) -> GLKQuaternion;
}

extern "C-unwind" {
    #[cfg(feature = "GLKMathTypes")]
    pub fn GLKQuaternionMakeWithMatrix4(matrix: GLKMatrix4) -> GLKQuaternion;
}

extern "C-unwind" {
    #[cfg(feature = "GLKMathTypes")]
    pub fn GLKQuaternionAngle(quaternion: GLKQuaternion) -> c_float;
}

extern "C-unwind" {
    #[cfg(feature = "GLKMathTypes")]
    pub fn GLKQuaternionAxis(quaternion: GLKQuaternion) -> GLKVector3;
}

// TODO: pub fn GLKQuaternionAdd(quaternion_left: GLKQuaternion,quaternion_right: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionSubtract(quaternion_left: GLKQuaternion,quaternion_right: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMultiply(quaternion_left: GLKQuaternion,quaternion_right: GLKQuaternion,) -> GLKQuaternion;

extern "C-unwind" {
    #[cfg(feature = "GLKMathTypes")]
    pub fn GLKQuaternionSlerp(
        quaternion_start: GLKQuaternion,
        quaternion_end: GLKQuaternion,
        t: c_float,
    ) -> GLKQuaternion;
}

// TODO: pub fn GLKQuaternionLength(quaternion: GLKQuaternion,) -> c_float;

// TODO: pub fn GLKQuaternionConjugate(quaternion: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionInvert(quaternion: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionNormalize(quaternion: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionRotateVector3(quaternion: GLKQuaternion,vector: GLKVector3,) -> GLKVector3;

extern "C-unwind" {
    /// # Safety
    ///
    /// `vectors` must be a valid pointer.
    #[cfg(feature = "GLKMathTypes")]
    pub fn GLKQuaternionRotateVector3Array(
        quaternion: GLKQuaternion,
        vectors: NonNull<GLKVector3>,
        vector_count: usize,
    );
}

// TODO: pub fn GLKQuaternionRotateVector4(quaternion: GLKQuaternion,vector: GLKVector4,) -> GLKVector4;

extern "C-unwind" {
    /// # Safety
    ///
    /// `vectors` must be a valid pointer.
    #[cfg(feature = "GLKMathTypes")]
    pub fn GLKQuaternionRotateVector4Array(
        quaternion: GLKQuaternion,
        vectors: NonNull<GLKVector4>,
        vector_count: usize,
    );
}

// TODO: pub fn GLKQuaternionMake(x: c_float,y: c_float,z: c_float,w: c_float,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMakeWithVector3(vector: GLKVector3,scalar: c_float,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMakeWithArray(values: ArrayUnknownABI<[c_float; 4]>,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMakeWithAngleAndAxis(radians: c_float,x: c_float,y: c_float,z: c_float,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMakeWithAngleAndVector3Axis(radians: c_float,axis_vector: GLKVector3,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionAdd(quaternion_left: GLKQuaternion,quaternion_right: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionSubtract(quaternion_left: GLKQuaternion,quaternion_right: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionMultiply(quaternion_left: GLKQuaternion,quaternion_right: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionLength(quaternion: GLKQuaternion,) -> c_float;

// TODO: pub fn GLKQuaternionConjugate(quaternion: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionInvert(quaternion: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionNormalize(quaternion: GLKQuaternion,) -> GLKQuaternion;

// TODO: pub fn GLKQuaternionRotateVector3(quaternion: GLKQuaternion,vector: GLKVector3,) -> GLKVector3;

// TODO: pub fn GLKQuaternionRotateVector4(quaternion: GLKQuaternion,vector: GLKVector4,) -> GLKVector4;