#pragma once #include "Light.h" class PointLight : public Light { public: PointLight(Vertex lightPosition); PointLight(Vertex lightPosition, float a, float b, float c); PointLight(Vertex lightPosition, float a, float b, float c, int red, int green, int blue); PointLight(const PointLight& other); void SetLightPosition(float x, float y, float z); void SetLightPosition(Vertex Position); Vertex GetLightPosition() const; void SetAttenuation(float a, float b, float c); void SetAttenuationA(float value); void SetAttenuationB(float value); void SetAttenuationC(float value); float GetAttenuationA(); float GetAttenuationB(); float GetAttenuationC(); COLORREF CalculateLightShared(const Model& currentModel, const Vertex& currentVertex, 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); PointLight& operator= (const PointLight& rhs); private: Vertex _lightPosition; float _attenuationA; float _attenuationB; float _attenuationC; void Copy(const PointLight& other); };