Re-added fast square root & fast inverse square root, and fast variations of normalizing vectors & quaternions.
Skinning & instancing vertex shaders are now chosen automatically without the material having to specify them.
Refactored Button logic.
Model format changed: now the offset matrix is explicitly specified in the skeleton.
Removed onParentChanged(), onChildAdded() & onChildRemoved() from Node as unnecessary for now.
Added functions in Animation to set name and length, and add/remove tracks.
AnimationState now uses name hashes to query for bones.
Use world bounding box size for LOD scaled distance of GeometryNode and subclasses.
Removed manual animation LOD adjustments from NinjaSnowWar, as they became unnecessary.
Lowered the animation LOD basescale slightly, as now the bounding box dimensions are taken into account correctly.
Added local animation flag for AnimatedModel. When enabled, animation and morph updates will not be sent over network.
Added missing registration of syncAnimation() & syncMorphs() to script.
Optimized quaternion * vector function.
Separated VolumeNode update before octree reinsertion, and the actual reinsertion. Now the update has to be requested explicitly.
Changed animation update. Now also invisible AnimatedModels will update at a low frequency, so that renderer raycasts can be performed on invisible parts of the world with relative accuracy. Headless mode always updates all animated models at full frequency, as there is no concept of visibility.
Removed tracking of whether a skeleton has attached nodes, because it is no longer necessary.
Added possibility to transmit a VariantMap of custom login data when connecting to a server.
Added isClient() and isServer() functions to the script API.
ScriptFile::execute() borrows the ScriptEngine's immediate context automatically if a null context is specified.
Changed AngelScript x86 function calls to use EMMS instead of FNINIT to clear the floating point stack, to not affect the floating point control word.
Updated documentation.