#pragma once

// Ściana. Jedyny element sceny w przykładzie, z którym wykrywane będą kolizje.
// Jest to dowolny quad którego wszystkie wierzchołki leżą na jednej płaszczyźnie (ważne!).
// Ściana będzie rysowana oraz zostanie utworzony i zapamiętany czworokąt na potrzeby
// wykrywania kolizji.
class CWall : public CSceneObject
{
public:
	CWall(vec3 a, vec3 b, vec3 c, vec3 d); // Konstruktor - pozycje czterech wierzchołków (muszą leżeć na jednej płaszczyźnie!). Ich kolejność decyduje o zwrocie wektora normalnego. Podajemy je przeciwnie do ruchu wskazówek zegara.
	~CWall(void); // Destruktor.
	void Initialize(void); // Inicjalizacja (wywołana raz).
	void Update(void); // Aktualizacja stanu.
	void Render(void); // Rysowanie ściany.
	CCollisionPolygon * collisionPolygon; // Polygon (a tak naprawdę po prostu czworokąt), z którym będą wykrywane kolizje.
	vec3 v[4]; // Pozycje wierzchołków.
	vec3 n; // Wektor normalny ściany.

protected:
	GLuint _displayListId; // Id displaylisty.
	static bool _isLoaded; // Czy tekstura została już załadowana (jest identyczna dla wszystkich instancji klasy)?
	static CTexture * _wallTexture; // Tekstura.
};

