//--------------------------------------
// M - Moteur physique 
//         -------
// nEUrOO - Juillet 2004
//--------------------------------------
#include <iostream>

#include "maths_defs.h"

#include "Vector3.h"
#include "Matrix3.h"


FORCEINLINE void Matrix3::Set (	real m11, real m12, real m13,
							real m21, real m22, real m23,
							real m31, real m32, real m33)
{
    Matrix3::m11 = m11; Matrix3::m12 = m12; Matrix3::m13 = m13;
    Matrix3::m21 = m21; Matrix3::m22 = m22; Matrix3::m23 = m23;
    Matrix3::m31 = m31; Matrix3::m32 = m32; Matrix3::m33 = m33;
}

FORCEINLINE void Matrix3::Identity() 
{
	m11 = 1 , m12 = 0 , m13 = 0 ,
	m21 = 0 , m22 = 1 , m23 = 0 ,
	m31 = 0 , m32 = 0 , m33 = 1 ;
}

FORCEINLINE void Matrix3::Nulle()
{
	m11 = 0 , m12 = 0 , m13 = 0 ,
	m21 = 0 , m22 = 0 , m23 = 0 ,
	m31 = 0 , m32 = 0 , m33 = 0 ;
}

Vector3 Matrix3::Diag() const
{
	return Vector3(Matrix3::m11,Matrix3::m22,Matrix3::m33);
}

void Matrix3::Diag2(real &diag_1, real &diag_2, real &diag_3)
{
	diag_1 = m11,
	diag_2 = m22,
	diag_3 = m33;
}

void Matrix3::out() const
{
	printf("[%4f,%4f,%4f]",m11,m12,m13);
	printf("[%4f,%4f,%4f]",m21,m22,m23);
	printf("[%4f,%4f,%4f]",m31,m32,m33);
}
