|
ToyMaker Game Engine 0.0.2
ToyMaker is a game engine developed and maintained by Zoheb Shujauddin.
|
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 <type_traits>#include <glm/glm.hpp>#include <glm/gtc/quaternion.hpp>#include "spatial_query/types.hpp"#include "core/ecs_world.hpp"#include "core/resource_database.hpp"#include "scene_components.hpp"#include "render_system.hpp"#include "texture.hpp"#include "input_system/input_system.hpp"Go to the source code of this file.
Classes | |
| 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::PlacementUpdateReporter |
| A subsystem of the SceneSystem which tracks, per world, which objects have had their Placement components updated. More... | |
| class | ToyMaker::SceneSystem::TransformUpdateReporter |
| A subsystem of the SceneSystem which tracks, per world, which objects have had their Transform 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 > > |
Namespaces | |
| namespace | ToyMaker |
| Namespace containing all class definitions and functions related to the ToyMaker engine. | |
Enumerations | |
| 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... | |
Functions | |
| 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) |
Variables | |
| 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.