Newer
Older
ForwardPlusRenderer / include / Scene.h
#pragma once
#include <stdafx.h>
#include "Camera.h"
#include "Model.h"
#include "Light.h"

namespace fpr
{
class Scene
{
  std::vector<std::shared_ptr<Model>> m_models;
  std::vector<PointLight>  m_lights;
public:
  static constexpr const char* SCENE_FILE_EXT = ".scene";

  Scene(const char* file_name);
  [[nodiscard]] const std::vector<std::shared_ptr<Model>>& GetModels() const FPR_NOEXCEPT;
  [[nodiscard]] const std::vector<PointLight>&                   GetLights() const FPR_NOEXCEPT;

  void AddModel(std::shared_ptr<Model>& new_model);
  void AddModels(std::vector<std::shared_ptr<Model>>& new_models);
  void AddLight(PointLight new_light);
  void AddLights(std::vector<PointLight>& new_lights);


};
} // namespace fpr