Root scene node, represents the whole scene. More...

#include <Scene.h>

Inheritance diagram for Urho3D::Scene:
[legend]
Collaboration diagram for Urho3D::Scene:
[legend]

Public Member Functions

 Scene (Context *context)
 Construct.
 
virtual ~Scene ()
 Destruct.
 
virtual bool Load (Deserializer &source, bool setInstanceDefault=false)
 Load from binary data. Removes all existing child nodes and components first. Return true if successful.
 
virtual bool Save (Serializer &dest) const
 Save to binary data. Return true if successful.
 
virtual bool LoadXML (const XMLElement &source, bool setInstanceDefault=false)
 Load from XML data. Removes all existing child nodes and components first. Return true if successful.
 
virtual void MarkNetworkUpdate ()
 Mark for attribute check on the next network update.
 
virtual void AddReplicationState (NodeReplicationState *state)
 Add a replication state that is tracking this scene.
 
bool LoadXML (Deserializer &source)
 Load from an XML file. Return true if successful.
 
bool SaveXML (Serializer &dest, const String &indentation="\t") const
 Save to an XML file. Return true if successful.
 
bool LoadAsync (File *file, LoadMode mode=LOAD_SCENE_AND_RESOURCES)
 Load from a binary file asynchronously. Return true if started successfully. The LOAD_RESOURCES_ONLY mode can also be used to preload resources from object prefab files.
 
bool LoadAsyncXML (File *file, LoadMode mode=LOAD_SCENE_AND_RESOURCES)
 Load from an XML file asynchronously. Return true if started successfully. The LOAD_RESOURCES_ONLY mode can also be used to preload resources from object prefab files.
 
void StopAsyncLoading ()
 Stop asynchronous loading.
 
NodeInstantiate (Deserializer &source, const Vector3 &position, const Quaternion &rotation, CreateMode mode=REPLICATED)
 Instantiate scene content from binary data. Return root node if successful.
 
NodeInstantiateXML (const XMLElement &source, const Vector3 &position, const Quaternion &rotation, CreateMode mode=REPLICATED)
 Instantiate scene content from XML data. Return root node if successful.
 
NodeInstantiateXML (Deserializer &source, const Vector3 &position, const Quaternion &rotation, CreateMode mode=REPLICATED)
 Instantiate scene content from XML data. Return root node if successful.
 
void Clear (bool clearReplicated=true, bool clearLocal=true)
 Clear scene completely of either replicated, local or all nodes and components.
 
void SetUpdateEnabled (bool enable)
 Enable or disable scene update.
 
void SetTimeScale (float scale)
 Set update time scale. 1.0 = real time (default.)
 
void SetElapsedTime (float time)
 Set elapsed time in seconds. This can be used to prevent inaccuracy in the timer if the scene runs for a long time.
 
void SetSmoothingConstant (float constant)
 Set network client motion smoothing constant.
 
void SetSnapThreshold (float threshold)
 Set network client motion smoothing snap threshold.
 
void SetAsyncLoadingMs (int ms)
 Set maximum milliseconds per frame to spend on async scene loading.
 
void AddRequiredPackageFile (PackageFile *package)
 Add a required package file for networking. To be called on the server.
 
void ClearRequiredPackageFiles ()
 Clear required package files.
 
void RegisterVar (const String &name)
 Register a node user variable hash reverse mapping (for editing.)
 
void UnregisterVar (const String &name)
 Unregister a node user variable hash reverse mapping.
 
void UnregisterAllVars ()
 Clear all registered node user variable hash reverse mappings.
 
NodeGetNode (unsigned id) const
 Return node from the whole scene by ID, or null if not found.
 
ComponentGetComponent (unsigned id) const
 Return component from the whole scene by ID, or null if not found.
 
bool IsUpdateEnabled () const
 Return whether updates are enabled.
 
bool IsAsyncLoading () const
 Return whether an asynchronous loading operation is in progress.
 
float GetAsyncProgress () const
 Return asynchronous loading progress between 0.0 and 1.0, or 1.0 if not in progress.
 
LoadMode GetAsyncLoadMode () const
 Return the load mode of the current asynchronous loading operation.
 
const StringGetFileName () const
 Return source file name.
 
unsigned GetChecksum () const
 Return source file checksum.
 
float GetTimeScale () const
 Return update time scale.
 
float GetElapsedTime () const
 Return elapsed time in seconds.
 
float GetSmoothingConstant () const
 Return motion smoothing constant.
 
float GetSnapThreshold () const
 Return motion smoothing snap threshold.
 
int GetAsyncLoadingMs () const
 Return maximum milliseconds per frame to spend on async loading.
 
const Vector< SharedPtr
< PackageFile > > & 
GetRequiredPackageFiles () const
 Return required package files.
 
const StringGetVarName (StringHash hash) const
 Return a node user variable name, or empty if not registered.
 
void Update (float timeStep)
 Update scene. Called by HandleUpdate.
 
void BeginThreadedUpdate ()
 Begin a threaded update. During threaded update components can choose to delay dirty processing.
 
void EndThreadedUpdate ()
 End a threaded update. Notify components that marked themselves for delayed dirty processing.
 
void DelayedMarkedDirty (Component *component)
 Add a component to the delayed dirty notify queue. Is thread-safe.
 
bool IsThreadedUpdate () const
 Return threaded update flag.
 
unsigned GetFreeNodeID (CreateMode mode)
 Get free node ID, either non-local or local.
 
unsigned GetFreeComponentID (CreateMode mode)
 Get free component ID, either non-local or local.
 
void NodeAdded (Node *node)
 Node added. Assign scene pointer and add to ID map.
 
void NodeRemoved (Node *node)
 Node removed. Remove from ID map.
 
void ComponentAdded (Component *component)
 Component added. Add to ID map.
 
void ComponentRemoved (Component *component)
 Component removed. Remove from ID map.
 
void SetVarNamesAttr (const String &value)
 Set node user variable reverse mappings.
 
String GetVarNamesAttr () const
 Return node user variable reverse mappings.
 
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 MarkNetworkUpdate (Node *node)
 Mark a node for attribute check on the next network update.
 
void MarkNetworkUpdate (Component *component)
 Mark a comoponent for attribute check on the next network update.
 
void MarkReplicationDirty (Node *node)
 Mark a node dirty in scene replication states. The node does not need to have own replication state yet.
 
- Public Member Functions inherited from Urho3D::Node
 Node (Context *context)
 Construct.
 
virtual ~Node ()
 Destruct. Any child nodes are detached.
 
virtual bool SaveXML (XMLElement &dest) const
 Save as XML data. Return true if successful.
 
virtual void ApplyAttributes ()
 Apply attribute changes that can not be applied immediately recursively to child nodes and components.
 
virtual bool SaveDefaultAttributes () const
 Return whether should save default-valued attributes into XML. Always save node transforms for readability, even if identity.
 
bool SaveXML (Serializer &dest, const String &indentation="\t") const
 Save to an XML file. Return true if successful.
 
void SetName (const String &name)
 Set name of the scene node. Names are not required to be unique.
 
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 both position, rotation and uniform scale in parent space as an atomic operation.
 
void SetTransform (const Vector3 &position, const Quaternion &rotation, const Vector3 &scale)
 Set both position, rotation and scale 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 both 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 both 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 both position, rotation and uniform scale in world space as an atomic operation.
 
void SetWorldTransform (const Vector3 &position, const Quaternion &rotation, const Vector3 &scale)
 Set both position, rotation and scale in world space as an atomic opration.
 
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 both 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 both position, rotation and scale in world space as an atomic opration (for Urho2D).
 
void Translate (const Vector3 &delta, TransformSpace space=TS_LOCAL)
 Move the scene node in the chosen transform space.
 
void Translate2D (const Vector2 &delta, TransformSpace space=TS_LOCAL)
 Move the scene node in the chosen transform space (for Urho2D).
 
void Rotate (const Quaternion &delta, TransformSpace space=TS_LOCAL)
 Rotate the scene node in the chosen transform space.
 
void Rotate2D (float delta, TransformSpace space=TS_LOCAL)
 Rotate the scene node in the chosen transform space (for Urho2D).
 
void RotateAround (const Vector3 &point, const Quaternion &delta, TransformSpace space=TS_LOCAL)
 Rotate around a point in the chosen transform space.
 
void RotateAround2D (const Vector2 &point, float delta, TransformSpace space=TS_LOCAL)
 Rotate around a point in the chosen transform space (for Urho2D).
 
void Pitch (float angle, TransformSpace space=TS_LOCAL)
 Rotate around the X axis.
 
void Yaw (float angle, TransformSpace space=TS_LOCAL)
 Rotate around the Y axis.
 
void Roll (float angle, TransformSpace space=TS_LOCAL)
 Rotate around the Z axis.
 
bool LookAt (const Vector3 &target, const Vector3 &up=Vector3::UP, TransformSpace space=TS_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.
 
NodeCreateChild (const String &name=String::EMPTY, CreateMode mode=REPLICATED, unsigned id=0)
 Create a child scene node (with specified ID if provided).
 
void AddChild (Node *node, unsigned index=M_MAX_UNSIGNED)
 Add a child scene node at a specific index. If index is not explicitly specified or is greater than current children size, 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.
 
ComponentCreateComponent (StringHash type, CreateMode mode=REPLICATED, unsigned id=0)
 Create a component to this node (with specified ID if provided).
 
ComponentGetOrCreateComponent (StringHash type, CreateMode mode=REPLICATED, unsigned id=0)
 Create a component to this node if it does not exist already.
 
ComponentCloneComponent (Component *component, unsigned id=0)
 Clone a component from another node using its create mode. Return the clone if successful or null on failure.
 
ComponentCloneComponent (Component *component, CreateMode mode, unsigned 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 RemoveAllComponents ()
 Remove all components from this node.
 
void RemoveComponents (bool removeReplicated, bool removeLocal)
 Remove components that match criteria.
 
NodeClone (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)
 Set 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, unsigned id=0)
 Template version of creating a component.
 
template<class T >
T * GetOrCreateComponent (CreateMode mode=REPLICATED, unsigned id=0)
 Template version of getting or creating a component.
 
template<class T >
void RemoveComponent ()
 Template version of removing a component.
 
unsigned GetID () const
 Return ID.
 
const StringGetName () const
 Return name.
 
StringHash GetNameHash () const
 Return name hash.
 
NodeGetParent () const
 Return parent scene node.
 
SceneGetScene () const
 Return scene.
 
bool IsEnabled () const
 Return whether is enabled. Disables nodes effectively disable all their components.
 
bool IsEnabledSelf () const
 Returns the node's last own enabled state. May be different than the value returned by IsEnabled when SetDeepEnabled has been used.
 
ConnectionGetOwner () const
 Return owner connection in networking.
 
const Vector3GetPosition () const
 Return position in parent space.
 
Vector2 GetPosition2D () const
 Return position in parent space (for Urho2D).
 
const QuaternionGetRotation () 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 Vector3GetScale () 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.
 
Vector2 GetWorldScale2D () const
 Return scale in world space (for Urho2D).
 
const Matrix3x4GetWorldTransform () 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.
 
unsigned GetNumChildren (bool recursive=false) const
 Return number of child scene nodes.
 
const Vector< SharedPtr< Node > > & GetChildren () const
 Return immediate child scene nodes.
 
void GetChildren (PODVector< Node * > &dest, bool recursive=false) const
 Return child scene nodes, optionally recursive.
 
void GetChildrenWithComponent (PODVector< Node * > &dest, StringHash type, bool recursive=false) const
 Return child scene nodes with a specific component.
 
NodeGetChild (unsigned index) const
 Return child scene node by index.
 
NodeGetChild (const String &name, bool recursive=false) const
 Return child scene node by name.
 
NodeGetChild (const char *name, bool recursive=false) const
 Return child scene node by name.
 
NodeGetChild (StringHash nameHash, bool recursive=false) const
 Return child scene node by name hash.
 
unsigned GetNumComponents () const
 Return number of components.
 
unsigned GetNumNetworkComponents () const
 Return number of non-local components.
 
const Vector< SharedPtr
< Component > > & 
GetComponents () const
 Return all components.
 
void GetComponents (PODVector< Component * > &dest, StringHash type, bool recursive=false) const
 Return all components of type. Optionally recursive.
 
ComponentGetComponent (StringHash type) const
 Return component by type. If there are several, returns the first.
 
bool HasComponent (StringHash type) const
 Return whether has a specific component.
 
const Vector< WeakPtr
< Component > > 
GetListeners () const
 Return listener components.
 
const VariantGetVar (StringHash key) const
 Return a user variable.
 
const VariantMapGetVars () const
 Return all user variables.
 
template<class T >
T * GetDerivedComponent () const
 Return first component derived from class.
 
template<class T >
void GetDerivedComponents (PODVector< T * > &dest) const
 Return components derived from class.
 
template<class T >
void GetChildrenWithComponent (PODVector< Node * > &dest, bool recursive=false) const
 Template version of returning child nodes with a specific component.
 
template<class T >
T * GetComponent () const
 Template version of returning a component by type.
 
template<class T >
void GetComponents (PODVector< 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 (unsigned id)
 Set ID. Called by Scene.
 
void SetScene (Scene *scene)
 Set scene. Called by Scene.
 
void ResetScene ()
 Reset scene. Called by Scene.
 
void SetNetPositionAttr (const Vector3 &value)
 Set network position attribute.
 
void SetNetRotationAttr (const PODVector< unsigned char > &value)
 Set network rotation attribute.
 
void SetNetParentAttr (const PODVector< unsigned char > &value)
 Set network parent attribute.
 
const Vector3GetNetPositionAttr () const
 Return network position attribute.
 
const PODVector< unsigned char > & GetNetRotationAttr () const
 Return network rotation attribute.
 
const PODVector< unsigned char > & 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.
 
const PODVector< 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.
 
NodeCreateChild (unsigned id, CreateMode mode)
 Create a child node with specific ID.
 
void AddComponent (Component *component, unsigned id, CreateMode mode)
 Add a pre-created component.
 
unsigned GetNumPersistentChildren () const
 Calculate number of non-temporary child nodes.
 
unsigned 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.
 
virtual ~Animatable ()
 Destruct.
 
void SetAnimationEnabled (bool enable)
 Set animation enabled.
 
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.
 
bool GetAnimationEnabled () const
 Return animation enabled.
 
ObjectAnimationGetObjectAnimation () const
 Return object animation.
 
ValueAnimationGetAttributeAnimation (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.
 
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.
 
virtual ~Serializable ()
 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.
 
virtual const Vector
< AttributeInfo > * 
GetNetworkAttributes () const
 Return network replication attribute descriptions, or null if none defined.
 
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 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.
 
NetworkStateGetNetworkState () const
 Return the network attribute state, if allocated.
 
- Public Member Functions inherited from Urho3D::Object
 Object (Context *context)
 Construct.
 
virtual ~Object ()
 Destruct. Clean up self from event sender & receiver structures.
 
virtual Urho3D::StringHash GetType () const =0
 Return type hash.
 
virtual Urho3D::StringHash GetBaseType () const =0
 Return base class type hash.
 
virtual const Urho3D::StringGetTypeName () const =0
 Return type name.
 
virtual void OnEvent (Object *sender, StringHash eventType, VariantMap &eventData)
 Handle event.
 
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 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 PODVector< 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. More...
 
VariantMapGetEventDataMap () const
 Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps.
 
ContextGetContext () const
 Return execution context.
 
ObjectGetSubsystem (StringHash type) const
 Return subsystem by type.
 
ObjectGetEventSender () const
 Return active event sender. Null outside event handling.
 
EventHandlerGetEventHandler () 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 StringGetCategory () const
 Return object category. Categories are (optionally) registered along with the object factory. Return an empty string if the object category is not registered.
 
- 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.
 
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.
 
RefCountRefCountPtr ()
 Return pointer to the reference count structure.
 

Static Public Member Functions

static void RegisterObject (Context *context)
 Register object factory. Node must be registered first.
 
- Static Public Member Functions inherited from Urho3D::Node
static void RegisterObject (Context *context)
 Register object factory.
 
- Static Public Member Functions inherited from Urho3D::Animatable
static void RegisterObject (Context *context)
 Register object factory.
 

Private Member Functions

 OBJECT (Scene)
 
void HandleUpdate (StringHash eventType, VariantMap &eventData)
 Handle the logic update event to update the scene, if active.
 
void HandleResourceBackgroundLoaded (StringHash eventType, VariantMap &eventData)
 Handle a background loaded resource completing.
 
void UpdateAsyncLoading ()
 Update asynchronous loading. More...
 
void FinishAsyncLoading ()
 Finish asynchronous loading.
 
void FinishLoading (Deserializer *source)
 Finish loading. Sets the scene filename and checksum.
 
void FinishSaving (Serializer *dest) const
 Finish saving. Sets the scene filename and checksum.
 
void PreloadResources (File *file, bool isSceneFile)
 Preload resources from a binary scene or object prefab file.
 
void PreloadResourcesXML (const XMLElement &element)
 Preload resources from an XML scene or object prefab file.
 

Private Attributes

HashMap< unsigned, Node * > replicatedNodes_
 Replicated scene nodes by ID.
 
HashMap< unsigned, Node * > localNodes_
 Local scene nodes by ID.
 
HashMap< unsigned, Component * > replicatedComponents_
 Replicated components by ID.
 
HashMap< unsigned, Component * > localComponents_
 Local components by ID.
 
AsyncProgress asyncProgress_
 Asynchronous loading progress.
 
SceneResolver resolver_
 Node and component ID resolver for asynchronous loading.
 
String fileName_
 Source file name.
 
Vector< SharedPtr< PackageFile > > requiredPackageFiles_
 Required package files for networking.
 
HashMap< StringHash, StringvarNames_
 Registered node user variable reverse mappings.
 
HashSet< unsigned > networkUpdateNodes_
 Nodes to check for attribute changes on the next network update.
 
HashSet< unsigned > networkUpdateComponents_
 Components to check for attribute changes on the next network update.
 
PODVector< Component * > delayedDirtyComponents_
 Delayed dirty notification queue for components.
 
Mutex sceneMutex_
 Mutex for the delayed dirty notification queue.
 
VariantMap smoothingData_
 Preallocated event data map for smoothing update events.
 
unsigned replicatedNodeID_
 Next free non-local node ID.
 
unsigned replicatedComponentID_
 Next free non-local component ID.
 
unsigned localNodeID_
 Next free local node ID.
 
unsigned localComponentID_
 Next free local component ID.
 
unsigned checksum_
 Scene source file checksum.
 
int asyncLoadingMs_
 Maximum milliseconds per frame to spend on async scene loading.
 
float timeScale_
 Scene update time scale.
 
float elapsedTime_
 Elapsed time accumulator.
 
float smoothingConstant_
 Motion smoothing constant.
 
float snapThreshold_
 Motion smoothing snap threshold.
 
bool updateEnabled_
 Update enabled flag.
 
bool asyncLoading_
 Asynchronous loading flag.
 
bool threadedUpdate_
 Threaded update flag.
 

Additional Inherited Members

- Protected Member Functions inherited from Urho3D::Node
virtual void OnAttributeAnimationAdded ()
 Handle attribute animation added.
 
virtual void OnAttributeAnimationRemoved ()
 Handle attribute animation removed.
 
virtual void SetObjectAttributeAnimation (const String &name, ValueAnimation *attributeAnimation, WrapMode wrapMode, float speed)
 Set object attribute animation internal.
 
- Protected Attributes inherited from Urho3D::Node
bool networkUpdate_
 Network update queued flag.
 
VariantMap vars_
 User variables.
 

Detailed Description

Root scene node, represents the whole scene.

Member Function Documentation

void Urho3D::Scene::UpdateAsyncLoading ( )
private

Update asynchronous loading.

Todo:
Works poorly in scenes where one root-level child node contains all content

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files:
  • /home/travis/build/urho3d/Urho3D/Source/Urho3D/Scene/Scene.h
  • /home/travis/build/urho3d/Urho3D/Source/Urho3D/Scene/Scene.cpp