-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScene.h
More file actions
50 lines (39 loc) · 1.37 KB
/
Copy pathScene.h
File metadata and controls
50 lines (39 loc) · 1.37 KB
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
//
// Created by Jiang Kairong on 3/10/18.
//
#ifndef PROG03_INLINEBOOL_SCENE_H
#define PROG03_INLINEBOOL_SCENE_H
#include <vector>
#include "Surface.h"
#include "Camera.h"
#include "LightSource.h"
/// Scene class
class Scene {
public:
/// Read scene file and construct the scene
/// \param sceneFileName input file name of the scene
explicit Scene(const std::string &sceneFileName);
/// get the objects in the scene
/// \return vector of pointers to the objects
const std::vector<std::shared_ptr<Surface>> &getObjects() const;
/// set the objects in the scene
/// \param objects
void setObjects(const std::vector<std::shared_ptr<Surface>> &objects);
/// get the camera in the scene
/// \return reference to the camera object
const Camera &getMainCamera() const;
/// set the camera in the scene
/// \param mainCamera
void setMainCamera(const Camera &mainCamera);
/// get the light sources in the scene
/// \return vector of pointers to the light sources
const std::vector<std::shared_ptr<LightSource>> &getLightSources() const;
/// set the light sources in the scene
/// \param lightSources
void setLightSources(const std::vector<std::shared_ptr<LightSource>> &lightSources);
private:
std::vector<std::shared_ptr<Surface>> objects;
Camera mainCamera;
std::vector<std::shared_ptr<LightSource>> lightSources;
};
#endif //PROG03_INLINEBOOL_SCENE_H