#pragma once

// Element sceny - klasa abstrakcyjna, która w założeniu powinna być
// klasą bazową dla wszystkich elementów sceny.
// Dzięki temu, że wszystkie obiekty będą dziedziczyły po tej klasie,
// możliwe jest choćby wygodne trzymanie ujednoliconej ich listy.
class CSceneObject
{
public:
	vec3 Position; // Pozycja obiektu na scenie.
	vec3 Rotation; // Rotacja (trzy kąty) obiektu na scenie.
	char *Name; // Nazwa obiektu ułatwiająca ich rozpoznawanie (głównie programiście).

	CSceneObject(void); // Konstruktor.
	~CSceneObject(void); // Destruktor.
	virtual void Initialize(void) = 0; // Inicjalizacja obiektu - wywołana raz na początku.
	virtual void Update(void) = 0; // Aktualizacja stanu obiektu - wywoływana cyklicznie, np. jako timer.
	virtual void Render(void) = 0; // Rysowanie obiektu - wywoływane zawsze podczas rysowania tego elementu sceny.
};

