Add initial prototype.

This commit is contained in:
Rod Kay
2022-07-31 17:34:54 +10:00
commit 54a53b2ac0
1421 changed files with 358874 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
#include "c_math.h"
Matrix_3x3::
Matrix_3x3 (Real* First) : m00 (First[0]), m01 (First[1]), m02 (First[2]),
m10 (First[3]), m11 (First[4]), m12 (First[5]),
m20 (First[6]), m21 (First[7]), m22 (First[8])
{};
Matrix_3x3::
Matrix_3x3 (Real m00, Real m01, Real m02,
Real m10, Real m11, Real m12,
Real m20, Real m21, Real m22) : m00 (m00), m01 (m01), m02 (m02),
m10 (m10), m11 (m11), m12 (m12),
m20 (m20), m21 (m21), m22 (m22)
{};
Matrix_4x4::
Matrix_4x4 (Real* First) : m00 (First[ 0]), m01 (First[ 1]), m02 (First[ 2]), m03 (First[ 3]),
m10 (First[ 4]), m11 (First[ 5]), m12 (First[ 6]), m13 (First[ 7]),
m20 (First[ 8]), m21 (First[ 9]), m22 (First[10]), m23 (First[11]),
m30 (First[12]), m31 (First[13]), m32 (First[14]), m33 (First[15])
{};

View File

@@ -0,0 +1,78 @@
#ifndef C_MATH_H
#define C_MATH_H
//
/// Provides a simple C++ interface to math structures used by the simple Box2D and Bullet3D C interfaces.
//
extern "C"
{
typedef float Real;
struct Vector_2
{
Vector_2 () {};
Vector_2 (Real x, Real y) : x (x), y (y) {};
Real x, y;
};
struct Vector_3
{
Vector_3 () {};
Vector_3 (Real x, Real y, Real z) : x (x), y (y), z (z) {};
Real x, y, z;
};
typedef int Index;
struct Triangle
{
Triangle () {};
Triangle (Real a, Real b, Real c) : a (a), b (b), c (c) {};
Index a, b, c;
};
struct Matrix_3x3
{
Matrix_3x3 () {};
Matrix_3x3 (Real* First);
Matrix_3x3 (Real m00, Real m01, Real m02,
Real m10, Real m11, Real m12,
Real m20, Real m21, Real m22);
Real m00, m01, m02,
m10, m11, m12,
m20, m21, m22;
};
struct Matrix_4x4
{
Matrix_4x4 () {};
Matrix_4x4 (Real* First);
Real m00, m01, m02, m03,
m10, m11, m12, m13,
m20, m21, m22, m23,
m30, m31, m32, m33;
};
}
#endif