#pragma once #include "Light.h" class DirectionalLight : public Light { public: DirectionalLight(Vector3D lightDirection); DirectionalLight(Vector3D lightDirection, int red, int green, int blue); DirectionalLight(const DirectionalLight& other); void SetLightDirection(float x, float y, float z); void SetLightDirection(Vector3D direction); Vector3D GetLightDirection() const; COLORREF CalculateLightShared(const Model& currentModel, const Vector3D& currentNormal, COLORREF colorIn); COLORREF CalculateLight(const Model& currentModel, const Polygon3D& currentPolygon, COLORREF colorIn); COLORREF CalculateLight(const Model& currentModel, const Vertex& currentVertex, COLORREF colorIn); DirectionalLight& operator= (const DirectionalLight& rhs); private: Vector3D _lightDirection; Vector3D _normalizedLightDirection; void Copy(const DirectionalLight& other); };