/*/////////////////////////////////////////
//	Struct: pointsInfo
//	Autor: Michal Jirous
//	Popis: struktura pro ulozeni minimalnich a maximalnich hodnot \
//			soouradnich vsech bodu objektu ve scene
//	
//////////////////////////////////////////*/

/*
#ifndef __POINTSINFO__H__
#define __POINTSINFO__H__*/
/*
enum infos
{
	MIN_X	=	0,
	MAX_X,
	MIN_Y,
	MAX_Y,
	MIN_Z,
	MAX_Z

};



struct pointsInfo
{
	float m_fInfo[6]; //pole pro ulozeni dat
	
	//konstruktor resetuje pole
	pointsInfo()	
	{
		for (int i = 0; i <6;i++)
			m_fInfo[i] = 0.0f;
	}

	void clear()
	{
		for (int i = 0; i <6;i++)
			m_fInfo[i] = 0.0f;
	}

	bool compare(pointsInfo *p)	
	{*/
		/*	funkce porovna dve struktury, na zaklade vysledku se s timto objektem
			vykonava nebo nevykonava pocitani koliznich bodu	
			slouzi k velice uzitecne filtraci objektu, se kterymi se vlastni vypocet provadi
		*/
		
		/*	pokud je maximum ze vsech x-ovych souradnic prvniho vetsi
			nez maximum ze vsech x-ovych souradnic druheho x */
/*		if( m_fInfo[1] > p->m_fInfo[1] )	
		{
			if(p->m_fInfo[1] < m_fInfo[0])	//porovna zda je maximum druheho mensi nez minimum prvniho
				return false;	//doslo se k zaveru, ze objekty nemohou mit shodnou x souradnici a tak nemuze dojit ke kolizi
		}
		else if(m_fInfo[1] < p->m_fInfo[0])	//porovna zda je maximum prvniho mensi nez minimum druheho
				return false;	//doslo se k zaveru, ze objekty nemohou mit shodnou x souradnici a tak nemuze dojit ke kolizi

		//ostatni pripady jsou stejne..jen pro jine souradnice (y,z)
		if( m_fInfo[3] > p->m_fInfo[3] )
		{
			if(p->m_fInfo[3] < m_fInfo[2])
				return false;
		}
		else if(m_fInfo[3] < p->m_fInfo[2])
				return false;
			
		if( m_fInfo[5] > p->m_fInfo[5] )
		{
			if(p->m_fInfo[5] < m_fInfo[4])
				return false;
		}
		else if(m_fInfo[5] < p->m_fInfo[4])
				return false;

		return true;	//tim, ze vraci true znamena pouze to, ze objekty spolu mohou kolidovat, ovsem nemusi
	}

	void setInfo(pointsInfo &p)
	{
		for (int i = 0; i <6;i++)
			m_fInfo[i] = p.m_fInfo[i];
	}

	void updateData( float x, float y, float z )
	{
		if( x < m_fInfo[0] ) m_fInfo[0] = x;
		if( x > m_fInfo[1] ) m_fInfo[1] = x;
		if( y < m_fInfo[2] ) m_fInfo[2] = y;
		if( y > m_fInfo[3] ) m_fInfo[3] = y;
		if( z < m_fInfo[4] ) m_fInfo[4] = z;
		if( z > m_fInfo[5] ) m_fInfo[5] = z;
	
	}

	void setRange( float value )
	{
		m_fInfo[0] -= value;
		m_fInfo[1] += value;
		m_fInfo[2] -= value;
		m_fInfo[3] += value;
		m_fInfo[4] -= value;
		m_fInfo[5] += value;
		
	}

	void setBasicValues( float x, float y, float z )
	{
		m_fInfo[0] = x;
		m_fInfo[1] = x;
		m_fInfo[2] = y;
		m_fInfo[3] = y;
		m_fInfo[4] = z;
		m_fInfo[5] = z;
	}

	bool isPointInCube( float x, float y, float z)
	{
		if(m_fInfo[0] > x || m_fInfo[1] < x)	return false;
		if(m_fInfo[2] > y || m_fInfo[3] < y)	return false;
		if(m_fInfo[4] > z || m_fInfo[5] < z)	return false;
		return true;
	}

};
typedef pointsInfo BoundingBox;

#endif;*/
