Manages a collection of scene objects and provides rendering functionality. More...
#include <Scene.h>
Public Member Functions | |
Scene () | |
Constructor. | |
~Scene () | |
Destructor. | |
SceneObject & | AddObject (std::shared_ptr< SceneObject > object) |
Adds a scene object to the scene. | |
SceneObject & | AddObject (std::shared_ptr< Mesh > mesh, const std::string &name="Object") |
Creates and adds a scene object with a mesh. | |
bool | RemoveObject (const std::string &name) |
Removes a scene object by name. | |
bool | RemoveObject (std::shared_ptr< SceneObject > object) |
Removes a scene object by pointer. | |
std::shared_ptr< SceneObject > | FindObject (const std::string &name) const |
Finds a scene object by name. | |
const std::vector< std::shared_ptr< SceneObject > > & | GetObjects () const |
Gets all scene objects. | |
void | Clear () |
Clears all objects from the scene. | |
void | Update (float deltaTime) |
Updates all objects in the scene. | |
void | Render (Renderer &renderer, const BaseCamera &camera, Shader &shader) |
Renders all visible objects in the scene. | |
size_t | GetObjectCount () const |
Gets the number of objects in the scene. | |
void | SelectObject (std::shared_ptr< SceneObject > object) |
Selects an object by pointer and clears other selections. | |
void | ClearSelection () |
Clears all object selections. | |
std::shared_ptr< SceneObject > | GetSelectedObject () const |
Gets the currently selected object. | |
Manages a collection of scene objects and provides rendering functionality.
The Scene class is responsible for managing all objects in the 3D scene, providing methods to add, remove, and update objects. It also handles rendering all visible objects in the scene.
Scene::Scene | ( | ) |
Constructor.
Scene::~Scene | ( | ) |
Destructor.
SceneObject & Scene::AddObject | ( | std::shared_ptr< Mesh > | mesh, |
const std::string & | name = "Object" |
||
) |
Creates and adds a scene object with a mesh.
mesh | Shared pointer to the mesh. |
name | Name of the object. |
SceneObject & Scene::AddObject | ( | std::shared_ptr< SceneObject > | object | ) |
Adds a scene object to the scene.
object | Shared pointer to the scene object. |
void Scene::Clear | ( | ) |
Clears all objects from the scene.
void Scene::ClearSelection | ( | ) |
Clears all object selections.
std::shared_ptr< SceneObject > Scene::FindObject | ( | const std::string & | name | ) | const |
Finds a scene object by name.
name | Name of the object to find. |
|
inline |
Gets the number of objects in the scene.
|
inline |
Gets all scene objects.
std::shared_ptr< SceneObject > Scene::GetSelectedObject | ( | ) | const |
Gets the currently selected object.
bool Scene::RemoveObject | ( | const std::string & | name | ) |
Removes a scene object by name.
name | Name of the object to remove. |
bool Scene::RemoveObject | ( | std::shared_ptr< SceneObject > | object | ) |
Removes a scene object by pointer.
object | Shared pointer to the object to remove. |
void Scene::Render | ( | Renderer & | renderer, |
const BaseCamera & | camera, | ||
Shader & | shader | ||
) |
Renders all visible objects in the scene.
renderer | Reference to the renderer. |
camera | Reference to the camera. |
shader | Reference to the shader. |
void Scene::SelectObject | ( | std::shared_ptr< SceneObject > | object | ) |
Selects an object by pointer and clears other selections.
object | Shared pointer to the object to select. |
void Scene::Update | ( | float | deltaTime | ) |
Updates all objects in the scene.
deltaTime | Time since last update in seconds. |