Fission FSN
Loading...
Searching...
No Matches
fsI3dScene.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsI3dScene.h
4*
5* Purpose: Interface for a 3D Scene
6*
7*********************************************************************/
8
9#ifndef fsI3dScenehdr
10#define fsI3dScenehdr
11
13
14#include <memory>
15#include <functional>
16
17class fsC3dSprite;
18class fsC3dCamera;
19class fsI3dLight;
20
21
23{
24public:
25
26 using fsTPickCallback = std::function<void(fsC3dSprite* sprt3d)>;
27
28 void pick(const fsPoint& pScreenPos, fsTPickCallback pPickCallback);
29 void spriteRemove(fsC3dSprite* p3dSprite);
30 void spriteAdd(fsC3dSprite* p3dSprite);
31 void cameraSet(fsC3dCamera* pCamera);
32 void ligthtAdd(fsI3dLight* pLight);
33 void ligthtRemove(fsI3dLight* pLight);
34
35 static std::unique_ptr<fsI3dScene> create();
36
37 ~fsI3dScene() override = default;
38
39protected:
40
41 virtual void pickDo(const fsPoint& pScreenPos, fsTPickCallback pPickCallback) = 0;
42 virtual void spriteRemoveDo(fsC3dSprite* p3dSprite) = 0;
43 virtual void spriteAddDo(fsC3dSprite* p3dSprite) = 0;
44 virtual void cameraSetDo(fsC3dCamera* pCamera) = 0;
45 virtual void ligthtAddDo(fsI3dLight* pLight) = 0;
46 virtual void ligthtRemoveDo(fsI3dLight* pLight) = 0;
47
48 fsI3dScene() = default;
49
50private:
51};
52
53#endif
Definition fsC3dCamera.h:18
Definition fsC3dSprite.h:29
Definition fsI3dLight.h:23
std::function< void(fsC3dSprite *sprt3d)> fsTPickCallback
Definition fsI3dScene.h:26
static std::unique_ptr< fsI3dScene > create()
Definition fsI3dScene.cpp:48
virtual void pickDo(const fsPoint &pScreenPos, fsTPickCallback pPickCallback)=0
virtual void spriteAddDo(fsC3dSprite *p3dSprite)=0
virtual void ligthtAddDo(fsI3dLight *pLight)=0
void ligthtRemove(fsI3dLight *pLight)
Definition fsI3dScene.cpp:37
~fsI3dScene() override=default
virtual void spriteRemoveDo(fsC3dSprite *p3dSprite)=0
virtual void cameraSetDo(fsC3dCamera *pCamera)=0
fsI3dScene()=default
void cameraSet(fsC3dCamera *pCamera)
Definition fsI3dScene.cpp:32
void spriteAdd(fsC3dSprite *p3dSprite)
Definition fsI3dScene.cpp:27
void pick(const fsPoint &pScreenPos, fsTPickCallback pPickCallback)
Definition fsI3dScene.cpp:17
void spriteRemove(fsC3dSprite *p3dSprite)
Definition fsI3dScene.cpp:22
virtual void ligthtRemoveDo(fsI3dLight *pLight)=0
void ligthtAdd(fsI3dLight *pLight)
Definition fsI3dScene.cpp:43
fsIRenderableQuantum()
Definition fsIRenderableQuantum.cpp:28
Definition fsPoint.h:17