Scene
The Scene class represents a complete 3D scene and manages its core components. It allows adding, removing, finding, and updating all scene elements. The class integrates with SceneManager, SceneRender, and SceneScript to coordinate rendering and scripting operations. It includes methods to manage scene transforms and spatial structures, update scene data, and dispatch compute tasks for rendering or simulation.
#include <scene/TellusimScene.h>
Constructors
explicit Scene(const char *name = nullptr)
explicit Scene(SceneManager &manager, const char *name = nullptr)
explicit Scene(SceneManager &manager, SceneRender *render, const char *name = nullptr)
Methods
Clear scene.
void clear()
Scene unique identifier.
uint32_t getID() const
Scene name.
void setName(const char *name)
void setName(const String &name)
String getName() const
Scene manager.
void setManager(SceneManager &manager)
SceneManager getManager()
Render interface.
void setRender(SceneRender *render)
SceneRender getRender(SceneRender *render)
Script interface.
void setScript(SceneScript *script)
SceneScript getScript(SceneScript *script)
Renderer interfaces.
void addRenderer(SceneRenderer *renderer)
bool removeRenderer(SceneRenderer *renderer)
Physics interfaces.
void addPhysics(ScenePhysics *physics)
bool removePhysics(ScenePhysics *physics)
Scene disabled flag.
void setDisabled(bool disabled)
bool isDisabled() const
Scene frame.
void setFrame(uint64_t frame)
uint64_t getFrame() const
Scene time.
void setTime(float64_t time, float64_t ifps = -1.0)
float64_t getTime() const
float64_t getIFps() const
Expanded flag.
void setExpanded(bool flag)
bool isExpanded() const
Immutable flag.
void setImmutable(bool immutable)
bool isImmutable() const
Changed flag.
void setChanged(bool flag)
bool isChanged() const
Pointer info.
void setPtrInfo(void *ptr)
void *getPtrInfo() const
Meta info.
void setMetaInfo(const String &info)
String getMetaInfo() const
Create scene.
bool create(const Device &device, Async *async = nullptr, const CreateCallback *func = nullptr)
Scene graphs.
void shrinkGraphs()
void reserveGraphs(uint32_t num_graphs)
uint32_t addGraph(Graph &graph, bool check = true)
bool removeGraph(Graph &graph, bool clean = false, bool update = false)
void releaseGraphs(bool clean = false, bool update = false)
bool swapGraphs(Graph &graph_0, Graph &graph_1, bool update = false)
uint32_t findGraph(const Graph &graph) const
uint32_t findGraph(const char *name) const
uint32_t findGraph(uint32_t type) const
uint32_t getNumGraphs() const
uint32_t getGraphCount() const
uint32_t getGraphCapacity() const
const Array<Graph> getGraphs() const
Array<Graph> getGraphs()
const Graph getGraph(uint32_t index) const
const Graph getGraph(const char *name) const
Graph getGraph(uint32_t index)
Graph getGraph(const char *name)
void updateGraphs(Array<Graph> graphs)
void updateGraph(Graph &graph, bool update = false)
void updateGraphs()
uint32_t getGraphAddress() const
Scene lights.
void shrinkLights()
void reserveLights(uint32_t num_lights)
uint32_t addLight(Light &light, bool check = true)
bool removeLight(Light &light, bool clean = false, bool update = false)
void releaseLights(bool clean = false, bool update = false)
bool swapLights(Light &light_0, Light &light_1, bool update = false)
uint32_t findLight(const Light &light) const
uint32_t findLight(const char *name) const
uint32_t findLight(uint32_t type) const
uint32_t getNumLights() const
uint32_t getLightCount() const
uint32_t getLightCapacity() const
const Array<Light> getLights() const
Array<Light> getLights()
const Light getLight(uint32_t index) const
const Light getLight(const char *name) const
Light getLight(uint32_t index)
Light getLight(const char *name)
void updateLights(Array<Light> lights)
void updateLight(Light &light, bool update = false)
void updateLights()
uint32_t getLightAddress() const
Scene cameras.
void shrinkCameras()
void reserveCameras(uint32_t num_cameras)
uint32_t addCamera(Camera &camera, bool check = true)
bool removeCamera(Camera &camera, bool clean = false, bool update = false)
void releaseCameras(bool clean = false, bool update = false)
bool swapCameras(Camera &camera_0, Camera &camera_1, bool update = false)
uint32_t findCamera(const Camera &camera) const
uint32_t findCamera(const char *name) const
uint32_t findCamera(uint32_t type) const
uint32_t getNumCameras() const
uint32_t getCameraCount() const
uint32_t getCameraCapacity() const
const Array<Camera> getCameras() const
Array<Camera> getCameras()
const Camera getCamera(uint32_t index) const
const Camera getCamera(const char *name) const
Camera getCamera(uint32_t index)
Camera getCamera(const char *name)
void updateCameras(Array<Camera> cameras)
void updateCamera(Camera &camera, bool update = false)
void updateCameras()
uint32_t getCameraAddress() const
Scene objects.
void shrinkObjects()
void reserveObjects(uint32_t num_objects)
uint32_t addObject(Object &object, bool check = true)
bool removeObject(Object &object, bool clean = false, bool update = false)
void releaseObjects(bool clean = false, bool update = false)
bool swapObjects(Object &object_0, Object &object_1, bool update = false)
uint32_t findObject(const Object &object) const
uint32_t findObject(const char *name) const
uint32_t findObject(uint32_t type) const
uint32_t getNumObjects() const
uint32_t getObjectCount() const
uint32_t getObjectCapacity() const
const Array<Object> getObjects() const
Array<Object> getObjects()
const Object getObject(uint32_t index) const
const Object getObject(const char *name) const
Object getObject(uint32_t index)
Object getObject(const char *name)
void updateObjects(Array<Object> objects)
void updateObject(Object &object, bool update = false)
void updateObjects()
uint32_t getObjectAddress() const
Scene bodies.
void shrinkBodies()
void reserveBodies(uint32_t num_bodies)
uint32_t addBody(Body &body, bool check = true)
bool removeBody(Body &body, bool clean = false, bool update = false)
void releaseBodies(bool clean = false, bool update = false)
bool swapBodies(Body &body_0, Body &body_1, bool update = false)
uint32_t findBody(const Body &body) const
uint32_t findBody(const char *name) const
uint32_t findBody(uint32_t type) const
uint32_t getNumBodies() const
uint32_t getBodyCount() const
uint32_t getBodyCapacity() const
const Array<Body> getBodies() const
Array<Body> getBodies()
const Body getBody(uint32_t index) const
const Body getBody(const char *name) const
Body getBody(uint32_t index)
Body getBody(const char *name)
void updateBodies(Array<Body> bodies)
void updateBody(Body &body, bool update = false)
void updateBodies()
uint32_t getBodyAddress() const
Scene materials.
void shrinkMaterials()
void reserveMaterials(uint32_t num_materials)
uint32_t addMaterial(Material &material, bool check = true)
bool removeMaterial(Material &material, bool clean = false, bool update = false)
void releaseMaterials(bool clean = false, bool update = false)
bool swapMaterials(Material &material_0, Material &material_1, bool update = false)
uint32_t findMaterial(const Material &material) const
uint32_t findMaterial(const char *name) const
uint32_t findMaterial(uint32_t type) const
uint32_t getNumMaterials() const
uint32_t getMaterialCount() const
uint32_t getMaterialCapacity() const
const Array<Material> getMaterials() const
Array<Material> getMaterials()
const Material getMaterial(uint32_t index) const
const Material getMaterial(const char *name) const
Material getMaterial(uint32_t index)
Material getMaterial(const char *name)
void updateMaterials(Array<Material> materials)
void updateMaterial(Material &material, bool update = false)
void updateMaterials()
uint32_t getMaterialAddress() const
Root materials.
void shrinkRootMaterials()
void reserveRootMaterials(uint32_t num_materials)
uint32_t getNumRootMaterials() const
const Array<uint32_t> getRootMaterialIndices() const
uint32_t getRootMaterialIndex(uint32_t index) const
Script materials.
void shrinkScriptMaterials()
void reserveScriptMaterials(uint32_t num_materials)
uint32_t getNumScriptMaterials() const
const Array<uint32_t> getScriptMaterialIndices() const
uint32_t getScriptMaterialIndex(uint32_t index) const
Scene programs.
void shrinkPrograms()
void reservePrograms(uint32_t num_programs)
uint32_t getNumPrograms() const
uint64_t getProgramsFrame() const
uint32_t getProgramsPassMask() const
uint32_t getProgramsModeMask() const
MaterialRoot getProgramMaterial(uint32_t index) const
uint32_t getProgramOffset(uint32_t index) const
uint32_t getProgramIndex(uint32_t index) const
uint32_t getProgramType(uint32_t index) const
Create transforms.
void createTransforms(bool update = false, bool clear = false)
Type | Name | Description |
---|---|---|
bool | update | Update Graphs and Nodes. |
bool | clear | Clear Node update mask after transformation. |
Update transforms.
void updateTransforms(bool update = false)
Type | Name | Description |
---|---|---|
bool | update | Update Graphs and Nodes. |
Update spatial tree.
void updateSpatial(bool update = false)
Scene address.
uint32_t getAddress() const
Updated flag.
bool isUpdated() const
Update scene.
void update(const Device &device)
void update(const Device &device, NodeCamera &node)
Dispatch scene.
void dispatch(const Device &device, Compute &compute)
void dispatch(const Device &device, Compute &compute, NodeCamera &node)
Types
using CreateCallback = Function<void(uint32_t progress, bool wait)>