Voltray Engine Docs
Loading...
Searching...
No Matches
Scene Class Reference

Manages a collection of scene objects and provides rendering functionality. More...

#include <Scene.h>

Public Member Functions

 Scene ()
 Constructor.
 
 ~Scene ()
 Destructor.
 
SceneObjectAddObject (std::shared_ptr< SceneObject > object)
 Adds a scene object to the scene.
 
SceneObjectAddObject (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< SceneObjectFindObject (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< SceneObjectGetSelectedObject () const
 Gets the currently selected object.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ Scene()

Scene::Scene ( )

Constructor.

◆ ~Scene()

Scene::~Scene ( )

Destructor.

Member Function Documentation

◆ AddObject() [1/2]

SceneObject & Scene::AddObject ( std::shared_ptr< Mesh mesh,
const std::string &  name = "Object" 
)

Creates and adds a scene object with a mesh.

Parameters
meshShared pointer to the mesh.
nameName of the object.
Returns
Reference to the created object.

◆ AddObject() [2/2]

SceneObject & Scene::AddObject ( std::shared_ptr< SceneObject object)

Adds a scene object to the scene.

Parameters
objectShared pointer to the scene object.
Returns
Reference to the added object.

◆ Clear()

void Scene::Clear ( )

Clears all objects from the scene.

◆ ClearSelection()

void Scene::ClearSelection ( )

Clears all object selections.

◆ FindObject()

std::shared_ptr< SceneObject > Scene::FindObject ( const std::string &  name) const

Finds a scene object by name.

Parameters
nameName of the object to find.
Returns
Shared pointer to the object, or nullptr if not found.

◆ GetObjectCount()

size_t Scene::GetObjectCount ( ) const
inline

Gets the number of objects in the scene.

Returns
Number of objects.

◆ GetObjects()

const std::vector< std::shared_ptr< SceneObject > > & Scene::GetObjects ( ) const
inline

Gets all scene objects.

Returns
Vector of shared pointers to all objects.

◆ GetSelectedObject()

std::shared_ptr< SceneObject > Scene::GetSelectedObject ( ) const

Gets the currently selected object.

Returns
Shared pointer to selected object, or nullptr if none.

◆ RemoveObject() [1/2]

bool Scene::RemoveObject ( const std::string &  name)

Removes a scene object by name.

Parameters
nameName of the object to remove.
Returns
True if object was found and removed, false otherwise.

◆ RemoveObject() [2/2]

bool Scene::RemoveObject ( std::shared_ptr< SceneObject object)

Removes a scene object by pointer.

Parameters
objectShared pointer to the object to remove.
Returns
True if object was found and removed, false otherwise.

◆ Render()

void Scene::Render ( Renderer renderer,
const BaseCamera camera,
Shader shader 
)

Renders all visible objects in the scene.

Parameters
rendererReference to the renderer.
cameraReference to the camera.
shaderReference to the shader.

◆ SelectObject()

void Scene::SelectObject ( std::shared_ptr< SceneObject object)

Selects an object by pointer and clears other selections.

Parameters
objectShared pointer to the object to select.

◆ Update()

void Scene::Update ( float  deltaTime)

Updates all objects in the scene.

Parameters
deltaTimeTime since last update in seconds.

The documentation for this class was generated from the following files: