|
| template<typename... TComponents> |
| | BaseSceneNode (const Key &key, const Placement &placement, const std::string &name, TComponents...components) |
| | Constructor for a single node of a subclass.
|
| |
| template<typename ... TComponents> |
| | BaseSceneNode (const Placement &placement, const std::string &name, TComponents...components) |
| | General constructor for a single node of a subclass.
|
| |
| | BaseSceneNode (const nlohmann::json &nodeDescription) |
| | Constructs a new node of a certain type based on its json description.
|
| |
| | BaseSceneNode (const SceneNodeCore &other) |
| | Constructs a new node of a certain type as a copy of another node.
|
| |
| virtual void | joinWorld (ECSWorld &world) |
| | Removes this node's entity from its current ECSWorld and adds it to a new ECSWorld.
|
| |
| template<typename ... TComponents> |
| | SceneNodeCore (const Placement &placement, const std::string &name, TComponents...components) |
| | Constructs a scene node object from essential and extra components.
|
| |
| | SceneNodeCore (const nlohmann::json &jsonSceneNode) |
| | Constructs a node based on its description of JSON, later verifying that essential components are present.
|
| |
| | SceneNodeCore (const SceneNodeCore &sceneObject) |
| | Constructs a new node as a copy of another node.
|
| |
| virtual void | onCreated () |
| | Copy assignment operator.
|
| |
| virtual void | onActivated () |
| | Scene node lifecycle hook for when a node is made an active part of the SceneSystem.
|
| |
| virtual void | onDeactivated () |
| | Scene node lifecycle hook for when a node is deactivated on the SceneSystem.
|
| |
| virtual void | onDestroyed () |
| | Scene node lifecycle hook for when a node (and possibly its descendants) are about to be destroyed.
|
| |
|
| template<typename ... TComponents> |
| static std::shared_ptr< TSceneNode > | create (const Key &, const Placement &placement, const std::string &name, TComponents...components) |
| | A (private) method for the creation of a new scene node for a particular type.
|
| |
| template<typename ... TComponents> |
| static std::shared_ptr< TSceneNode > | create (const Placement &placement, const std::string &name, TComponents...components) |
| | A method for creating a scene node of a specific type (TSceneNode)
|
| |
| static std::shared_ptr< TSceneNode > | create (const nlohmann::json &sceneNodeDescription) |
| | Creates a scene node of a type based on its description in JSON.
|
| |
| static std::shared_ptr< TSceneNode > | copy (const std::shared_ptr< const TSceneNode > sceneNode) |
| | Creates a scene node of a specific type based on another node of that type.
|
| |
| static std::shared_ptr< SceneNodeCore > | copy (const std::shared_ptr< const SceneNodeCore > other) |
| | Creates a new scene tree by copying another scene node and its descendants.
|
| |
| static void | validateName (const std::string &nodeName) |
| | Tests whether a given name is actually valid, throwing an error when it is not.
|
| |
|
| virtual | ~SceneNodeCore ()=default |
| | Destroys SceneNodeCore.
|
| |
| template<typename TComponent> |
| void | addComponent (const TComponent &component, const bool bypassSceneActivityCheck=false) |
| | Adds a component of type TComponent to the node.
|
| |
| void | addComponent (const nlohmann::json &jsonComponent, const bool bypassSceneActivityCheck=false) |
| | Adds a component to the node.
|
| |
| template<typename TComponent> |
| TComponent | getComponent (const float simulationProgress=1.f) const |
| | Retrieves a component belonging to this node.
|
| |
| template<typename TComponent> |
| bool | hasComponent () const |
| | Tests whether this node has a component of a specific type.
|
| |
| bool | hasComponent (const std::string &type) const |
| | Tests whether this node has a component of a specific type.
|
| |
| template<typename TComponent> |
| void | updateComponent (const TComponent &component) |
| | Updates the value of a component of this node (to what it should be at the start of the next simulation step).
|
| |
| void | updateComponent (const nlohmann::json &component) |
| | Updates the value of a component of this node (to what it should be at the start of the next simulation step).
|
| |
| template<typename TComponent> |
| void | addOrUpdateComponent (const TComponent &component, const bool bypassSceneActivityCheck=false) |
| | A method for adding a component or updating a component if that component is already present on this node.
|
| |
| void | addOrUpdateComponent (const nlohmann::json &component, const bool bypassSceneActivityCheck=false) |
| | A method for adding a component, or updating a component if the same type of component is already present on this node.
|
| |
| template<typename TComponent> |
| void | removeComponent () |
| | Removes a component present on this node.
|
| |
| template<typename TSystem> |
| void | setEnabled (bool state) |
| | Sets whether or not a given system should be able to influence this scene object.
|
| |
| template<typename TSystem> |
| bool | getEnabled () const |
| | Returns whether a particular system has been enabled for this node.
|
| |
| EntityID | getEntityID () const |
| | Returns the entity id associated with these scene node.
|
| |
| WorldID | getWorldID () const |
| | Returns the ID of the ECSWorld this node belongs to.
|
| |
| UniversalEntityID | getUniversalEntityID () const |
| | Gets the UniversalEntityID aka the world-entity-id pair associated with this node.
|
| |
| std::weak_ptr< ECSWorld > | getWorld () const |
| | Gets a reference to the ECSWorld this node belongs to.
|
| |
| bool | inScene () const |
| | Returns whether this node is present as part of the SceneSystem's scene tree.
|
| |
| bool | isActive () const |
| | Returns whether this node is present as part of the SceneSystem's scene tree, AND is active there as well.
|
| |
| bool | isAncestorOf (std::shared_ptr< const SceneNodeCore > sceneNode) const |
| | Tests whether a particular scene node is the ancestor of this one.
|
| |
| bool | hasNode (const std::string &pathToChild) const |
| | Tests whether a node specified by some path relative to this node is a real descendant of this node.
|
| |
| void | addNode (std::shared_ptr< SceneNodeCore > node, const std::string &where) |
| | Adds a node (or a tree of them) as a child of the node specified by the path in the argument.
|
| |
| std::vector< std::shared_ptr< SceneNodeCore > > | getChildren () |
| | Returns a list of all of this node's immediate children scene nodes.
|
| |
| std::vector< std::shared_ptr< const SceneNodeCore > > | getChildren () const |
| | Returns a list of all of this node's immediate children scene nodes.
|
| |
| std::vector< std::shared_ptr< SceneNodeCore > > | getDescendants () |
| | Gets all of the descendant nodes belonging to this scene node.
|
| |
| template<typename TObject = std::shared_ptr<SceneNode>> |
| TObject | getByPath (const std::string &where) |
| | Gets a reference to a node or related object by its path.
|
| |
| template<typename TSceneNode = SceneNode> |
| std::shared_ptr< TSceneNode > | getNodeByID (EntityID entityID) |
| | Gets a pointer to a node by its EntityID, assuming that node and this one belong to the same ECSWorld.
|
| |
| std::string | getPathFromAncestor (std::shared_ptr< const SceneNodeCore > ancestor) const |
| | Gets the path from a node (assumed to be an ancestor) to this node.
|
| |
| virtual std::shared_ptr< ViewportNode > | getLocalViewport () |
| | Returns the viewport node which is in the same ECSWorld as and is the closest ancestor of (or the same as) this node.
|
| |
| virtual std::shared_ptr< const ViewportNode > | getLocalViewport () const |
| | Returns (a constant reference to) the viewport node which is in the same ECSWorld as and is the closes ancestor of (or the same as) this node.
|
| |
| std::shared_ptr< SceneNodeCore > | getNode (const std::string &where) |
| | Gets a reference to a scene node (of any valid type) based on its path relative to this node.
|
| |
| std::shared_ptr< SceneNodeCore > | getParentNode () |
| | Gets the parent node of this node, if one is present.
|
| |
| std::shared_ptr< const SceneNodeCore > | getParentNode () const |
| | Gets (a constant reference to) the parent node of this node, if one is present.
|
| |
| std::shared_ptr< SceneNodeCore > | removeNode (const std::string &where) |
| | Removes a node from the tree present at the path specified.
|
| |
| std::vector< std::shared_ptr< SceneNodeCore > > | removeChildren () |
| | Disconnects and removes all the child nodes attached to this node.
|
| |
| std::string | getName () const |
| | Returns the name string for this node.
|
| |
| void | setName (const std::string &name) |
| | Sets the name of this node.
|
| |
| std::string | getViewportLocalPath () const |
| | Gets the path of this node relative to its local viewport node.
|
| |
| void | setPrototype_ (std::shared_ptr< SceneNodeCore > prototype) |
| | A reference to the node which was used in order to construct this one.
|
| |
|
template<> |
| void | setEnabled (bool state) |
| |
|
template<> |
| void | removeComponent () |
| |
|
template<> |
| void | removeComponent () |
| |
|
template<> |
| void | removeComponent () |
| |
|
template<> |
| void | setEnabled (bool) |
| |
|
template<> |
| void | updateComponent (const AxisAlignedBounds &axisAlignedBoxBounds) |
| |
|
template<> |
| void | updateComponent (const ObjectBounds &objectBounds) |
| |
|
template<> |
| void | removeComponent () |
| |
|
template<> |
| void | removeComponent () |
| |
| static void | SceneNodeCore_del_ (SceneNodeCore *sceneNode) |
| | Deleter for a managed pointer to a scene node which ensures its onDestroyed virtual function gets called.
|
| |
template<typename TSceneNode>
class ToyMaker::BaseSceneNode< TSceneNode >
A CRTP template for all the scene node types present in the project.
- Template Parameters
-
| TSceneNode | A specialization and subclass of this class. |