ToyMaker Game Engine 0.0.2
ToyMaker is a game engine developed and maintained by Zoheb Shujauddin.
Loading...
Searching...
No Matches
Scene System

Topics

 User Object-Oriented Logic

Files

file  ToyMaker_Main/include/toymaker/engine/scene_components.hpp
 Stores structs and classes for common components used by the SceneSystem and other related Systems.
file  ToyMaker_Main/include/toymaker/engine/scene_loading.hpp
 A collection of ResourceConstructor classes responsible for loading a scene into the engine.
file  ToyMaker_Main/include/toymaker/engine/scene_system.hpp
 System classes relating to the SceneSystem, which in some ways lies at the heart of the engine.
file  ToyMaker_Main/include/toymaker/engine/sim_system.hpp
 Classes and structs relating to the SimSystem, the system responsible for providing some level of general scriptability to scene nodes from a game developer's point-of-view.

Classes

struct  ToyMaker::Placement
 A component representing the position, rotation, and scale of an entity. More...
struct  ToyMaker::Transform
 The transform component, which moves the vertices of a model to their world space coordinates during rendering. More...
struct  ToyMaker::SceneHierarchyData
 Component representing hierarchical information related to this entity. More...
class  ToyMaker::SceneFromFile
 Constructs a scene tree from a file containing its JSON description. More...
class  ToyMaker::SceneFromDescription
 Constructs a scene tree (separate from the scene tree) based on its description in JSON. More...
class  ToyMaker::SceneNodeFromDescription
 Constructs a scene node based on its description in JSON. More...
class  ToyMaker::SimObjectFromDescription
 Constructs a SimObject from its description in JSON. More...
class  ToyMaker::ViewportNodeFromDescription
 Constructs a ViewportNode from its description in JSON. More...
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...
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...
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...
class  ToyMaker::SimObject
 A wrapper on entity that allows objects in the Scene to be scriptable. More...

Typedefs

using ToyMaker::TransformComponentSet = uint8_t
 Field indicating which transform components this object would like to inherit from its parent in the scene hierarchy.

Enumerations

enum  ToyMaker::TransformComponentOption : TransformComponentSet { ToyMaker::TRANSFORMCOMPONENT_TRANSLATION =0x1 , ToyMaker::TRANSFORMCOMPONENT_ROTATION =0x2 , ToyMaker::TRANSFORMCOMPONENT_SCALE =0x4 }
 The different kinds of values that can be inherited from a transform belonging to a parent. More...
enum class  ToyMaker::TransformInheritMode : uint8_t { ToyMaker::TransformInheritMode::PARENT , ToyMaker::TransformInheritMode::GLOBAL , ToyMaker::TransformInheritMode::CAMERA }
 The different kinds of values that can be inherited from a transform belonging to a parent. More...
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 (TransformComponentOption, { { TransformComponentOption::TRANSFORMCOMPONENT_TRANSLATION, "translation" }, { TransformComponentOption::TRANSFORMCOMPONENT_ROTATION, "rotation" }, { TransformComponentOption::TRANSFORMCOMPONENT_SCALE, "scale" }, })
 ToyMaker::NLOHMANN_JSON_SERIALIZE_ENUM (TransformInheritMode, { { TransformInheritMode::PARENT, "parent" }, { TransformInheritMode::GLOBAL, "global" }, { TransformInheritMode::CAMERA, "camera" }, })
void ToyMaker::from_json (const nlohmann::json &json, Placement &placement)
void ToyMaker::to_json (nlohmann::json &json, const Placement &placement)
void ToyMaker::to_json (nlohmann::json &json, const SceneHierarchyData &sceneHierarchyData)
void ToyMaker::from_json (const nlohmann::json &json, SceneHierarchyData &sceneHierarchyData)
void ToyMaker::to_json (nlohmann::json &json, const Transform &transform)
void ToyMaker::from_json (const nlohmann::json &json, Transform &transform)
 ToyMaker::NLOHMANN_JSON_SERIALIZE_ENUM (RelativeTo, { {RelativeTo::PARENT, "parent"}, })

Variables

const std::string ToyMaker::kSceneRootName { "" }
 Special name for the scene root, unusable by any other scene object.

Detailed Description

Typedef Documentation

◆ TransformComponentSet

Field indicating which transform components this object would like to inherit from its parent in the scene hierarchy.

See also
TransformComponentOption

Enumeration Type Documentation

◆ RelativeTo

enum class ToyMaker::RelativeTo : uint8_t
strong

(Presently unused) A marker to indicate how transforms should be computed for a given scene node.

Currently all scene nodes are computed relative to their parent (even if they shouldn't be).

Todo
Make this feature actually work.

◆ SpecialEntity

(Perhaps unused) Special "reserved" entity IDs which the scene system might use.

Todo
Figure out if there's actual any use for this or if my brain farted when I was writing the scene system.

◆ TransformComponentOption

The different kinds of values that can be inherited from a transform belonging to a parent.

Enumerator
TRANSFORMCOMPONENT_TRANSLATION 

Translation is inherited from this objects parent.

TRANSFORMCOMPONENT_ROTATION 

Rotation is inherited from this object's parent.

TRANSFORMCOMPONENT_SCALE 

Scale is inherited from this object's parent.

◆ TransformInheritMode

enum class ToyMaker::TransformInheritMode : uint8_t
strong

The different kinds of values that can be inherited from a transform belonging to a parent.

Enumerator
PARENT 

Transform components are inherited from this object's parent.

GLOBAL 

This object's transform is directly specified as a world-relative matrix (where the world matrix is simply the identity matrix)

CAMERA 

This object's transform is specified relative to the view matrix of the active camera in its ECS world.