/* * Copyright (C) 2021 Christopher J. Howard * * This file is part of Antkeeper source code. * * Antkeeper source code is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Antkeeper source code is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Antkeeper source code. If not, see . */ #ifndef ANTKEEPER_FUNDAMENTAL_TYPES_HPP #define ANTKEEPER_FUNDAMENTAL_TYPES_HPP #include "math/vector-type.hpp" #include "math/vector-operators.hpp" #include "math/matrix-type.hpp" #include "math/matrix-operators.hpp" /// 2D vector of bools using bool2 = math::vector; /// 3D vector of bools using bool3 = math::vector; /// 4D vector of bools using bool4 = math::vector; /// 2D vector of chars using char2 = math::vector; /// 3D vector of chars using char3 = math::vector; /// 4D vector of chars using char4 = math::vector; /// 2D vector of unsigned chars using uchar2 = math::vector; /// 3D vector of unsigned chars using uchar3 = math::vector; /// 4D vector of unsigned chars using uchar4 = math::vector; /// 2D vector of shorts using short2 = math::vector; /// 3D vector of shorts using short3 = math::vector; /// 4D vector of shorts using short4 = math::vector; /// 2D vector of unsigned shorts using ushort2 = math::vector; /// 3D vector of unsigned shorts using ushort3 = math::vector; /// 4D vector of unsigned shorts using ushort4 = math::vector; /// 2D vector of ints using int2 = math::vector; /// 3D vector of ints using int3 = math::vector; /// 4D vector of ints using int4 = math::vector; /// 2D vector of unsigned ints using uint2 = math::vector; /// 3D vector of unsigned ints using uint3 = math::vector; /// 4D vector of unsigned ints using uint4 = math::vector; /// 2D vector of longs using long2 = math::vector; /// 3D vector of longs using long3 = math::vector; /// 4D vector of longs using long4 = math::vector; /// 2D vector of unsigned longs using ulong2 = math::vector; /// 3D vector of unsigned longs using ulong3 = math::vector; /// 4D vector of unsigned longs using ulong4 = math::vector; /// 2D vector of floats using float2 = math::vector; /// 3D vector of floats using float3 = math::vector; /// 4D vector of floats using float4 = math::vector; /// 2D vector of doubles using double2 = math::vector; /// 3D vector of doubles using double3 = math::vector; /// 4D vector of doubles using double4 = math::vector; /// 2x2 matrix of bools using bool2x2 = math::matrix; /// 3x3 matrix of bools using bool3x3 = math::matrix; /// 4x4 matrix of bools using bool4x4 = math::matrix; /// 2x2 matrix of chars using char2x2 = math::matrix; /// 3x3 matrix of chars using char3x3 = math::matrix; /// 4x4 matrix of chars using char4x4 = math::matrix; /// 2x2 matrix of unsigned chars using uchar2x2 = math::matrix; /// 3x3 matrix of unsigned chars using uchar3x3 = math::matrix; /// 4x4 matrix of unsigned chars using uchar4x4 = math::matrix; /// 2x2 matrix of shorts using short2x2 = math::matrix; /// 3x3 matrix of shorts using short3x3 = math::matrix; /// 4x4 matrix of shorts using short4x4 = math::matrix; /// 2x2 matrix of unsigned shorts using ushort2x2 = math::matrix; /// 3x3 matrix of unsigned shorts using ushort3x3 = math::matrix; /// 4x4 matrix of unsigned shorts using ushort4x4 = math::matrix; /// 2x2 matrix of ints using int2x2 = math::matrix; /// 3x3 matrix of ints using int3x3 = math::matrix; /// 4x4 matrix of ints using int4x4 = math::matrix; /// 2x2 matrix of unsigned ints using uint2x2 = math::matrix; /// 3x3 matrix of unsigned ints using uint3x3 = math::matrix; /// 4x4 matrix of unsigned ints using uint4x4 = math::matrix; /// 2x2 matrix of longs using long2x2 = math::matrix; /// 3x3 matrix of longs using long3x3 = math::matrix; /// 4x4 matrix of longs using long4x4 = math::matrix; /// 2x2 matrix of unsigned longs using ulong2x2 = math::matrix; /// 3x3 matrix of unsigned longs using ulong3x3 = math::matrix; /// 4x4 matrix of unsigned longs using ulong4x4 = math::matrix; /// 2x2 matrix of floats using float2x2 = math::matrix; /// 3x3 matrix of floats using float3x3 = math::matrix; /// 4x4 matrix of floats using float4x4 = math::matrix; /// 2x2 matrix of doubles using double2x2 = math::matrix; /// 3x3 matrix of doubles using double3x3 = math::matrix; /// 4x4 matrix of doubles using double4x4 = math::matrix; #endif // ANTKEEPER_FUNDAMENTAL_TYPES_HPP