Fission FSN
Loading...
Searching...
No Matches
fsI3dLight.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 3/11/2014
4*
5* File: fsI3dLight.h
6*
7* Author: Martin P. King
8*
9* Purpose: Interface for a 3D Scene Light
10*
11*********************************************************************/
12
13#ifndef fsI3dLighthdr
14#define fsI3dLighthdr
15
16#include <memory>
17
18#include <fsCore/fsVec3d.h>
19#include <fsCore/fsSColour.h>
20
21
23{
24public:
25
31
32 void indexSet(fsS32 pIndex) { mIndex = pIndex; }
33 fsS32 indexGet() const { return mIndex; }
34
35 const eLIGHT_TYPE typeGet() const { return mType; }
36 const fsVec3d& directionGet() const { return mDir; }
37 const fsSColour& colourGet() const { return mColour; }
38
39 virtual void* implGet() = 0;
40
41 static std::shared_ptr<fsI3dLight> create(const fsSColour& pColour, const fsVec3d& pDir);
42 static std::shared_ptr<fsI3dLight> create(const fsSColour& pColour);
43
44 virtual ~fsI3dLight();
45
46protected:
47
48 void initialiseDirectional(fsSColour pColour, const fsVec3d& pDir);
49 void initialiseAmbient(fsSColour pColour);
50
51 fsI3dLight();
52
53private:
54
55 eLIGHT_TYPE mType;
56 fsSColour mColour;
57 fsVec3d mDir;
58 fsS32 mIndex;
59};
60
61#endif
virtual ~fsI3dLight()
Definition fsI3dLight.cpp:50
void initialiseDirectional(fsSColour pColour, const fsVec3d &pDir)
Definition fsI3dLight.cpp:16
eLIGHT_TYPE
Definition fsI3dLight.h:27
@ eTYPE_AMBIENT
Definition fsI3dLight.h:28
@ eTYPE_DIRECTIONAL
Definition fsI3dLight.h:29
const eLIGHT_TYPE typeGet() const
Definition fsI3dLight.h:35
void indexSet(fsS32 pIndex)
Definition fsI3dLight.h:32
const fsVec3d & directionGet() const
Definition fsI3dLight.h:36
virtual void * implGet()=0
void initialiseAmbient(fsSColour pColour)
Definition fsI3dLight.cpp:23
fsS32 indexGet() const
Definition fsI3dLight.h:33
fsI3dLight()
Definition fsI3dLight.cpp:43
static std::shared_ptr< fsI3dLight > create(const fsSColour &pColour, const fsVec3d &pDir)
Definition fsI3dLight.cpp:29
const fsSColour & colourGet() const
Definition fsI3dLight.h:37
Definition fsSColour.h:20
int fsS32
Definition fsBaseTypes.h:20
Definition fsVec3d.h:16