Ray Tracer  2020
PointLightSource.h
Go to the documentation of this file.
1 #pragma once
2 
3 #ifndef POINT_LIGHT_SOURCE_H_INCLUDED
4 #define POINT_LIGHT_SOURCE_H_INCLUDED
5 
6 #include "LightSource.h"
7 
20 class PointLightSource : public LightSource {
21 
22 public:
23 
31  PointLightSource(const Colour& colour, const Point& location);
32 
37  PointLightSource(const PointLightSource& lightSource);
38 
41 
47  PointLightSource& operator=(const PointLightSource& lightSource);
48 
61  Colour getIlluminationAt(const Point& point) const;
62 
69  double getDistanceToLight(const Point& point) const;
70 
79  Direction getLightDirection(const Point& point) const;
80 
81 private:
82 
84 };
85 
86 #endif
LightSource class header file.
Class to store colour information.
Definition: Colour.h:25
Class for Direction Vectors.
Definition: Direction.h:22
Abstract base class for LightSources.
Definition: LightSource.h:23
Class for Point Vectors.
Definition: Point.h:22
Light emitted from a Point.
Definition: PointLightSource.h:20
Colour getIlluminationAt(const Point &point) const
Determine how much light reaches a Point from this PointLightSource.
Definition: PointLightSource.cpp:26
Direction getLightDirection(const Point &point) const
Direction from light source to a point.
Definition: PointLightSource.cpp:37
PointLightSource(const Colour &colour, const Point &location)
PointLightSource constructor.
Definition: PointLightSource.cpp:5
double getDistanceToLight(const Point &point) const
Determine how far away the light source is from a given Point.
Definition: PointLightSource.cpp:33
~PointLightSource()
PointLightSource destructor.
Definition: PointLightSource.cpp:15
PointLightSource & operator=(const PointLightSource &lightSource)
PointLightSource assignment operator.
Definition: PointLightSource.cpp:19
Point location_
Location of this PointLightSource.
Definition: PointLightSource.h:83