Fission FSN
Loading...
Searching...
No Matches
fsC3dSceneSprite.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 3/11/2014
4*
5* File: fsC3dSceneSprite.h
6*
7* Author: Martin P King
8*
9* Purpose: Scene to contain 3D sprites and lights
10*
11*********************************************************************/
12
13#ifndef fsC3dSceneSpritehdr
14#define fsC3dSceneSpritehdr
15
16#include <vector>
17#include <memory>
18
19#include <fsCore/fsBaseTypes.h>
20
22
23class fsAffineMtx2d;
24class fsC3dSprite;
25class fsI3dLight;
26class fsC3dCamera;
27class fsI3dScene;
28class fsI3dRay;
29class fsVec3d;
30
31
33{
34 friend class fsCRenderer;
35
36public:
37
38 void pick(const fsPoint& pScreenPos);
39
40 void renderScene();
41
42 void update(fsS32 pDeltaMS);
43
44 void cameraSet(const fsVec3d& pPos, const fsVec3d& pTarget, fsF32 pNear, fsF32 pFar, fsF32 pFOV, fsBool pLookAt);
45
46 void sprite3dAdd(std::shared_ptr<fsC3dSprite> p3dSprite);
47 void sprite3dRemove(std::shared_ptr<fsC3dSprite> p3dSprite);
48
49 void light3dAdd(std::shared_ptr<fsI3dLight> p3dLight);
50 void light3dRemove(std::shared_ptr<fsI3dLight> p3dLight);
51
53 virtual ~fsC3dSceneSprite();
54
55protected:
56
57 void colourSetDo(const fsSColour4B& pColour) override
58 {
59 }
60
61 void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) override;
62 void renderDo() override;
63
64private:
65
66 std::unique_ptr<fsI3dScene> mScene;
67 std::unique_ptr<fsC3dCamera> mCamera;
68 std::vector<std::shared_ptr<fsC3dSprite>> mSprites;
69 std::vector<std::shared_ptr<fsI3dLight>> mLights;
70 std::unique_ptr<fsI3dRay> mRay;
71
72 fsAffineMtx2d mRenderMatrix;
73};
74
75
76#endif
Definition fsAffineMtx2d.h:27
Definition fsC3dCamera.h:18
void pick(const fsPoint &pScreenPos)
Definition fsC3dSceneSprite.cpp:17
virtual ~fsC3dSceneSprite()
Definition fsC3dSceneSprite.cpp:95
void light3dAdd(std::shared_ptr< fsI3dLight > p3dLight)
Definition fsC3dSceneSprite.cpp:55
void renderDo() override
Definition fsC3dSceneSprite.cpp:84
void colourSetDo(const fsSColour4B &pColour) override
Definition fsC3dSceneSprite.h:57
friend class fsCRenderer
Definition fsC3dSceneSprite.h:34
void sprite3dRemove(std::shared_ptr< fsC3dSprite > p3dSprite)
Definition fsC3dSceneSprite.cpp:45
fsC3dSceneSprite()
Definition fsC3dSceneSprite.cpp:89
void matrixApplyDo(const fsAffineMtx2d &pRenderMatrix) override
Definition fsC3dSceneSprite.cpp:26
void update(fsS32 pDeltaMS)
Definition fsC3dSceneSprite.cpp:71
void cameraSet(const fsVec3d &pPos, const fsVec3d &pTarget, fsF32 pNear, fsF32 pFar, fsF32 pFOV, fsBool pLookAt)
Definition fsC3dSceneSprite.cpp:32
void light3dRemove(std::shared_ptr< fsI3dLight > p3dLight)
Definition fsC3dSceneSprite.cpp:61
void renderScene()
Definition fsC3dSceneSprite.cpp:79
void sprite3dAdd(std::shared_ptr< fsC3dSprite > p3dSprite)
Definition fsC3dSceneSprite.cpp:39
Definition fsC3dSprite.h:29
Definition fsI3dLight.h:23
Definition fsI3dRay.h:19
Definition fsI3dScene.h:23
fsIRenderable()=default
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28
Definition fsPoint.h:17
Definition fsSColour.h:54
Definition fsVec3d.h:16