/* See LICENSE folder for this sample’s licensing information. Abstract: Contains geometrical transformations for vectors */ #ifndef _METAL_MATH_TRANSFORMS_H_ #define _METAL_MATH_TRANSFORMS_H_ #import <simd/simd.h> #ifdef __cplusplus namespace AAPL { float radians(const float& degrees); simd::float4x4 scale(const float& x, const float& y, const float& z); simd::float4x4 scale(const simd::float3& s); simd::float4x4 translate(const float& x, const float& y, const float& z); simd::float4x4 translate(const simd::float3& t); simd::float4x4 rotate(const float& angle, const float& x, const float& y, const float& z); simd::float4x4 rotate(const float& angle, const simd::float3& u); simd::float4x4 frustum(const float& fovH, const float& fovV, const float& near, const float& far); simd::float4x4 frustum(const float& left, const float& right, const float& bottom, const float& top, const float& near, const float& far); simd::float4x4 frustum_oc(const float& left, const float& right, const float& bottom, const float& top, const float& near, const float& far); simd::float4x4 lookAt(const float * const pEye, const float * const pCenter, const float * const pUp); simd::float4x4 lookAt(const simd::float3& eye, const simd::float3& center, const simd::float3& up); simd::float4x4 perspective(const float& width, const float& height, const float& near, const float& far); simd::float4x4 perspective_fov(const float& fovy, const float& aspect, const float& near, const float& far); simd::float4x4 perspective_fov(const float& fovy, const float& width, const float& height, const float& near, const float& far); simd::float4x4 ortho2d_oc(const float& left, const float& right, const float& bottom, const float& top, const float& near, const float& far); simd::float4x4 ortho2d_oc(const simd::float3& origin, const simd::float3& size); simd::float4x4 ortho2d(const float& left, const float& right, const float& bottom, const float& top, const float& near, const float& far); simd::float4x4 ortho2d(const simd::float3& origin, const simd::float3& size); } // AAPL #endif #endif