Urho3D
|
Scene node that may contain components and child nodes. More...
#include </home/runner/work/urho3d-doxygen.github.io/urho3d-doxygen.github.io/urho3d_repo/Source/Urho3D/Scene/Node.h>
Public Member Functions | |
Node (Context *context) | |
Construct. | |
~Node () override | |
Destruct. Any child nodes are detached. | |
bool | Load (Deserializer &source) override |
Load from binary data. Return true if successful. More... | |
bool | LoadXML (const XMLElement &source) override |
Load from XML data. Return true if successful. More... | |
bool | LoadJSON (const JSONValue &source) override |
Load from JSON data. Return true if successful. More... | |
bool | Save (Serializer &dest) const override |
Save as binary data. Return true if successful. More... | |
bool | SaveXML (XMLElement &dest) const override |
Save as XML data. Return true if successful. More... | |
bool | SaveJSON (JSONValue &dest) const override |
Save as JSON data. Return true if successful. More... | |
void | ApplyAttributes () override |
Apply attribute changes that can not be applied immediately recursively to child nodes and components. More... | |
bool | SaveDefaultAttributes () const override |
Return whether should save default-valued attributes into XML. Always save node transforms for readability, even if identity. More... | |
void | MarkNetworkUpdate () override |
Mark for attribute check on the next network update. More... | |
virtual void | AddReplicationState (NodeReplicationState *state) |
Add a replication state that is tracking this node. More... | |
bool | SaveXML (Serializer &dest, const String &indentation="\t") const |
Save to an XML file. Return true if successful. | |
bool | SaveJSON (Serializer &dest, const String &indentation="\t") const |
Save to a JSON file. Return true if successful. | |
void | SetName (const String &name) |
Set name of the scene node. Names are not required to be unique. | |
void | SetTags (const StringVector &tags) |
Set tags. Old tags are overwritten. | |
void | AddTag (const String &tag) |
Add a tag. | |
void | AddTags (const String &tags, char separator=';') |
Add tags with the specified separator (; by default). | |
void | AddTags (const StringVector &tags) |
Add tags. | |
bool | RemoveTag (const String &tag) |
Remove tag. Return true if existed. | |
void | RemoveAllTags () |
Remove all tags. | |
void | SetPosition (const Vector3 &position) |
Set position in parent space. If the scene node is on the root level (is child of the scene itself), this is same as world space. | |
void | SetPosition2D (const Vector2 &position) |
Set position in parent space (for Urho2D). | |
void | SetPosition2D (float x, float y) |
Set position in parent space (for Urho2D). | |
void | SetRotation (const Quaternion &rotation) |
Set rotation in parent space. | |
void | SetRotation2D (float rotation) |
Set rotation in parent space (for Urho2D). | |
void | SetDirection (const Vector3 &direction) |
Set forward direction in parent space. Positive Z axis equals identity rotation. | |
void | SetScale (float scale) |
Set uniform scale in parent space. | |
void | SetScale (const Vector3 &scale) |
Set scale in parent space. | |
void | SetScale2D (const Vector2 &scale) |
Set scale in parent space (for Urho2D). | |
void | SetScale2D (float x, float y) |
Set scale in parent space (for Urho2D). | |
void | SetTransform (const Vector3 &position, const Quaternion &rotation) |
Set both position and rotation in parent space as an atomic operation. This is faster than setting position and rotation separately. | |
void | SetTransform (const Vector3 &position, const Quaternion &rotation, float scale) |
Set position, rotation, and uniform scale in parent space as an atomic operation. | |
void | SetTransform (const Vector3 &position, const Quaternion &rotation, const Vector3 &scale) |
Set position, rotation, and scale in parent space as an atomic operation. | |
void | SetTransform (const Matrix3x4 &matrix) |
Set node transformation in parent space as an atomic operation. | |
void | SetTransform2D (const Vector2 &position, float rotation) |
Set both position and rotation in parent space as an atomic operation (for Urho2D). | |
void | SetTransform2D (const Vector2 &position, float rotation, float scale) |
Set position, rotation, and uniform scale in parent space as an atomic operation (for Urho2D). | |
void | SetTransform2D (const Vector2 &position, float rotation, const Vector2 &scale) |
Set position, rotation, and scale in parent space as an atomic operation (for Urho2D). | |
void | SetWorldPosition (const Vector3 &position) |
Set position in world space. | |
void | SetWorldPosition2D (const Vector2 &position) |
Set position in world space (for Urho2D). | |
void | SetWorldPosition2D (float x, float y) |
Set position in world space (for Urho2D). | |
void | SetWorldRotation (const Quaternion &rotation) |
Set rotation in world space. | |
void | SetWorldRotation2D (float rotation) |
Set rotation in world space (for Urho2D). | |
void | SetWorldDirection (const Vector3 &direction) |
Set forward direction in world space. | |
void | SetWorldScale (float scale) |
Set uniform scale in world space. | |
void | SetWorldScale (const Vector3 &scale) |
Set scale in world space. | |
void | SetWorldScale2D (const Vector2 &scale) |
Set scale in world space (for Urho2D). | |
void | SetWorldScale2D (float x, float y) |
Set scale in world space (for Urho2D). | |
void | SetWorldTransform (const Vector3 &position, const Quaternion &rotation) |
Set both position and rotation in world space as an atomic operation. | |
void | SetWorldTransform (const Vector3 &position, const Quaternion &rotation, float scale) |
Set position, rotation, and uniform scale in world space as an atomic operation. | |
void | SetWorldTransform (const Vector3 &position, const Quaternion &rotation, const Vector3 &scale) |
Set position, rotation, and scale in world space as an atomic opration. | |
void | SetWorldTransform (const Matrix3x4 &worldTransform) |
Set position, rotation, and scale in world space as an atomic operation from a transformation matrix. | |
void | SetWorldTransform2D (const Vector2 &position, float rotation) |
Set both position and rotation in world space as an atomic operation (for Urho2D). | |
void | SetWorldTransform2D (const Vector2 &position, float rotation, float scale) |
Set position, rotation, and uniform scale in world space as an atomic operation (for Urho2D). | |
void | SetWorldTransform2D (const Vector2 &position, float rotation, const Vector2 &scale) |
Set position, rotation, and scale in world space as an atomic opration (for Urho2D). | |
void | Translate (const Vector3 &delta, TransformSpace space=TransformSpace::Local) |
Move the scene node in the chosen transform space. | |
void | Translate2D (const Vector2 &delta, TransformSpace space=TransformSpace::Local) |
Move the scene node in the chosen transform space (for Urho2D). | |
void | Rotate (const Quaternion &delta, TransformSpace space=TransformSpace::Local) |
Rotate the scene node in the chosen transform space. | |
void | Rotate2D (float delta, TransformSpace space=TransformSpace::Local) |
Rotate the scene node in the chosen transform space (for Urho2D). | |
void | RotateAround (const Vector3 &point, const Quaternion &delta, TransformSpace space=TransformSpace::Local) |
Rotate around a point in the chosen transform space. | |
void | RotateAround2D (const Vector2 &point, float delta, TransformSpace space=TransformSpace::Local) |
Rotate around a point in the chosen transform space (for Urho2D). | |
void | Pitch (float angle, TransformSpace space=TransformSpace::Local) |
Rotate around the X axis. | |
void | Yaw (float angle, TransformSpace space=TransformSpace::Local) |
Rotate around the Y axis. | |
void | Roll (float angle, TransformSpace space=TransformSpace::Local) |
Rotate around the Z axis. | |
bool | LookAt (const Vector3 &target, const Vector3 &up=Vector3::UP, TransformSpace space=TransformSpace::World) |
Look at a target position in the chosen transform space. Note that the up vector is always specified in world space. Return true if successful, or false if resulted in an illegal rotation, in which case the current rotation remains. | |
void | Scale (float scale) |
Modify scale in parent space uniformly. | |
void | Scale (const Vector3 &scale) |
Modify scale in parent space. | |
void | Scale2D (const Vector2 &scale) |
Modify scale in parent space (for Urho2D). | |
void | SetEnabled (bool enable) |
Set enabled/disabled state without recursion. Components in a disabled node become effectively disabled regardless of their own enable/disable state. | |
void | SetDeepEnabled (bool enable) |
Set enabled state on self and child nodes. Nodes' own enabled state is remembered (IsEnabledSelf) and can be restored. | |
void | ResetDeepEnabled () |
Reset enabled state to the node's remembered state prior to calling SetDeepEnabled. | |
void | SetEnabledRecursive (bool enable) |
Set enabled state on self and child nodes. Unlike SetDeepEnabled this does not remember the nodes' own enabled state, but overwrites it. | |
void | SetOwner (Connection *owner) |
Set owner connection for networking. | |
void | MarkDirty () |
Mark node and child nodes to need world transform recalculation. Notify listener components. | |
Node * | CreateChild (const String &name=String::EMPTY, CreateMode mode=REPLICATED, NodeId id=0, bool temporary=false) |
Create a child scene node (with specified ID if provided). | |
Node * | CreateTemporaryChild (const String &name=String::EMPTY, CreateMode mode=REPLICATED, NodeId id=0) |
Create a temporary child scene node (with specified ID if provided). | |
void | AddChild (Node *node, i32 index=ENDPOS) |
Add a child scene node at a specific index. If index is not explicitly specified or is ENDPOS, append the new child at the end. | |
void | RemoveChild (Node *node) |
Remove a child scene node. | |
void | RemoveAllChildren () |
Remove all child scene nodes. | |
void | RemoveChildren (bool removeReplicated, bool removeLocal, bool recursive) |
Remove child scene nodes that match criteria. | |
Component * | CreateComponent (StringHash type, CreateMode mode=REPLICATED, ComponentId id=0) |
Create a component to this node (with specified ID if provided). | |
Component * | GetOrCreateComponent (StringHash type, CreateMode mode=REPLICATED, ComponentId id=0) |
Create a component to this node if it does not exist already. | |
Component * | CloneComponent (Component *component, ComponentId id=0) |
Clone a component from another node using its create mode. Return the clone if successful or null on failure. | |
Component * | CloneComponent (Component *component, CreateMode mode, ComponentId id=0) |
Clone a component from another node and specify the create mode. Return the clone if successful or null on failure. | |
void | RemoveComponent (Component *component) |
Remove a component from this node. | |
void | RemoveComponent (StringHash type) |
Remove the first component of specific type from this node. | |
void | RemoveComponents (bool removeReplicated, bool removeLocal) |
Remove components that match criteria. | |
void | RemoveComponents (StringHash type) |
Remove all components of specific type. | |
void | RemoveAllComponents () |
Remove all components from this node. | |
void | ReorderComponent (Component *component, i32 index) |
Adjust index order of an existing component in this node. index can be ENDPOS. | |
Node * | Clone (CreateMode mode=REPLICATED) |
Clone scene node, components and child nodes. Return the clone. | |
void | Remove () |
Remove from the parent node. If no other shared pointer references exist, causes immediate deletion. | |
void | SetParent (Node *parent) |
Assign to a new parent scene node. Retains the world transform. | |
void | SetVar (StringHash key, const Variant &value) |
Set a user variable. | |
void | AddListener (Component *component) |
Add listener component that is notified of node being dirtied. Can either be in the same node or another. | |
void | RemoveListener (Component *component) |
Remove listener component. | |
template<class T > | |
T * | CreateComponent (CreateMode mode=REPLICATED, ComponentId id=0) |
Template version of creating a component. | |
template<class T > | |
T * | GetOrCreateComponent (CreateMode mode=REPLICATED, ComponentId id=0) |
Template version of getting or creating a component. | |
template<class T > | |
void | RemoveComponent () |
Template version of removing a component. | |
template<class T > | |
void | RemoveComponents () |
Template version of removing all components of specific type. | |
NodeId | GetID () const |
Return ID. | |
bool | IsReplicated () const |
Return whether the node is replicated or local to a scene. | |
const String & | GetName () const |
Return name. | |
StringHash | GetNameHash () const |
Return name hash. | |
const StringVector & | GetTags () const |
Return all tags. | |
bool | HasTag (const String &tag) const |
Return whether has a specific tag. | |
Node * | GetParent () const |
Return parent scene node. | |
Scene * | GetScene () const |
Return scene. | |
bool | IsChildOf (Node *node) const |
Return whether is a direct or indirect child of specified node. | |
bool | IsEnabled () const |
Return whether is enabled. Disables nodes effectively disable all their components. | |
bool | IsEnabledSelf () const |
Return the node's last own enabled state. May be different than the value returned by IsEnabled when SetDeepEnabled has been used. | |
Connection * | GetOwner () const |
Return owner connection in networking. | |
const Vector3 & | GetPosition () const |
Return position in parent space. | |
Vector2 | GetPosition2D () const |
Return position in parent space (for Urho2D). | |
const Quaternion & | GetRotation () const |
Return rotation in parent space. | |
float | GetRotation2D () const |
Return rotation in parent space (for Urho2D). | |
Vector3 | GetDirection () const |
Return forward direction in parent space. Positive Z axis equals identity rotation. | |
Vector3 | GetUp () const |
Return up direction in parent space. Positive Y axis equals identity rotation. | |
Vector3 | GetRight () const |
Return right direction in parent space. Positive X axis equals identity rotation. | |
const Vector3 & | GetScale () const |
Return scale in parent space. | |
Vector2 | GetScale2D () const |
Return scale in parent space (for Urho2D). | |
Matrix3x4 | GetTransform () const |
Return parent space transform matrix. | |
Vector3 | GetWorldPosition () const |
Return position in world space. | |
Vector2 | GetWorldPosition2D () const |
Return position in world space (for Urho2D). | |
Quaternion | GetWorldRotation () const |
Return rotation in world space. | |
float | GetWorldRotation2D () const |
Return rotation in world space (for Urho2D). | |
Vector3 | GetWorldDirection () const |
Return direction in world space. | |
Vector3 | GetWorldUp () const |
Return node's up vector in world space. | |
Vector3 | GetWorldRight () const |
Return node's right vector in world space. | |
Vector3 | GetWorldScale () const |
Return scale in world space. | |
Vector3 | GetSignedWorldScale () const |
Return signed scale in world space. Utilized for Urho2D physics. | |
Vector2 | GetWorldScale2D () const |
Return scale in world space (for Urho2D). | |
const Matrix3x4 & | GetWorldTransform () const |
Return world space transform matrix. | |
Vector3 | LocalToWorld (const Vector3 &position) const |
Convert a local space position to world space. | |
Vector3 | LocalToWorld (const Vector4 &vector) const |
Convert a local space position or rotation to world space. | |
Vector2 | LocalToWorld2D (const Vector2 &vector) const |
Convert a local space position or rotation to world space (for Urho2D). | |
Vector3 | WorldToLocal (const Vector3 &position) const |
Convert a world space position to local space. | |
Vector3 | WorldToLocal (const Vector4 &vector) const |
Convert a world space position or rotation to local space. | |
Vector2 | WorldToLocal2D (const Vector2 &vector) const |
Convert a world space position or rotation to local space (for Urho2D). | |
bool | IsDirty () const |
Return whether transform has changed and world transform needs recalculation. | |
i32 | GetNumChildren (bool recursive=false) const |
Return number of child scene nodes. | |
const Vector< SharedPtr< Node > > & | GetChildren () const |
Return immediate child scene nodes. | |
void | GetChildren (Vector< Node * > &dest, bool recursive=false) const |
Return child scene nodes, optionally recursive. | |
Vector< Node * > | GetChildren (bool recursive) const |
Return child scene nodes, optionally recursive. | |
void | GetChildrenWithComponent (Vector< Node * > &dest, StringHash type, bool recursive=false) const |
Return child scene nodes with a specific component. | |
Vector< Node * > | GetChildrenWithComponent (StringHash type, bool recursive=false) const |
Return child scene nodes with a specific component. | |
void | GetChildrenWithTag (Vector< Node * > &dest, const String &tag, bool recursive=false) const |
Return child scene nodes with a specific tag. | |
Vector< Node * > | GetChildrenWithTag (const String &tag, bool recursive=false) const |
Return child scene nodes with a specific tag. | |
Node * | GetChild (i32 index) const |
Return child scene node by index. | |
Node * | GetChild (const String &name, bool recursive=false) const |
Return child scene node by name. | |
Node * | GetChild (const char *name, bool recursive=false) const |
Return child scene node by name. | |
Node * | GetChild (StringHash nameHash, bool recursive=false) const |
Return child scene node by name hash. | |
i32 | GetNumComponents () const |
Return number of components. | |
i32 | GetNumNetworkComponents () const |
Return number of non-local components. | |
const Vector< SharedPtr< Component > > & | GetComponents () const |
Return all components. | |
void | GetComponents (Vector< Component * > &dest, StringHash type, bool recursive=false) const |
Return all components of type. Optionally recursive. | |
Component * | GetComponent (StringHash type, bool recursive=false) const |
Return component by type. If there are several, returns the first. | |
Component * | GetParentComponent (StringHash type, bool fullTraversal=false) const |
Return component in parent node. If there are several, returns the first. May optional traverse up to the root node. | |
bool | HasComponent (StringHash type) const |
Return whether has a specific component. | |
const Vector< WeakPtr< Component > > | GetListeners () const |
Return listener components. | |
const Variant & | GetVar (StringHash key) const |
Return a user variable. | |
const VariantMap & | GetVars () const |
Return all user variables. | |
template<class T > | |
T * | GetDerivedComponent (bool recursive=false) const |
Return first component derived from class. | |
template<class T > | |
T * | GetParentDerivedComponent (bool fullTraversal=false) const |
Return first component derived from class in the parent node, or if fully traversing then the first node up the tree with one. | |
template<class T > | |
void | GetDerivedComponents (Vector< T * > &dest, bool recursive=false, bool clearVector=true) const |
Return components derived from class. | |
template<class T > | |
void | GetChildrenWithComponent (Vector< Node * > &dest, bool recursive=false) const |
Template version of returning child nodes with a specific component. | |
template<class T > | |
T * | GetComponent (bool recursive=false) const |
Template version of returning a component by type. | |
template<class T > | |
T * | GetParentComponent (bool fullTraversal=false) const |
Template version of returning a parent's component by type. | |
template<class T > | |
void | GetComponents (Vector< T * > &dest, bool recursive=false) const |
Template version of returning all components of type. | |
template<class T > | |
bool | HasComponent () const |
Template version of checking whether has a specific component. | |
void | SetID (NodeId id) |
Set ID. Called by Scene. | |
void | SetScene (Scene *scene) |
Set scene. Called by Scene. | |
void | ResetScene () |
Reset scene, ID and owner. Called by Scene. | |
void | SetNetPositionAttr (const Vector3 &value) |
Set network position attribute. | |
void | SetNetRotationAttr (const Vector< byte > &value) |
Set network rotation attribute. | |
void | SetNetParentAttr (const Vector< byte > &value) |
Set network parent attribute. | |
const Vector3 & | GetNetPositionAttr () const |
Return network position attribute. | |
const Vector< byte > & | GetNetRotationAttr () const |
Return network rotation attribute. | |
const Vector< byte > & | GetNetParentAttr () const |
Return network parent attribute. | |
bool | Load (Deserializer &source, SceneResolver &resolver, bool loadChildren=true, bool rewriteIDs=false, CreateMode mode=REPLICATED) |
Load components and optionally load child nodes. | |
bool | LoadXML (const XMLElement &source, SceneResolver &resolver, bool loadChildren=true, bool rewriteIDs=false, CreateMode mode=REPLICATED) |
Load components from XML data and optionally load child nodes. | |
bool | LoadJSON (const JSONValue &source, SceneResolver &resolver, bool loadChildren=true, bool rewriteIDs=false, CreateMode mode=REPLICATED) |
Load components from XML data and optionally load child nodes. | |
const Vector< Node * > & | GetDependencyNodes () const |
Return the depended on nodes to order network updates. | |
void | PrepareNetworkUpdate () |
Prepare network update by comparing attributes and marking replication states dirty as necessary. | |
void | CleanupConnection (Connection *connection) |
Clean up all references to a network connection that is about to be removed. | |
void | MarkReplicationDirty () |
Mark node dirty in scene replication states. | |
Node * | CreateChild (NodeId id, CreateMode mode, bool temporary=false) |
Create a child node with specific ID. | |
void | AddComponent (Component *component, ComponentId id, CreateMode mode) |
Add a pre-created component. Using this function from application code is discouraged, as component operation without an owner node may not be well-defined in all cases. Prefer CreateComponent() instead. | |
i32 | GetNumPersistentChildren () const |
Calculate number of non-temporary child nodes. | |
i32 | GetNumPersistentComponents () const |
Calculate number of non-temporary components. | |
void | SetPositionSilent (const Vector3 &position) |
Set position in parent space silently without marking the node & child nodes dirty. Used by animation code. | |
void | SetRotationSilent (const Quaternion &rotation) |
Set position in parent space silently without marking the node & child nodes dirty. Used by animation code. | |
void | SetScaleSilent (const Vector3 &scale) |
Set scale in parent space silently without marking the node & child nodes dirty. Used by animation code. | |
void | SetTransformSilent (const Vector3 &position, const Quaternion &rotation, const Vector3 &scale) |
Set local transform silently without marking the node & child nodes dirty. Used by animation code. | |
Public Member Functions inherited from Urho3D::Animatable | |
Animatable (Context *context) | |
Construct. | |
~Animatable () override | |
Destruct. | |
bool | LoadXML (const XMLElement &source) override |
Load from XML data. Return true if successful. More... | |
bool | SaveXML (XMLElement &dest) const override |
Save as XML data. Return true if successful. More... | |
bool | LoadJSON (const JSONValue &source) override |
Load from JSON data. Return true if successful. More... | |
bool | SaveJSON (JSONValue &dest) const override |
Save as JSON data. Return true if successful. More... | |
void | SetAnimationEnabled (bool enable) |
Set automatic update of animation, default true. | |
void | SetAnimationTime (float time) |
Set time position of all attribute animations or an object animation manually. Automatic update should be disabled in this case. | |
void | SetObjectAnimation (ObjectAnimation *objectAnimation) |
Set object animation. | |
void | SetAttributeAnimation (const String &name, ValueAnimation *attributeAnimation, WrapMode wrapMode=WM_LOOP, float speed=1.0f) |
Set attribute animation. | |
void | SetAttributeAnimationWrapMode (const String &name, WrapMode wrapMode) |
Set attribute animation wrap mode. | |
void | SetAttributeAnimationSpeed (const String &name, float speed) |
Set attribute animation speed. | |
void | SetAttributeAnimationTime (const String &name, float time) |
Set attribute animation time position manually. Automatic update should be disabled in this case. | |
void | RemoveObjectAnimation () |
Remove object animation. Same as calling SetObjectAnimation with a null pointer. | |
void | RemoveAttributeAnimation (const String &name) |
Remove attribute animation. Same as calling SetAttributeAnimation with a null pointer. | |
bool | GetAnimationEnabled () const |
Return animation enabled. | |
ObjectAnimation * | GetObjectAnimation () const |
Return object animation. | |
ValueAnimation * | GetAttributeAnimation (const String &name) const |
Return attribute animation. | |
WrapMode | GetAttributeAnimationWrapMode (const String &name) const |
Return attribute animation wrap mode. | |
float | GetAttributeAnimationSpeed (const String &name) const |
Return attribute animation speed. | |
float | GetAttributeAnimationTime (const String &name) const |
Return attribute animation time position. | |
void | SetObjectAnimationAttr (const ResourceRef &value) |
Set object animation attribute. | |
ResourceRef | GetObjectAnimationAttr () const |
Return object animation attribute. | |
Public Member Functions inherited from Urho3D::Serializable | |
Serializable (Context *context) | |
Construct. | |
~Serializable () override | |
Destruct. | |
virtual void | OnSetAttribute (const AttributeInfo &attr, const Variant &src) |
Handle attribute write access. Default implementation writes to the variable at offset, or invokes the set accessor. | |
virtual void | OnGetAttribute (const AttributeInfo &attr, Variant &dest) const |
Handle attribute read access. Default implementation reads the variable at offset, or invokes the get accessor. | |
virtual const Vector< AttributeInfo > * | GetAttributes () const |
Return attribute descriptions, or null if none defined. More... | |
virtual const Vector< AttributeInfo > * | GetNetworkAttributes () const |
Return network replication attribute descriptions, or null if none defined. | |
virtual bool | Load (Deserializer &source) |
Load from binary data. Return true if successful. More... | |
virtual bool | Save (Serializer &dest) const |
Save as binary data. Return true if successful. More... | |
virtual bool | LoadXML (const XMLElement &source) |
Load from XML data. Return true if successful. More... | |
virtual bool | SaveXML (XMLElement &dest) const |
Save as XML data. Return true if successful. More... | |
virtual bool | LoadJSON (const JSONValue &source) |
Load from JSON data. Return true if successful. More... | |
virtual bool | SaveJSON (JSONValue &dest) const |
Save as JSON data. Return true if successful. More... | |
virtual void | ApplyAttributes () |
Apply attribute changes that can not be applied immediately. Called after scene load or a network update. More... | |
virtual bool | SaveDefaultAttributes () const |
Return whether should save default-valued attributes into XML. Default false. More... | |
virtual void | MarkNetworkUpdate () |
Mark for attribute check on the next network update. More... | |
bool | SetAttribute (unsigned index, const Variant &value) |
Set attribute by index. Return true if successfully set. | |
bool | SetAttribute (const String &name, const Variant &value) |
Set attribute by name. Return true if successfully set. | |
void | SetInstanceDefault (bool enable) |
Set instance-level default flag. | |
void | ResetToDefault () |
Reset all editable attributes to their default values. | |
void | RemoveInstanceDefault () |
Remove instance's default values if they are set previously. | |
void | SetTemporary (bool enable) |
Set temporary flag. Temporary objects will not be saved. | |
void | SetInterceptNetworkUpdate (const String &attributeName, bool enable) |
Enable interception of an attribute from network updates. Intercepted attributes are sent as events instead of applying directly. This can be used to implement client side prediction. | |
void | AllocateNetworkState () |
Allocate network attribute state. | |
void | WriteInitialDeltaUpdate (Serializer &dest, unsigned char timeStamp) |
Write initial delta network update. | |
void | WriteDeltaUpdate (Serializer &dest, const DirtyBits &attributeBits, unsigned char timeStamp) |
Write a delta network update according to dirty attribute bits. | |
void | WriteLatestDataUpdate (Serializer &dest, unsigned char timeStamp) |
Write a latest data network update. | |
bool | ReadDeltaUpdate (Deserializer &source) |
Read and apply a network delta update. Return true if attributes were changed. | |
bool | ReadLatestDataUpdate (Deserializer &source) |
Read and apply a network latest data update. Return true if attributes were changed. | |
Variant | GetAttribute (unsigned index) const |
Return attribute value by index. Return empty if illegal index. | |
Variant | GetAttribute (const String &name) const |
Return attribute value by name. Return empty if not found. | |
Variant | GetAttributeDefault (unsigned index) const |
Return attribute default value by index. Return empty if illegal index. | |
Variant | GetAttributeDefault (const String &name) const |
Return attribute default value by name. Return empty if not found. | |
unsigned | GetNumAttributes () const |
Return number of attributes. | |
unsigned | GetNumNetworkAttributes () const |
Return number of network replication attributes. | |
bool | IsTemporary () const |
Return whether is temporary. | |
bool | GetInterceptNetworkUpdate (const String &attributeName) const |
Return whether an attribute's network updates are being intercepted. | |
NetworkState * | GetNetworkState () const |
Return the network attribute state, if allocated. | |
Public Member Functions inherited from Urho3D::Object | |
Object (Context *context) | |
Construct. | |
~Object () override | |
Destruct. Clean up self from event sender & receiver structures. | |
virtual StringHash | GetType () const =0 |
Return type hash. More... | |
virtual const String & | GetTypeName () const =0 |
Return type name. More... | |
virtual const TypeInfo * | GetTypeInfo () const =0 |
Return type info. | |
virtual void | OnEvent (Object *sender, StringHash eventType, VariantMap &eventData) |
Handle event. | |
bool | IsInstanceOf (StringHash type) const |
Check current instance is type of specified type. | |
bool | IsInstanceOf (const TypeInfo *typeInfo) const |
Check current instance is type of specified type. | |
template<typename T > | |
bool | IsInstanceOf () const |
Check current instance is type of specified class. | |
template<typename T > | |
T * | Cast () |
Cast the object to specified most derived class. | |
template<typename T > | |
const T * | Cast () const |
Cast the object to specified most derived class. | |
void | SubscribeToEvent (StringHash eventType, EventHandler *handler) |
Subscribe to an event that can be sent by any sender. | |
void | SubscribeToEvent (Object *sender, StringHash eventType, EventHandler *handler) |
Subscribe to a specific sender's event. | |
void | SubscribeToEvent (StringHash eventType, const std::function< void(StringHash, VariantMap &)> &function, void *userData=nullptr) |
Subscribe to an event that can be sent by any sender. | |
void | SubscribeToEvent (Object *sender, StringHash eventType, const std::function< void(StringHash, VariantMap &)> &function, void *userData=nullptr) |
Subscribe to a specific sender's event. | |
void | UnsubscribeFromEvent (StringHash eventType) |
Unsubscribe from an event. | |
void | UnsubscribeFromEvent (Object *sender, StringHash eventType) |
Unsubscribe from a specific sender's event. | |
void | UnsubscribeFromEvents (Object *sender) |
Unsubscribe from a specific sender's events. | |
void | UnsubscribeFromAllEvents () |
Unsubscribe from all events. | |
void | UnsubscribeFromAllEventsExcept (const Vector< StringHash > &exceptions, bool onlyUserData) |
Unsubscribe from all events except those listed, and optionally only those with userdata (script registered events). | |
void | SendEvent (StringHash eventType) |
Send event to all subscribers. | |
void | SendEvent (StringHash eventType, VariantMap &eventData) |
Send event with parameters to all subscribers. | |
VariantMap & | GetEventDataMap () const |
Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps. | |
template<typename... Args> | |
void | SendEvent (StringHash eventType, Args... args) |
Send event with variadic parameter pairs to all subscribers. The parameter pairs is a list of paramID and paramValue separated by comma, one pair after another. | |
Context * | GetContext () const |
Return execution context. | |
const Variant & | GetGlobalVar (StringHash key) const |
Return global variable based on key. | |
const VariantMap & | GetGlobalVars () const |
Return all global variables. | |
void | SetGlobalVar (StringHash key, const Variant &value) |
Set global variable with the respective key and value. | |
Object * | GetSubsystem (StringHash type) const |
Return subsystem by type. | |
Object * | GetEventSender () const |
Return active event sender. Null outside event handling. | |
EventHandler * | GetEventHandler () const |
Return active event handler. Null outside event handling. | |
bool | HasSubscribedToEvent (StringHash eventType) const |
Return whether has subscribed to an event without specific sender. | |
bool | HasSubscribedToEvent (Object *sender, StringHash eventType) const |
Return whether has subscribed to a specific sender's event. | |
bool | HasEventHandlers () const |
Return whether has subscribed to any event. | |
template<class T > | |
T * | GetSubsystem () const |
Template version of returning a subsystem. | |
const String & | GetCategory () const |
Return object category. Categories are (optionally) registered along with the object factory. Return an empty string if the object category is not registered. | |
void | SetBlockEvents (bool block) |
Block object from sending and receiving events. | |
bool | GetBlockEvents () const |
Return sending and receiving events blocking status. | |
Public Member Functions inherited from Urho3D::RefCounted | |
RefCounted () | |
Construct. Allocate the reference count structure and set an initial self weak reference. | |
virtual | ~RefCounted () |
Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist. | |
RefCounted (const RefCounted &rhs)=delete | |
Prevent copy construction. | |
RefCounted & | operator= (const RefCounted &rhs)=delete |
Prevent assignment. | |
void | AddRef () |
Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting. | |
void | ReleaseRef () |
Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting. | |
int | Refs () const |
Return reference count. | |
int | WeakRefs () const |
Return weak reference count. | |
RefCount * | RefCountPtr () |
Return pointer to the reference count structure. | |
Static Public Member Functions | |
static void | RegisterObject (Context *context) |
Register object factory. | |
Static Public Member Functions inherited from Urho3D::Animatable | |
static void | RegisterObject (Context *context) |
Register object factory. | |
Static Public Member Functions inherited from Urho3D::Object | |
static const TypeInfo * | GetTypeInfoStatic () |
Return type info static. | |
Protected Member Functions | |
void | OnAttributeAnimationAdded () override |
Handle attribute animation added. More... | |
void | OnAttributeAnimationRemoved () override |
Handle attribute animation removed. More... | |
Animatable * | FindAttributeAnimationTarget (const String &name, String &outName) override |
Find target of an attribute animation from object hierarchy by name. More... | |
Protected Member Functions inherited from Urho3D::Animatable | |
virtual void | OnAttributeAnimationAdded ()=0 |
Handle attribute animation added. More... | |
virtual void | OnAttributeAnimationRemoved ()=0 |
Handle attribute animation removed. More... | |
virtual Animatable * | FindAttributeAnimationTarget (const String &name, String &outName) |
Find target of an attribute animation from object hierarchy by name. More... | |
void | SetObjectAttributeAnimation (const String &name, ValueAnimation *attributeAnimation, WrapMode wrapMode, float speed) |
Set object attribute animation internal. | |
void | OnObjectAnimationAdded (ObjectAnimation *objectAnimation) |
Handle object animation added. | |
void | OnObjectAnimationRemoved (ObjectAnimation *objectAnimation) |
Handle object animation removed. | |
void | UpdateAttributeAnimations (float timeStep) |
Update attribute animations. | |
bool | IsAnimatedNetworkAttribute (const AttributeInfo &attrInfo) const |
Is animated network attribute. | |
AttributeAnimationInfo * | GetAttributeAnimationInfo (const String &name) const |
Return attribute animation info. | |
void | HandleAttributeAnimationAdded (StringHash eventType, VariantMap &eventData) |
Handle attribute animation added. | |
void | HandleAttributeAnimationRemoved (StringHash eventType, VariantMap &eventData) |
Handle attribute animation removed. | |
Protected Attributes | |
bool | networkUpdate_ |
Network update queued flag. | |
VariantMap | vars_ |
User variables. | |
Protected Attributes inherited from Urho3D::Animatable | |
bool | animationEnabled_ |
Animation enabled. | |
SharedPtr< ObjectAnimation > | objectAnimation_ |
Animation. | |
HashSet< const AttributeInfo * > | animatedNetworkAttributes_ |
Animated network attribute set. | |
HashMap< String, SharedPtr< AttributeAnimationInfo > > | attributeAnimationInfos_ |
Attribute animation infos. | |
Protected Attributes inherited from Urho3D::Serializable | |
std::unique_ptr< NetworkState > | networkState_ |
Network attribute state. | |
Protected Attributes inherited from Urho3D::Object | |
Context * | context_ |
Execution context. | |
Private Member Functions | |
URHO3D_OBJECT (Node, Animatable) | |
void | SetEnabled (bool enable, bool recursive, bool storeSelf) |
Set enabled/disabled state with optional recursion. Optionally affect the remembered enable state. | |
Component * | SafeCreateComponent (const String &typeName, StringHash type, CreateMode mode, ComponentId id) |
Create component, allowing UnknownComponent if actual type is not supported. Leave typeName empty if not known. | |
void | UpdateWorldTransform () const |
Recalculate the world transform. | |
void | RemoveChild (Vector< SharedPtr< Node > >::Iterator i) |
Remove child node by iterator. | |
void | GetChildrenRecursive (Vector< Node * > &dest) const |
Return child nodes recursively. | |
void | GetChildrenWithComponentRecursive (Vector< Node * > &dest, StringHash type) const |
Return child nodes with a specific component recursively. | |
void | GetChildrenWithTagRecursive (Vector< Node * > &dest, const String &tag) const |
Return child nodes with a specific tag recursively. | |
void | GetComponentsRecursive (Vector< Component * > &dest, StringHash type) const |
Return specific components recursively. | |
Node * | CloneRecursive (Node *parent, SceneResolver &resolver, CreateMode mode) |
Clone node recursively. | |
void | RemoveComponent (Vector< SharedPtr< Component > >::Iterator i) |
Remove a component from this node with the specified iterator. | |
void | HandleAttributeAnimationUpdate (StringHash eventType, VariantMap &eventData) |
Handle attribute animation update event. | |
Private Attributes | |
Matrix3x4 | worldTransform_ |
World-space transform matrix. | |
bool | dirty_ |
World transform needs update flag. | |
bool | enabled_ |
Enabled flag. | |
bool | enabledPrev_ |
Last SetEnabled flag before any SetDeepEnabled. | |
Node * | parent_ |
Parent scene node. | |
Scene * | scene_ |
Scene (root node). | |
NodeId | id_ |
Unique ID within the scene. | |
Vector3 | position_ |
Position. | |
Quaternion | rotation_ |
Rotation. | |
Vector3 | scale_ |
Scale. | |
Quaternion | worldRotation_ |
World-space rotation. | |
Vector< SharedPtr< Component > > | components_ |
Components. | |
Vector< SharedPtr< Node > > | children_ |
Child scene nodes. | |
Vector< WeakPtr< Component > > | listeners_ |
Node listeners. | |
std::unique_ptr< NodeImpl > | impl_ |
Pointer to implementation. | |
Friends | |
class | Connection |
Scene node that may contain components and child nodes.
|
virtual |
Add a replication state that is tracking this node.
Reimplemented in Urho3D::Scene.
|
overridevirtual |
Apply attribute changes that can not be applied immediately recursively to child nodes and components.
Reimplemented from Urho3D::Serializable.
|
overrideprotectedvirtual |
Find target of an attribute animation from object hierarchy by name.
Reimplemented from Urho3D::Animatable.
|
overridevirtual |
Load from binary data. Return true if successful.
Reimplemented from Urho3D::Serializable.
Reimplemented in Urho3D::Scene.
|
overridevirtual |
Load from JSON data. Return true if successful.
Reimplemented from Urho3D::Animatable.
Reimplemented in Urho3D::Scene.
|
overridevirtual |
Load from XML data. Return true if successful.
Reimplemented from Urho3D::Animatable.
Reimplemented in Urho3D::Scene.
|
overridevirtual |
Mark for attribute check on the next network update.
Reimplemented from Urho3D::Serializable.
Reimplemented in Urho3D::Scene.
|
overrideprotectedvirtual |
Handle attribute animation added.
Implements Urho3D::Animatable.
|
overrideprotectedvirtual |
Handle attribute animation removed.
Implements Urho3D::Animatable.
|
overridevirtual |
Save as binary data. Return true if successful.
Reimplemented from Urho3D::Serializable.
Reimplemented in Urho3D::Scene.
|
inlineoverridevirtual |
Return whether should save default-valued attributes into XML. Always save node transforms for readability, even if identity.
Reimplemented from Urho3D::Serializable.
|
overridevirtual |
Save as JSON data. Return true if successful.
Reimplemented from Urho3D::Animatable.
Reimplemented in Urho3D::Scene.
|
overridevirtual |
Save as XML data. Return true if successful.
Reimplemented from Urho3D::Animatable.
Reimplemented in Urho3D::Scene.