#ifndef CCUBE_H
#define CCUBE_H

class CCube
{
public:
	float x, y, z;
	float r1, g1, b1;
	float r2, g2, b2;
	bool Sens;			// Lors de la rotation, les couleurs principales s'inversent

	CCube(float xx = -1.0f, float yy = -1.0f, float zz = -1.0f,
		  float rr1 = 1.0f, float gg1 = 1.0f, float bb1 = 1.0f,
		  float rr2 = 0.0f, float gg2 = 0.0f, float bb2 = 0.0f)
	{
		x = xx; y = yy; z = zz;
		r1 = rr1; g1 = gg1; b1 = bb1;
		r2 = rr2; g2 = gg2; b2 = bb2;
		Sens = true;
	}
	
	void Draw(void) const;
	void DrawGuide(void) const;


	// Opérateur == pour les listes de cubes
	bool operator == (const CCube& LeCube)
	{
		return ( (abs(x - LeCube.x) < EPSILON) &&
				 (abs(y - LeCube.y) < EPSILON) &&
				 (abs(z - LeCube.z) < EPSILON) );
	}
	// Opérateur < pour les listes de cubes
	bool operator < (const CCube& LeCube)
	{
		return (z < LeCube.z);
	}
	// Opérateur > pour les listes de cubes
	bool operator > (const CCube& LeCube)
	{
		return (z > LeCube.z);
	}
};

#endif
