1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

#include "fsC3dScene.h"

#include <fsRenderer/src/renderData/native/fsCNative3dSceneRenderData.h>
#include <fsRenderer/fsIRenderDataFactory.h>
#include <fsRenderer/fsIRenderData.h>


void fsC3dScene::pickDo(const fsPoint& pScreenPos, fsTPickCallback pPickCallback)
{
	renderDataGet()->pick(pScreenPos, pPickCallback);
}

void fsC3dScene::transformApplyDo()
{
	//renderDataGet()->modelMatrixSet(mPos, mAngle, mScale);
}

void fsC3dScene::update(fsS32 pDeltaMS)<--- Either there is a missing 'override', or the member function 'fsC3dScene::update' can be static.
{
	//	renderDataGet()->update(pDeltaMS);
}

void fsC3dScene::spriteRemoveDo(fsC3dSprite* const p3dSprite)
{
	renderDataGet()->spriteRemove(p3dSprite);
}

void fsC3dScene::spriteAddDo(fsC3dSprite* const p3dSprite)
{
	renderDataGet()->spriteAdd(p3dSprite);
}

void fsC3dScene::cameraSetDo(fsC3dCamera* const pCamera)
{
	renderDataGet()->cameraSet(pCamera);
}

void fsC3dScene::ligthtAddDo(fsI3dLight* const pLight)
{
	renderDataGet()->lightAdd(pLight);
}

void fsC3dScene::ligthtRemoveDo(fsI3dLight* const pLight)
{
	renderDataGet()->lightRemove(pLight);
}

void fsC3dScene::matrixApplyDo(const fsAffineMtx2d& pRenderMatrix)
{
	renderDataGet()->matrixApply(pRenderMatrix);
}

fsCNative3dSceneRenderData* fsC3dScene::renderDataGet() const
{
	return dynamic_cast<fsCNative3dSceneRenderData*>(fsIRenderableQuantum::renderDataGet());
}

std::shared_ptr<fsC3dScene> fsC3dScene::create()
{
	return std::shared_ptr<fsC3dScene>(new fsC3dScene());
}

fsC3dScene::fsC3dScene() :
fsI3dScene()
{
	renderDataRegister(fsIRenderData::factoryGet()->renderDataCreate("fsC3dScene"));
}