💿🐜 Antkeeper source code https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

226 lines
5.6 KiB

/*
* 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 <http://www.gnu.org/licenses/>.
*/
#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<bool, 2>;
/// 3D vector of bools
using bool3 = math::vector<bool, 3>;
/// 4D vector of bools
using bool4 = math::vector<bool, 4>;
/// 2D vector of chars
using char2 = math::vector<char, 2>;
/// 3D vector of chars
using char3 = math::vector<char, 3>;
/// 4D vector of chars
using char4 = math::vector<char, 4>;
/// 2D vector of unsigned chars
using uchar2 = math::vector<unsigned char, 2>;
/// 3D vector of unsigned chars
using uchar3 = math::vector<unsigned char, 3>;
/// 4D vector of unsigned chars
using uchar4 = math::vector<unsigned char, 4>;
/// 2D vector of shorts
using short2 = math::vector<short, 2>;
/// 3D vector of shorts
using short3 = math::vector<short, 3>;
/// 4D vector of shorts
using short4 = math::vector<short, 4>;
/// 2D vector of unsigned shorts
using ushort2 = math::vector<unsigned short, 2>;
/// 3D vector of unsigned shorts
using ushort3 = math::vector<unsigned short, 3>;
/// 4D vector of unsigned shorts
using ushort4 = math::vector<unsigned short, 4>;
/// 2D vector of ints
using int2 = math::vector<int, 2>;
/// 3D vector of ints
using int3 = math::vector<int, 3>;
/// 4D vector of ints
using int4 = math::vector<int, 4>;
/// 2D vector of unsigned ints
using uint2 = math::vector<unsigned int, 2>;
/// 3D vector of unsigned ints
using uint3 = math::vector<unsigned int, 3>;
/// 4D vector of unsigned ints
using uint4 = math::vector<unsigned int, 4>;
/// 2D vector of longs
using long2 = math::vector<long, 2>;
/// 3D vector of longs
using long3 = math::vector<long, 3>;
/// 4D vector of longs
using long4 = math::vector<long, 4>;
/// 2D vector of unsigned longs
using ulong2 = math::vector<unsigned long, 2>;
/// 3D vector of unsigned longs
using ulong3 = math::vector<unsigned long, 3>;
/// 4D vector of unsigned longs
using ulong4 = math::vector<unsigned long, 4>;
/// 2D vector of floats
using float2 = math::vector<float, 2>;
/// 3D vector of floats
using float3 = math::vector<float, 3>;
/// 4D vector of floats
using float4 = math::vector<float, 4>;
/// 2D vector of doubles
using double2 = math::vector<double, 2>;
/// 3D vector of doubles
using double3 = math::vector<double, 3>;
/// 4D vector of doubles
using double4 = math::vector<double, 4>;
/// 2x2 matrix of bools
using bool2x2 = math::matrix<bool, 2, 2>;
/// 3x3 matrix of bools
using bool3x3 = math::matrix<bool, 3, 3>;
/// 4x4 matrix of bools
using bool4x4 = math::matrix<bool, 4, 4>;
/// 2x2 matrix of chars
using char2x2 = math::matrix<char, 2, 2>;
/// 3x3 matrix of chars
using char3x3 = math::matrix<char, 3, 3>;
/// 4x4 matrix of chars
using char4x4 = math::matrix<char, 4, 4>;
/// 2x2 matrix of unsigned chars
using uchar2x2 = math::matrix<unsigned char, 2, 2>;
/// 3x3 matrix of unsigned chars
using uchar3x3 = math::matrix<unsigned char, 3, 3>;
/// 4x4 matrix of unsigned chars
using uchar4x4 = math::matrix<unsigned char, 4, 4>;
/// 2x2 matrix of shorts
using short2x2 = math::matrix<short, 2, 2>;
/// 3x3 matrix of shorts
using short3x3 = math::matrix<short, 3, 3>;
/// 4x4 matrix of shorts
using short4x4 = math::matrix<short, 4, 4>;
/// 2x2 matrix of unsigned shorts
using ushort2x2 = math::matrix<unsigned short, 2, 2>;
/// 3x3 matrix of unsigned shorts
using ushort3x3 = math::matrix<unsigned short, 3, 3>;
/// 4x4 matrix of unsigned shorts
using ushort4x4 = math::matrix<unsigned short, 4, 4>;
/// 2x2 matrix of ints
using int2x2 = math::matrix<int, 2, 2>;
/// 3x3 matrix of ints
using int3x3 = math::matrix<int, 3, 3>;
/// 4x4 matrix of ints
using int4x4 = math::matrix<int, 4, 4>;
/// 2x2 matrix of unsigned ints
using uint2x2 = math::matrix<unsigned int, 2, 2>;
/// 3x3 matrix of unsigned ints
using uint3x3 = math::matrix<unsigned int, 3, 3>;
/// 4x4 matrix of unsigned ints
using uint4x4 = math::matrix<unsigned int, 4, 4>;
/// 2x2 matrix of longs
using long2x2 = math::matrix<long, 2, 2>;
/// 3x3 matrix of longs
using long3x3 = math::matrix<long, 3, 3>;
/// 4x4 matrix of longs
using long4x4 = math::matrix<long, 4, 4>;
/// 2x2 matrix of unsigned longs
using ulong2x2 = math::matrix<unsigned long, 2, 2>;
/// 3x3 matrix of unsigned longs
using ulong3x3 = math::matrix<unsigned long, 3, 3>;
/// 4x4 matrix of unsigned longs
using ulong4x4 = math::matrix<unsigned long, 4, 4>;
/// 2x2 matrix of floats
using float2x2 = math::matrix<float, 2, 2>;
/// 3x3 matrix of floats
using float3x3 = math::matrix<float, 3, 3>;
/// 4x4 matrix of floats
using float4x4 = math::matrix<float, 4, 4>;
/// 2x2 matrix of doubles
using double2x2 = math::matrix<double, 2, 2>;
/// 3x3 matrix of doubles
using double3x3 = math::matrix<double, 3, 3>;
/// 4x4 matrix of doubles
using double4x4 = math::matrix<double, 4, 4>;
#endif // ANTKEEPER_FUNDAMENTAL_TYPES_HPP