System classes relating to the SceneSystem, which in some ways lies at the heart of the engine.
More...
#include <vector>
#include <memory>
#include <unordered_map>
#include <algorithm>
#include <cctype>
#include <type_traits>
#include <glm/glm.hpp>
#include <glm/gtc/quaternion.hpp>
#include "core/ecs_world.hpp"
#include "core/resource_database.hpp"
#include "scene_components.hpp"
#include "spatial_query_math.hpp"
#include "render_system.hpp"
#include "texture.hpp"
#include "input_system/input_system.hpp"
Go to the source code of this file.
|
class | ToyMaker::SceneNodeCore |
| The core of a node in the SceneSystem, a set of components and methods overridable or usable by all types of scene nodes. More...
|
|
struct | ToyMaker::SceneNodeCore::Key |
| A private struct to limit certain sensitive functions to this class and other closely coupled classes. More...
|
|
struct | ToyMaker::SceneNodeCore::getByPath_Helper< TObject, Enable > |
| A helper intended to get scene nodes and related objects attached to the scene tree. More...
|
|
class | ToyMaker::BaseSceneNode< TSceneNode > |
| A CRTP template for all the scene node types present in the project. More...
|
|
class | ToyMaker::SceneNode |
| The most basic vanilla flavour of scene node comprised of no more than a name and some components. More...
|
|
class | ToyMaker::ViewportNode |
| A type of node capable of and responsible for interacting sensibly with the engine's RenderSystem and ECSWorlds. More...
|
|
struct | ToyMaker::ViewportNode::RenderConfiguration |
| A collection of data that specifies the behaviour and properties of the RenderSystem and target texture associated with this viewport. More...
|
|
struct | ToyMaker::ViewportNode::ViewportChildComp_ |
| Comparator used for determining priority of descendant viewports owned by a RenderSet::RenderType::ADDITION viewport. More...
|
|
class | ToyMaker::SceneSystem |
| The SceneSystem, a singleton System, responsible for tracking all objects in the scene, computing their Transforms, and maintaining hierarchical relationships between scene nodes. More...
|
|
class | ToyMaker::SceneSystem::SceneSubworld |
| A subsystem of the SceneSystem which tracks, per world, which objects have had their Placement components updated. More...
|
|
struct | ToyMaker::SceneSystem::getNodeByID_Helper< TSceneNode, Enable > |
| Helper struct for retrieving nodes based on their UniversalEntityIDs. More...
|
|
struct | ToyMaker::SceneSystem::getNodeByID_Helper< TSceneNode, typename std::enable_if_t< std::is_base_of< SceneNodeCore, TSceneNode >::value > > |
|
struct | ToyMaker::SceneNodeCore::getByPath_Helper< std::shared_ptr< TObject >, typename std::enable_if_t< std::is_base_of< SceneNodeCore, TObject >::value > > |
|
|
namespace | ToyMaker |
| Namespace containing all class definitions and functions related to the ToyMaker engine.
|
|
|
enum class | ToyMaker::RelativeTo : uint8_t { PARENT =0
} |
| (Presently unused) A marker to indicate how transforms should be computed for a given scene node. More...
|
|
enum | ToyMaker::SpecialEntity : EntityID { ENTITY_NULL = kMaxEntities
} |
| (Perhaps unused) Special "reserved" entity IDs which the scene system might use. More...
|
|
|
| ToyMaker::NLOHMANN_JSON_SERIALIZE_ENUM (RelativeTo, { {RelativeTo::PARENT, "parent"}, }) |
|
| ToyMaker::NLOHMANN_JSON_SERIALIZE_ENUM (ViewportNode::RenderConfiguration::ResizeType, { {ViewportNode::RenderConfiguration::ResizeType::OFF, "off"}, {ViewportNode::RenderConfiguration::ResizeType::VIEWPORT_DIMENSIONS, "viewport-dimensions"}, {ViewportNode::RenderConfiguration::ResizeType::TEXTURE_DIMENSIONS, "texture-dimensions"}, }) |
|
| ToyMaker::NLOHMANN_JSON_SERIALIZE_ENUM (ViewportNode::RenderConfiguration::ResizeMode, { {ViewportNode::RenderConfiguration::ResizeMode::FIXED_ASPECT,"fixed-aspect"}, {ViewportNode::RenderConfiguration::ResizeMode::EXPAND_VERTICALLY, "expand-vertically"}, {ViewportNode::RenderConfiguration::ResizeMode::EXPAND_HORIZONTALLY, "expand-horizontally"}, {ViewportNode::RenderConfiguration::ResizeMode::EXPAND_FILL, "expand-fill"}, }) |
|
| ToyMaker::NLOHMANN_JSON_SERIALIZE_ENUM (ViewportNode::RenderConfiguration::UpdateMode, { {ViewportNode::RenderConfiguration::UpdateMode::NEVER, "never"}, {ViewportNode::RenderConfiguration::UpdateMode::ONCE, "once"}, {ViewportNode::RenderConfiguration::UpdateMode::ON_FETCH, "on-fetch"}, {ViewportNode::RenderConfiguration::UpdateMode::ON_RENDER, "on-render"}, {ViewportNode::RenderConfiguration::UpdateMode::ON_RENDER_CAP_FPS, "on-render-cap-fps"}, }) |
|
| ToyMaker::NLOHMANN_JSON_SERIALIZE_ENUM (ViewportNode::RenderConfiguration::RenderType, { {ViewportNode::RenderConfiguration::RenderType::BASIC_3D, "basic-3d"}, {ViewportNode::RenderConfiguration::RenderType::ADDITION, "addition"}, }) |
|
void | ToyMaker::to_json (nlohmann::json &json, const ViewportNode::RenderConfiguration &renderConfiguration) |
|
void | ToyMaker::from_json (const nlohmann::json &json, ViewportNode::RenderConfiguration &renderConfiguration) |
|
|
const std::string | ToyMaker::kSceneRootName { "" } |
| Special name for the scene root, unusable by any other scene object.
|
|
System classes relating to the SceneSystem, which in some ways lies at the heart of the engine.
- Author
- Zoheb Shujauddin (zoheb.nosp@m.2424.nosp@m.@gmai.nosp@m.l.co.nosp@m.m)
- Version
- 0.3.2
- Date
- 2025-09-05