VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
visutwin::canvas::Scene Class Reference

Container for the scene graph, lighting environment, fog, skybox, and layer composition. More...

#include <scene/scene.h>

Inheritance diagram for visutwin::canvas::Scene:
[legend]

Public Member Functions

const ColorambientLight () const
bool atmosphereEnabled () const
const void * atmosphereUniformData () const
 Access raw atmosphere uniform data for the device.
size_t atmosphereUniformSize () const
bool clusteredLightingEnabled () const
bool debugNormalMapsEnabled () const
TextureenvAtlas () const
float exposure () const
const FogParamsfog () const
Immediateimmediate () const
const std::shared_ptr< LayerComposition > & layers () const
const LightingParamslighting () const
 Scene (const std::shared_ptr< GraphicsDevice > &graphicsDevice)
void setAmbientLight (float r, float g, float b)
void setAtmosphereEnabled (bool value)
void setAtmosphereUniforms (const void *data, size_t size)
void setClusteredLightingEnabled (bool value)
void setDebugNormalMapsEnabled (const bool enabled)
void setEnvAtlas (Texture *value)
void setExposure (float value)
void setFogColor (const Color &color)
void setFogDensity (const float density)
void setFogEnabled (const bool enabled)
void setFogLinear (const float start, const float end)
void setLayers (const std::shared_ptr< LayerComposition > &layers)
void setPrefilteredCubemaps (const std::vector< Texture * > &cubemaps)
void setSkybox (Texture *value)
void setSkyboxIntensity (float value)
void setSkyboxMip (int value)
void setSkyType (int value)
void setToneMapping (int value)
Skysky () const
Textureskybox () const
float skyboxIntensity () const
int skyboxMip () const
int skyType () const
int toneMapping () const
 ~Scene ()=default
Public Member Functions inherited from visutwin::canvas::EventHandler
template<typename... Args>
EventHandlerfire (const std::string &name, Args &&... args)
bool hasEvent (const std::string &name) const
void initEventHandler ()
template<typename Callback>
requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>)
EventHandleroff (const std::string &name, Callback &&callback, void *scope=nullptr)
EventHandleroff (const std::string &name="", const HandleEventCallback &callback=HandleEventCallback(), void *scope=nullptr)
EventHandleroffByHandle (EventHandle *handle)
template<typename Callback>
requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>)
EventHandleon (const std::string &name, Callback &&callback, void *scope=nullptr)
EventHandleon (const std::string &name, HandleEventCallback callback, void *scope=nullptr)
template<typename Callback>
requires (!std::is_same_v<std::decay_t<Callback>, HandleEventCallback>)
EventHandleonce (const std::string &name, Callback &&callback, void *scope=nullptr)
EventHandleonce (const std::string &name, HandleEventCallback callback, void *scope=nullptr)
virtual ~EventHandler ()=default

Static Public Attributes

static constexpr const char * EVENT_SETLAYERS = "set:layers"

Additional Inherited Members

Protected Member Functions inherited from visutwin::canvas::EventHandler
EventHandleaddCallback (const std::string &name, HandleEventCallback callback, void *scope=nullptr, bool once=false)

Detailed Description

Container for the scene graph, lighting environment, fog, skybox, and layer composition.

A Scene holds all graphical objects, lights, and environment settings that the ForwardRenderer draws each frame. It owns the LayerComposition that controls render order and the LightingParams consumed by the shader system.

Definition at line 28 of file scene.h.

Constructor & Destructor Documentation

◆ Scene()

visutwin::canvas::Scene::Scene ( const std::shared_ptr< GraphicsDevice > & graphicsDevice)

Definition at line 14 of file scene.cpp.

◆ ~Scene()

visutwin::canvas::Scene::~Scene ( )
default

Member Function Documentation

◆ ambientLight()

const Color & visutwin::canvas::Scene::ambientLight ( ) const
inline

Definition at line 41 of file scene.h.

◆ atmosphereEnabled()

bool visutwin::canvas::Scene::atmosphereEnabled ( ) const
inline

Definition at line 94 of file scene.h.

◆ atmosphereUniformData()

const void * visutwin::canvas::Scene::atmosphereUniformData ( ) const
inline

Access raw atmosphere uniform data for the device.

Definition at line 101 of file scene.h.

◆ atmosphereUniformSize()

size_t visutwin::canvas::Scene::atmosphereUniformSize ( ) const
inline

Definition at line 102 of file scene.h.

◆ clusteredLightingEnabled()

bool visutwin::canvas::Scene::clusteredLightingEnabled ( ) const
inline

Definition at line 36 of file scene.h.

◆ debugNormalMapsEnabled()

bool visutwin::canvas::Scene::debugNormalMapsEnabled ( ) const
inline

Definition at line 75 of file scene.h.

◆ envAtlas()

Texture * visutwin::canvas::Scene::envAtlas ( ) const
inline

Definition at line 64 of file scene.h.

◆ exposure()

float visutwin::canvas::Scene::exposure ( ) const
inline

Definition at line 58 of file scene.h.

◆ fog()

const FogParams & visutwin::canvas::Scene::fog ( ) const
inline

Definition at line 42 of file scene.h.

◆ immediate()

Immediate * visutwin::canvas::Scene::immediate ( ) const
inline

Definition at line 52 of file scene.h.

◆ layers()

const std::shared_ptr< LayerComposition > & visutwin::canvas::Scene::layers ( ) const
inline

◆ lighting()

const LightingParams & visutwin::canvas::Scene::lighting ( ) const
inline

Definition at line 39 of file scene.h.

◆ setAmbientLight()

void visutwin::canvas::Scene::setAmbientLight ( float r,
float g,
float b )
inline

Definition at line 44 of file scene.h.

◆ setAtmosphereEnabled()

void visutwin::canvas::Scene::setAtmosphereEnabled ( bool value)
inline

Definition at line 93 of file scene.h.

◆ setAtmosphereUniforms()

void visutwin::canvas::Scene::setAtmosphereUniforms ( const void * data,
size_t size )

Set atmosphere uniforms from bridge data. data must be a 96-byte AtmosphereUniforms-compatible struct.

Definition at line 97 of file scene.cpp.

◆ setClusteredLightingEnabled()

void visutwin::canvas::Scene::setClusteredLightingEnabled ( bool value)
inline

Definition at line 37 of file scene.h.

◆ setDebugNormalMapsEnabled()

void visutwin::canvas::Scene::setDebugNormalMapsEnabled ( const bool enabled)
inline

Definition at line 76 of file scene.h.

◆ setEnvAtlas()

◆ setExposure()

void visutwin::canvas::Scene::setExposure ( float value)
inline

Definition at line 57 of file scene.h.

◆ setFogColor()

void visutwin::canvas::Scene::setFogColor ( const Color & color)
inline

Definition at line 78 of file scene.h.

◆ setFogDensity()

void visutwin::canvas::Scene::setFogDensity ( const float density)
inline

Definition at line 84 of file scene.h.

◆ setFogEnabled()

void visutwin::canvas::Scene::setFogEnabled ( const bool enabled)
inline

Definition at line 77 of file scene.h.

◆ setFogLinear()

void visutwin::canvas::Scene::setFogLinear ( const float start,
const float end )
inline

Definition at line 79 of file scene.h.

◆ setLayers()

void visutwin::canvas::Scene::setLayers ( const std::shared_ptr< LayerComposition > & layers)

Definition at line 37 of file scene.cpp.

References EVENT_SETLAYERS, visutwin::canvas::EventHandler::fire(), and layers().

◆ setPrefilteredCubemaps()

void visutwin::canvas::Scene::setPrefilteredCubemaps ( const std::vector< Texture * > & cubemaps)

Set prefiltered cubemaps and generate an environment atlas from them. Scene.setPrefilteredCubemaps().

Definition at line 104 of file scene.cpp.

◆ setSkybox()

void visutwin::canvas::Scene::setSkybox ( Texture * value)

Definition at line 89 of file scene.cpp.

◆ setSkyboxIntensity()

void visutwin::canvas::Scene::setSkyboxIntensity ( float value)

Definition at line 47 of file scene.cpp.

◆ setSkyboxMip()

void visutwin::canvas::Scene::setSkyboxMip ( int value)

Definition at line 19 of file scene.cpp.

◆ setSkyType()

void visutwin::canvas::Scene::setSkyType ( int value)

Definition at line 54 of file scene.cpp.

◆ setToneMapping()

void visutwin::canvas::Scene::setToneMapping ( int value)
inline

Definition at line 72 of file scene.h.

◆ sky()

Sky * visutwin::canvas::Scene::sky ( ) const
inline

Definition at line 65 of file scene.h.

◆ skybox()

Texture * visutwin::canvas::Scene::skybox ( ) const
inline

Definition at line 70 of file scene.h.

◆ skyboxIntensity()

float visutwin::canvas::Scene::skyboxIntensity ( ) const
inline

Definition at line 55 of file scene.h.

◆ skyboxMip()

int visutwin::canvas::Scene::skyboxMip ( ) const
inline

Definition at line 48 of file scene.h.

◆ skyType()

int visutwin::canvas::Scene::skyType ( ) const
inline

Definition at line 61 of file scene.h.

◆ toneMapping()

int visutwin::canvas::Scene::toneMapping ( ) const
inline

Definition at line 73 of file scene.h.

Member Data Documentation

◆ EVENT_SETLAYERS

const char* visutwin::canvas::Scene::EVENT_SETLAYERS = "set:layers"
staticconstexpr

Definition at line 31 of file scene.h.

Referenced by setLayers().


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