|  | 
|  | Octree (Context *context) | 
|  | Construct. 
 | 
|  | 
|  | ~Octree () override | 
|  | Destruct. 
 | 
|  | 
| void | DrawDebugGeometry (DebugRenderer *debug, bool depthTest) override | 
|  | Visualize the component as debug geometry. 
 | 
|  | 
| void | SetSize (const BoundingBox &box, unsigned numLevels) | 
|  | Set size and maximum subdivision levels. If octree is not empty, drawable objects will be temporarily moved to the root. 
 | 
|  | 
| void | Update (const FrameInfo &frame) | 
|  | Update and reinsert drawable objects. 
 | 
|  | 
| void | AddManualDrawable (Drawable *drawable) | 
|  | Add a drawable manually. 
 | 
|  | 
| void | RemoveManualDrawable (Drawable *drawable) | 
|  | Remove a manually added drawable. 
 | 
|  | 
| void | GetDrawables (OctreeQuery &query) const | 
|  | 
| void | Raycast (RayOctreeQuery &query) const | 
|  | Return drawable objects by a ray query. 
 | 
|  | 
| void | RaycastSingle (RayOctreeQuery &query) const | 
|  | Return the closest drawable object by a ray query. 
 | 
|  | 
| unsigned | GetNumLevels () const | 
|  | 
| void | QueueUpdate (Drawable *drawable) | 
|  | Mark drawable object as requiring an update and a reinsertion. 
 | 
|  | 
| void | CancelUpdate (Drawable *drawable) | 
|  | Cancel drawable object's update. 
 | 
|  | 
| void | DrawDebugGeometry (bool depthTest) | 
|  | Visualize the component as debug geometry. 
 | 
|  | 
|  | Component (Context *context) | 
|  | Construct. 
 | 
|  | 
|  | ~Component () override | 
|  | Destruct. 
 | 
|  | 
| virtual void | OnSetEnabled () | 
|  | Handle enabled/disabled state change. 
 | 
|  | 
| bool | Save (Serializer &dest) const override | 
|  | Save as binary data. Return true if successful. 
 | 
|  | 
| bool | SaveXML (XMLElement &dest) const override | 
|  | Save as XML data. Return true if successful. 
 | 
|  | 
| bool | SaveJSON (JSONValue &dest) const override | 
|  | Save as JSON data. Return true if successful. 
 | 
|  | 
| void | MarkNetworkUpdate () override | 
|  | Mark for attribute check on the next network update. 
 | 
|  | 
| virtual void | GetDependencyNodes (PODVector< Node * > &dest) | 
|  | Return the depended on nodes to order network updates. 
 | 
|  | 
| void | SetEnabled (bool enable) | 
|  | 
| void | Remove () | 
|  | Remove from the scene node. If no other shared pointer references exist, causes immediate deletion. 
 | 
|  | 
| unsigned | GetID () const | 
|  | 
| bool | IsReplicated () const | 
|  | 
| Node * | GetNode () const | 
|  | 
| Scene * | GetScene () const | 
|  | Return the scene the node belongs to. 
 | 
|  | 
| bool | IsEnabled () const | 
|  | 
| bool | IsEnabledEffective () const | 
|  | 
| Component * | GetComponent (StringHash type) const | 
|  | Return component in the same scene node by type. If there are several, returns the first. 
 | 
|  | 
| void | GetComponents (PODVector< Component * > &dest, StringHash type) const | 
|  | Return components in the same scene node by type. 
 | 
|  | 
| template<class T > | 
| T * | GetComponent () const | 
|  | Template version of returning a component in the same scene node by type. 
 | 
|  | 
| template<class T > | 
| void | GetComponents (PODVector< T * > &dest) const | 
|  | Template version of returning components in the same scene node by type. 
 | 
|  | 
| void | AddReplicationState (ComponentReplicationState *state) | 
|  | Add a replication state that is tracking this component. 
 | 
|  | 
| void | PrepareNetworkUpdate () | 
|  | Prepare network update by comparing attributes and marking replication states dirty as necessary. 
 | 
|  | 
| void | CleanupConnection (Connection *connection) | 
|  | 
|  | Animatable (Context *context) | 
|  | Construct. 
 | 
|  | 
|  | ~Animatable () override | 
|  | Destruct. 
 | 
|  | 
| bool | LoadXML (const XMLElement &source) override | 
|  | Load from XML data. Return true if successful. 
 | 
|  | 
| bool | LoadJSON (const JSONValue &source) override | 
|  | Load from JSON data. Return true if successful. 
 | 
|  | 
| void | SetAnimationEnabled (bool enable) | 
|  | 
| 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) | 
|  | 
| 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 | 
|  | 
| ObjectAnimation * | GetObjectAnimation () const | 
|  | 
| 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. 
 | 
|  | 
|  | 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| virtual void | ApplyAttributes () | 
|  | Apply attribute changes that can not be applied immediately. Called after scene load or a network update. 
 | 
|  | 
| virtual bool | SaveDefaultAttributes () const | 
|  | Return whether should save default-valued attributes into XML. Default false. 
 | 
|  | 
| bool | SetAttribute (unsigned index, const Variant &value) | 
|  | 
| 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) | 
|  | 
| 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 | 
|  | 
| Variant | GetAttribute (const String &name) const | 
|  | Return attribute value by name. Return empty if not found. 
 | 
|  | 
| Variant | GetAttributeDefault (unsigned index) const | 
|  | 
| Variant | GetAttributeDefault (const String &name) const | 
|  | Return attribute default value by name. Return empty if not found. 
 | 
|  | 
| unsigned | GetNumAttributes () const | 
|  | 
| unsigned | GetNumNetworkAttributes () const | 
|  | Return number of network replication attributes. 
 | 
|  | 
| bool | IsTemporary () const | 
|  | 
| 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. 
 | 
|  | 
|  | Object (Context *context) | 
|  | Construct. 
 | 
|  | 
|  | ~Object () override | 
|  | Destruct. Clean up self from event sender & receiver structures. 
 | 
|  | 
| virtual StringHash | GetType () const =0 | 
|  | 
| virtual const String & | GetTypeName () const =0 | 
|  | 
| 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 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. 
 | 
|  | 
| 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 | 
|  | 
| const VariantMap & | GetGlobalVars () const | 
|  | 
| void | SetGlobalVar (StringHash key, const Variant &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 | 
|  | 
| void | SetBlockEvents (bool block) | 
|  | Block object from sending and receiving events. 
 | 
|  | 
| bool | GetBlockEvents () const | 
|  | Return sending and receiving events blocking status. 
 | 
|  | 
|  | 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 () | 
|  | 
| void | ReleaseRef () | 
|  | 
| int | Refs () const | 
|  | 
| int | WeakRefs () const | 
|  | 
| RefCount * | RefCountPtr () | 
|  | Return pointer to the reference count structure. 
 | 
|  | 
|  | Octant (const BoundingBox &box, unsigned level, Octant *parent, Octree *root, unsigned index=ROOT_INDEX) | 
|  | Construct. 
 | 
|  | 
| virtual | ~Octant () | 
|  | Destruct. Move drawables to root if available (detach if not) and free child octants. 
 | 
|  | 
| Octant * | GetOrCreateChild (unsigned index) | 
|  | Return or create a child octant. 
 | 
|  | 
| void | DeleteChild (unsigned index) | 
|  | Delete child octant. 
 | 
|  | 
| void | InsertDrawable (Drawable *drawable) | 
|  | Insert a drawable object by checking for fit recursively. 
 | 
|  | 
| bool | CheckDrawableFit (const BoundingBox &box) const | 
|  | Check if a drawable object fits. 
 | 
|  | 
| void | AddDrawable (Drawable *drawable) | 
|  | Add a drawable object to this octant. 
 | 
|  | 
| void | RemoveDrawable (Drawable *drawable, bool resetOctant=true) | 
|  | Remove a drawable object from this octant. 
 | 
|  | 
| const BoundingBox & | GetWorldBoundingBox () const | 
|  | 
| const BoundingBox & | GetCullingBox () const | 
|  | Return bounding box used for fitting drawable objects. 
 | 
|  | 
| unsigned | GetLevel () const | 
|  | Return subdivision level. 
 | 
|  | 
| Octant * | GetParent () const | 
|  | Return parent octant. 
 | 
|  | 
| Octree * | GetRoot () const | 
|  | Return octree root. 
 | 
|  | 
| unsigned | GetNumDrawables () const | 
|  | Return number of drawables. 
 | 
|  | 
| bool | IsEmpty () | 
|  | Return true if there are no drawable objects in this octant and child octants. 
 | 
|  | 
| void | ResetRoot () | 
|  | Reset root pointer recursively. Called when the whole octree is being destroyed. 
 | 
|  | 
| void | DrawDebugGeometry (DebugRenderer *debug, bool depthTest) | 
|  | 
|  | 
| void | OnAttributeAnimationAdded () override | 
|  | Handle attribute animation added. 
 | 
|  | 
| void | OnAttributeAnimationRemoved () override | 
|  | Handle attribute animation removed. 
 | 
|  | 
| virtual void | OnNodeSet (Node *node) | 
|  | Handle scene node being assigned at creation. 
 | 
|  | 
| virtual void | OnSceneSet (Scene *scene) | 
|  | Handle scene being assigned. This may happen several times during the component's lifetime. Scene-wide subsystems and events are subscribed to here. 
 | 
|  | 
| virtual void | OnMarkedDirty (Node *node) | 
|  | Handle scene node transform dirtied. 
 | 
|  | 
| virtual void | OnNodeSetEnabled (Node *node) | 
|  | Handle scene node enabled status changing. 
 | 
|  | 
| void | SetID (unsigned id) | 
|  | 
| void | SetNode (Node *node) | 
|  | Set scene node. Called by Node when creating the component. 
 | 
|  | 
| void | HandleAttributeAnimationUpdate (StringHash eventType, VariantMap &eventData) | 
|  | Handle scene attribute animation update event. 
 | 
|  | 
| Component * | GetFixedUpdateSource () | 
|  | Return a component from the scene root that sends out fixed update events (either PhysicsWorld or PhysicsWorld2D). Return null if neither exists. 
 | 
|  | 
| void | DoAutoRemove (AutoRemoveMode mode) | 
|  | Perform autoremove. Called by subclasses. Caller should keep a weak pointer to itself to check whether was actually removed, and return immediately without further member operations in that case. 
 | 
|  | 
| virtual Animatable * | FindAttributeAnimationTarget (const String &name, String &outName) | 
|  | Find target of an attribute animation from object hierarchy by name. 
 | 
|  | 
| 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. 
 | 
|  | 
| void | Initialize (const BoundingBox &box) | 
|  | Initialize bounding box. 
 | 
|  | 
| void | GetDrawablesInternal (OctreeQuery &query, bool inside) const | 
|  | Return drawable objects by a query, called internally. 
 | 
|  | 
| void | GetDrawablesInternal (RayOctreeQuery &query) const | 
|  | Return drawable objects by a ray query, called internally. 
 | 
|  | 
| void | GetDrawablesOnlyInternal (RayOctreeQuery &query, PODVector< Drawable * > &drawables) const | 
|  | Return drawable objects only for a threaded ray query, called internally. 
 | 
|  | 
| void | IncDrawableCount () | 
|  | Increase drawable object count recursively. 
 | 
|  | 
| void | DecDrawableCount () | 
|  | Decrease drawable object count recursively and remove octant if it becomes empty. 
 | 
|  | 
| Node * | node_ | 
|  | Scene node. 
 | 
|  | 
| unsigned | id_ | 
|  | Unique ID within the scene. 
 | 
|  | 
| bool | networkUpdate_ | 
|  | Network update queued flag. 
 | 
|  | 
| bool | enabled_ | 
|  | Enabled flag. 
 | 
|  | 
| bool | animationEnabled_ | 
|  | Animation enabled. 
 | 
|  | 
| SharedPtr< ObjectAnimation > | objectAnimation_ | 
|  | Animation. 
 | 
|  | 
| HashSet< const AttributeInfo * > | animatedNetworkAttributes_ | 
|  | Animated network attribute set. 
 | 
|  | 
| HashMap< String, SharedPtr< AttributeAnimationInfo > > | attributeAnimationInfos_ | 
|  | Attribute animation infos. 
 | 
|  | 
| UniquePtr< NetworkState > | networkState_ | 
|  | Network attribute state. 
 | 
|  | 
| Context * | context_ | 
|  | Execution context. 
 | 
|  | 
| BoundingBox | worldBoundingBox_ | 
|  | World bounding box. 
 | 
|  | 
| BoundingBox | cullingBox_ | 
|  | Bounding box used for drawable object fitting. 
 | 
|  | 
| PODVector< Drawable * > | drawables_ | 
|  | Drawable objects. 
 | 
|  | 
| Octant * | children_ [NUM_OCTANTS] {} | 
|  | Child octants. 
 | 
|  | 
| Vector3 | center_ | 
|  | World bounding box center. 
 | 
|  | 
| Vector3 | halfSize_ | 
|  | World bounding box half size. 
 | 
|  | 
| unsigned | level_ | 
|  | Subdivision level. 
 | 
|  | 
| unsigned | numDrawables_ {} | 
|  | Number of drawable objects in this octant and child octants. 
 | 
|  | 
| Octant * | parent_ | 
|  | Parent octant. 
 | 
|  | 
| Octree * | root_ | 
|  | Octree root. 
 | 
|  | 
| unsigned | index_ | 
|  | Octant index relative to its siblings or ROOT_INDEX for root octant. 
 | 
|  |