-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathScene.h
64 lines (48 loc) · 1.13 KB
/
Scene.h
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
// Scene.h: interface for the CScene class.
//
//////////////////////////////////////////////////////////////////////
# ifndef _SCENE_H
# define _SCENE_H
# include "Triangle.h"
# include "Plane.h"
# include "Sphere.h"
# include "Shape.h"
# include "IntersectionInfo.h"
# include "Light.h"
# include "Environment.h"
# include "GlobalConstants.h"
class CShape;
class CCamera;
class CScene
{
public:
// Object Constructor
CScene();
// Object deConstructor
virtual ~CScene();
// Object Interface
CIntersectionInfo TestRayForClosest (CRay ray);
int GetNumLights ();
CLight** GetLights ();
CCamera* GetCamera ();
bool IsUnobstructed (CRay rayToTest);
protected:
// Protected Object variables
int m_iShapeCount;
int m_iLightCount;
int m_iCamCount;
CShape *m_objShapes[40];
CLight *m_objLights[256];
CCamera *m_objCameras[1];
CEnvironment m_objEnvironment;
// protected methods
bool isEntry(CVector vecIncoming, CVector vecNormal);
void CreateFloor();
void CreateReflectiveBall();
void CreateCrystalBall();
void CreateTriangle();
void CreateMesh();
void CreateLights();
void CreateCamera();
};
# endif