// -----------------------------------------------------------------------------
//
// FILE:	CollisionBox.cpp
// ----		
//			Fichier de stockage des paramètres des boites de collision
//
// Author:	Olivier Lamotte
// ------	Copyright(c) Cryo-Networks
//
// Histo:	- Version 0
// -----		Début: 02 / 02 / 2001
//
// -----------------------------------------------------------------------------
//
// Methods:	
//	- CollisionBox
//	- ~CollisionBox
//
// -----------------------------------------------------------------------------
//
#include "CollisionBox.h"


// =============================================================================
// Constructeur / Destructeur
// -----------------------------------------------------------------------------
CollisionBox::CollisionBox()
{
	// Initialisation des variables
	num = -1;
	rayonMax = -1;

	for (int i=0; i<6; i++)
	{
		a[i] = 0;
		b[i] = 0;
		c[i] = 0;
		d[i] = 0;
	}
}
// -----------------------------------------------------------------------------
CollisionBox::~CollisionBox()
{
}
// =============================================================================

// =============================================================================
// SetNum
// -----------------------------------------------------------------------------
void CollisionBox::SetNum(const int num)
{
	this->num = num;
}
// -----------------------------------------------------------------------------
// GetNum
// -----------------------------------------------------------------------------
int CollisionBox::GetNum()
{
	return num;
}
// =============================================================================

// =============================================================================
// SetRayonMax
// -----------------------------------------------------------------------------
void CollisionBox::SetRayonMax(const int rayonMax)
{
	this->rayonMax = rayonMax;
}
// -----------------------------------------------------------------------------
// GetRayonMax
// -----------------------------------------------------------------------------
int CollisionBox::GetRayonMax()
{
	return rayonMax;
}
// =============================================================================

// =============================================================================
// SetBoxCenter
// -----------------------------------------------------------------------------
void CollisionBox::SetBoxCenter(const Point3 boxCenter)
{
	this->boxCenter = boxCenter;
}
// -----------------------------------------------------------------------------
// GetBoxCenter
// -----------------------------------------------------------------------------
Point3 CollisionBox::GetBoxCenter()
{
	return boxCenter;
}
// =============================================================================

// =============================================================================
// SetBoxPt
// -----------------------------------------------------------------------------
void CollisionBox::SetBoxVert(const int i, const Point3 pt)
{
	if (i<8)
	{
		vertList[i] = pt;
	}
}
// -----------------------------------------------------------------------------
// GetBoxPt
// -----------------------------------------------------------------------------
Point3 CollisionBox::GetBoxVert(const int i)
{
	if (i<8)
	{
		return vertList[i];
	}
	return Point3(0, 0, 0);
}
// =============================================================================

// =============================================================================
// SetFaceEq
// -----------------------------------------------------------------------------
BOOL CollisionBox::SetFaceEq(const int idx, const float a, const float b, const float c, const float d)
{
	if (idx<6) // 6 équations maximum
	{
		this->a[idx] = a;
		this->b[idx] = b;
		this->c[idx] = c;
		this->d[idx] = d;
		return true;
	}
	else
	{
		return false;
	}
}
// -----------------------------------------------------------------------------
// GetFaceEq
// -----------------------------------------------------------------------------
BOOL CollisionBox::GetFaceEq(const int idx, float *a, float *b, float *c, float *d)
{
	if (idx < 6)
	{
		*a = a[idx];
		*b = b[idx];
		*c = c[idx];
		*d = d[idx];

		return true;
	}
	else
	{
		return false;
	}
}
float CollisionBox::GetFaceEqA(int idx)
{
	if (idx<6)
	{
		return a[idx];
	}
	else
	{
		return 0;
	}
}
float CollisionBox::GetFaceEqB(int idx)
{
	if (idx<6)
	{
		return b[idx];
	}
	else
	{
		return 0;
	}
}
float CollisionBox::GetFaceEqC(int idx)
{
	if (idx<6)
	{
		return c[idx];
	}
	else
	{
		return 0;
	}
}
float CollisionBox::GetFaceEqD(int idx)
{
	if (idx<6)
	{
		return d[idx];
	}
	else
	{
		return 0;
	}
}
// =============================================================================

