Forráskód Böngészése

Merge branch 'master' into shader-refactor

Lasse Öörni 12 éve
szülő
commit
ea334e4393
100 módosított fájl, 298 hozzáadás és 188 törlés
  1. 1 1
      .bash_helpers.sh
  2. 63 39
      Bin/Data/LuaScripts/15_Navigation.lua
  3. 24 1
      Bin/Data/LuaScripts/Utilities/Sample.lua
  4. 73 42
      Bin/Data/Scripts/15_Navigation.as
  5. 4 0
      Bin/Data/Scripts/Editor/EditorUI.as
  6. 9 6
      Bin/Data/Scripts/Editor/EditorView.as
  7. 22 0
      Bin/Data/Scripts/Utilities/Sample.as
  8. 2 2
      Docs/AngelScriptAPI.h
  9. 1 1
      Docs/CMakeLists.txt
  10. 1 0
      Docs/GettingStarted.dox
  11. 2 0
      Docs/LuaScriptAPI.dox
  12. 2 2
      Docs/ScriptAPI.dox
  13. 3 3
      Docs/Urho3D.dox
  14. 1 1
      License.txt
  15. 2 2
      Readme.txt
  16. 4 4
      Source/CMake/Modules/Urho3D-CMake-magic.cmake
  17. 1 1
      Source/CMakeLists.txt
  18. 1 1
      Source/Engine/Audio/Audio.cpp
  19. 1 1
      Source/Engine/Audio/Audio.h
  20. 1 1
      Source/Engine/Audio/AudioDefs.h
  21. 1 1
      Source/Engine/Audio/CMakeLists.txt
  22. 1 1
      Source/Engine/Audio/Sound.cpp
  23. 1 1
      Source/Engine/Audio/Sound.h
  24. 1 1
      Source/Engine/Audio/SoundListener.cpp
  25. 1 1
      Source/Engine/Audio/SoundListener.h
  26. 1 1
      Source/Engine/Audio/SoundSource.cpp
  27. 1 1
      Source/Engine/Audio/SoundSource.h
  28. 1 1
      Source/Engine/Audio/SoundSource3D.cpp
  29. 1 1
      Source/Engine/Audio/SoundSource3D.h
  30. 1 1
      Source/Engine/CMakeLists.txt
  31. 1 1
      Source/Engine/Container/Allocator.cpp
  32. 1 1
      Source/Engine/Container/Allocator.h
  33. 1 1
      Source/Engine/Container/ArrayPtr.h
  34. 1 1
      Source/Engine/Container/CMakeLists.txt
  35. 1 1
      Source/Engine/Container/DebugNew.h
  36. 1 1
      Source/Engine/Container/Hash.h
  37. 1 1
      Source/Engine/Container/HashBase.cpp
  38. 1 1
      Source/Engine/Container/HashBase.h
  39. 1 1
      Source/Engine/Container/HashMap.h
  40. 1 1
      Source/Engine/Container/HashSet.h
  41. 1 1
      Source/Engine/Container/HashTable.h
  42. 1 1
      Source/Engine/Container/LinkedList.h
  43. 1 1
      Source/Engine/Container/List.h
  44. 1 1
      Source/Engine/Container/ListBase.h
  45. 1 1
      Source/Engine/Container/Pair.h
  46. 1 1
      Source/Engine/Container/Ptr.h
  47. 1 1
      Source/Engine/Container/RefCounted.cpp
  48. 1 1
      Source/Engine/Container/RefCounted.h
  49. 1 1
      Source/Engine/Container/Sort.h
  50. 1 1
      Source/Engine/Container/Str.cpp
  51. 1 1
      Source/Engine/Container/Str.h
  52. 1 1
      Source/Engine/Container/Swap.cpp
  53. 1 1
      Source/Engine/Container/Swap.h
  54. 1 1
      Source/Engine/Container/Vector.h
  55. 1 1
      Source/Engine/Container/VectorBase.cpp
  56. 1 1
      Source/Engine/Container/VectorBase.h
  57. 1 1
      Source/Engine/Core/Attribute.h
  58. 1 1
      Source/Engine/Core/CMakeLists.txt
  59. 1 1
      Source/Engine/Core/Condition.cpp
  60. 1 1
      Source/Engine/Core/Condition.h
  61. 1 1
      Source/Engine/Core/Context.cpp
  62. 1 1
      Source/Engine/Core/Context.h
  63. 1 1
      Source/Engine/Core/CoreEvents.h
  64. 1 1
      Source/Engine/Core/Main.h
  65. 1 1
      Source/Engine/Core/MiniDump.cpp
  66. 1 1
      Source/Engine/Core/MiniDump.h
  67. 1 1
      Source/Engine/Core/Mutex.cpp
  68. 1 1
      Source/Engine/Core/Mutex.h
  69. 1 1
      Source/Engine/Core/Object.cpp
  70. 1 1
      Source/Engine/Core/Object.h
  71. 1 1
      Source/Engine/Core/ProcessUtils.cpp
  72. 1 1
      Source/Engine/Core/ProcessUtils.h
  73. 1 1
      Source/Engine/Core/Profiler.cpp
  74. 1 1
      Source/Engine/Core/Profiler.h
  75. 1 1
      Source/Engine/Core/StringUtils.cpp
  76. 1 1
      Source/Engine/Core/StringUtils.h
  77. 1 1
      Source/Engine/Core/Thread.cpp
  78. 1 1
      Source/Engine/Core/Thread.h
  79. 1 1
      Source/Engine/Core/Timer.cpp
  80. 1 1
      Source/Engine/Core/Timer.h
  81. 1 1
      Source/Engine/Core/Variant.cpp
  82. 1 1
      Source/Engine/Core/Variant.h
  83. 1 1
      Source/Engine/Core/WorkQueue.cpp
  84. 1 1
      Source/Engine/Core/WorkQueue.h
  85. 1 1
      Source/Engine/Engine/Application.cpp
  86. 1 1
      Source/Engine/Engine/Application.h
  87. 1 1
      Source/Engine/Engine/CMakeLists.txt
  88. 1 1
      Source/Engine/Engine/Console.cpp
  89. 1 1
      Source/Engine/Engine/Console.h
  90. 1 1
      Source/Engine/Engine/DebugHud.cpp
  91. 1 1
      Source/Engine/Engine/DebugHud.h
  92. 1 1
      Source/Engine/Engine/Engine.cpp
  93. 1 1
      Source/Engine/Engine/Engine.h
  94. 1 1
      Source/Engine/Engine/EngineEvents.h
  95. 1 1
      Source/Engine/Graphics/AnimatedModel.cpp
  96. 1 1
      Source/Engine/Graphics/AnimatedModel.h
  97. 1 1
      Source/Engine/Graphics/Animation.cpp
  98. 1 1
      Source/Engine/Graphics/Animation.h
  99. 1 1
      Source/Engine/Graphics/AnimationController.cpp
  100. 1 1
      Source/Engine/Graphics/AnimationController.h

+ 1 - 1
.bash_helpers.sh

@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2013 the Urho3D project.
+# Copyright (c) 2008-2014 the Urho3D project.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal

+ 63 - 39
Bin/Data/LuaScripts/15_Navigation.lua

@@ -4,19 +4,18 @@
 --     - Performing path queries to the navigation mesh
 --     - Rebuilding the navigation mesh partially when adding or removing objects
 --     - Visualizing custom debug geometry
+--     - Raycasting drawable components
+--     - Making a node follow the Detour path
 
 require "LuaScripts/Utilities/Sample"
 
 local scene_ = nil
 local cameraNode = nil
-local startPos = nil
 local endPos = nil
-local currentPath = nil
+local currentPath = {}
 local yaw = 0.0
 local pitch = 0.0
 local drawDebug = false
-local startPosDefined = false
-local endPosDefined = false
 
 local cache = GetCache()
 local input = GetInput()
@@ -96,7 +95,15 @@ function CreateScene()
             boxObject.occluder = true
         end
     end
-    
+
+    -- Create Jack node that will follow the path
+    jackNode = scene_:CreateChild("Jack")
+    jackNode.position = Vector3(-5, 0, 20)
+    local modelObject = jackNode:CreateComponent("AnimatedModel")
+    modelObject.model = cache:GetResource("Model", "Models/Jack.mdl")
+    modelObject.material = cache:GetResource("Material", "Materials/Jack.xml")
+    modelObject.castShadows = true
+
     -- Create a NavigationMesh component to the scene root
     local navMesh = scene_:CreateComponent("NavigationMesh")
     -- Create a Navigable component to the scene root. This tags all of the geometry in the scene as being part of the
@@ -132,7 +139,7 @@ function CreateUI()
     -- Construct new Text object, set string to display and font to use
     local instructionText = ui.root:CreateChild("Text")
     instructionText.text = "Use WASD keys to move, RMB to rotate view\n"..
-        "Shift+LMB to set path start, LMB to set path end\n"..
+        "LMB to set destination, SHIFT+LMB to teleport\n"..
         "MMB to add or remove obstacles\n"..
         "Space to toggle debug geometry"
     instructionText:SetFont(cache:GetResource("Font", "Fonts/Anonymous Pro.ttf"), 15)
@@ -199,7 +206,7 @@ function MoveCamera(timeStep)
     if input:GetKeyDown(KEY_D) then
         cameraNode:TranslateRelative(Vector3(1.0, 0.0, 0.0) * MOVE_SPEED * timeStep)
     end
-    -- Set route start/endpoint with left mouse button, recalculate route if applicable
+    -- Set destination or teleport with left mouse button
     if input:GetMouseButtonPress(MOUSEB_LEFT) then
         SetPathPoint()
     end
@@ -215,17 +222,20 @@ end
 
 function SetPathPoint()
     local result, hitPos, hitDrawable = Raycast(250.0)
+    local navMesh = scene_:GetComponent("NavigationMesh")
     if result then
-        local setStart = input:GetQualifierDown(QUAL_SHIFT)
-        if setStart then
-            startPos = hitPos
-            startPosDefined = true
+        local pathPos = navMesh:FindNearestPoint(hitPos, Vector3.ONE)
+
+        if input:GetQualifierDown(QUAL_SHIFT) then
+            -- Teleport
+            currentPath = {}
+            jackNode:LookAt(Vector3(pathPos.x, jackNode.position.y, pathPos.z), Vector3(0.0, 1.0, 0.0))
+            jackNode.position = pathPos;
         else
-            endPos = hitPos
-            endPosDefined = true
+            -- Calculate path from Jack's current position to the end point
+            endPos = pathPos;
+            currentPath = navMesh:FindPath(jackNode.position, endPos);
         end
-        
-        RecalculatePath()
     end
 end
 
@@ -250,7 +260,9 @@ function AddOrRemoveObject()
         -- Rebuild part of the navigation mesh, then recalculate path if applicable
         local navMesh = scene_:GetComponent("NavigationMesh")
         navMesh:Build(updateBox)
-        RecalculatePath()
+        if table.maxn(currentPath) > 0 then
+            currentPath = navMesh:FindPath(jackNode.position, endPos);
+        end
     end
 end
 
@@ -266,15 +278,6 @@ function CreateMushroom(pos)
     return mushroomNode
 end
 
-function RecalculatePath()
-    if not startPosDefined or not endPosDefined then
-        return
-    end
-
-    local navMesh = scene_:GetComponent("NavigationMesh")
-    currentPath = navMesh:FindPath(startPos, endPos)
-end
-
 function Raycast(maxDistance)
     local hitPos = nil
     local hitDrawable = nil
@@ -306,6 +309,30 @@ function HandleUpdate(eventType, eventData)
 
     -- Move the camera, scale movement with time step
     MoveCamera(timeStep)
+
+    -- Make Jack follow the Detour path
+    FollowPath(timeStep)
+end
+
+function FollowPath(timeStep)
+    if table.maxn(currentPath) > 0 then
+        local nextWaypoint = currentPath[1] -- NB: currentPath[1] is the next waypoint in order
+
+        -- Rotate Jack toward next waypoint to reach and move. Check for not overshooting the target
+        local move = 5 * timeStep
+        local distance = (jackNode.position - nextWaypoint):Length()
+        if move > distance then
+            move = distance
+        end
+
+        jackNode:LookAt(nextWaypoint, Vector3(0.0, 1.0, 0.0))
+        jackNode:TranslateRelative(Vector3(0.0, 0.0, 1.0) * move)
+
+        -- Remove waypoint if reached it
+        if (jackNode.position - nextWaypoint):Length() < 0.1 then
+            table.remove(currentPath, 1)
+        end
+    end
 end
 
 function HandlePostRenderUpdate(eventType, eventData)
@@ -316,22 +343,19 @@ function HandlePostRenderUpdate(eventType, eventData)
     end
     
     -- Visualize the start and end points and the last calculated path
-    -- Note the convenience accessor to the DebugRenderer component
-    local debug = scene_:GetComponent("DebugRenderer")
-    if startPosDefined then
-        debug:AddBoundingBox(BoundingBox(startPos - Vector3(0.1, 0.1, 0.1), startPos + Vector3(0.1, 0.1, 0.1)), Color(1.0, 1.0, 1.0))
-    end
-    
-    if endPosDefined then
+    local size = table.maxn(currentPath)
+    if size > 0 then
+        local debug = scene_:GetComponent("DebugRenderer")
         debug:AddBoundingBox(BoundingBox(endPos - Vector3(0.1, 0.1, 0.1), endPos + Vector3(0.1, 0.1, 0.1)), Color(1.0, 1.0, 1.0))
-    end
-    
-    if currentPath ~= nil then
+        
         -- Draw the path with a small upward bias so that it does not clip into the surfaces
         local bias = Vector3(0.0, 0.05, 0.0)
-        local size = table.maxn(currentPath)
-        for i = 1, size - 1 do
-            debug:AddLine(currentPath[i] + bias, currentPath[i + 1] + bias, Color(1.0, 1.0, 1.0))
+        debug:AddLine(jackNode.position + bias, currentPath[1] + bias, Color(1.0, 1.0, 1.0))
+
+        if size > 1 then
+            for i = 1, size - 1 do
+                debug:AddLine(currentPath[i] + bias, currentPath[i + 1] + bias, Color(1.0, 1.0, 1.0))
+            end
         end
     end
-end
+end

+ 24 - 1
Bin/Data/LuaScripts/Utilities/Sample.lua

@@ -1,7 +1,9 @@
 -- Common sample initialization as a framework for all samples.
 --    - Create Urho3D logo at screen
+--    - Set custom window title and icon
 --    - Create Console and Debug HUD, and use F1 and F2 key to toggle them
 --    - Toggle rendering options from the keys 1-8
+--    - Take screenshots with key 9
 --    - Handle Esc key down to hide Console or exit application
 
 local logoSprite = nil
@@ -9,7 +11,10 @@ local logoSprite = nil
 function SampleStart()
     -- Create logo
     CreateLogo()
-    
+
+    -- Set custom window Title & Icon
+    SetWindowTitleAndIcon()
+
     -- Create console and debug HUD
     CreateConsoleAndDebugHud()
 
@@ -60,6 +65,14 @@ function CreateLogo()
     logoSprite.priority = -100
 end
 
+function SetWindowTitleAndIcon()
+    local cache = GetCache()
+    local graphics = GetGraphics()
+    local icon = cache:GetResource("Image", "Textures/LogoLarge.png")
+    graphics:SetWindowIcon(icon)
+    graphics.windowTitle = "Urho3D Sample"
+end
+
 function CreateConsoleAndDebugHud()
     -- Get default style
     local cache = GetCache()
@@ -159,6 +172,16 @@ function HandleKeyDown(eventType, eventData)
         -- Instancing
         elseif key == KEY_8 then
             renderer.dynamicInstancing = not renderer.dynamicInstancing
+        
+        -- Take screenshot
+        elseif key == KEY_9 then
+            local graphics = GetGraphics()
+            local screenshot = Image()
+            graphics:TakeScreenShot(screenshot)
+            local timeStamp = Time:GetTimeStamp()
+            timeStamp = string.gsub(timeStamp, "[:. ]", "_")
+            -- Here we save in the Data folder with date and time appended
+            screenshot:SavePNG(GetFileSystem():GetProgramDir() .. "Data/Screenshot_" .. timeStamp .. ".png")
         end
     end
 end

+ 73 - 42
Bin/Data/Scripts/15_Navigation.as

@@ -4,19 +4,19 @@
 //     - Performing path queries to the navigation mesh
 //     - Rebuilding the navigation mesh partially when adding or removing objects
 //     - Visualizing custom debug geometry
+//     - Raycasting drawable components
+//     - Making a node follow the Detour path
 
 #include "Scripts/Utilities/Sample.as"
 
 Scene@ scene_;
 Node@ cameraNode;
-Vector3 startPos;
 Vector3 endPos;
 Array<Vector3> currentPath;
 float yaw = 0.0f;
 float pitch = 0.0f;
 bool drawDebug = false;
-bool startPosDefined = false;
-bool endPosDefined = false;
+Node@ jackNode;
 
 void Start()
 {
@@ -92,7 +92,15 @@ void CreateScene()
         if (size >= 3.0f)
             boxObject.occluder = true;
     }
-    
+
+    // Create Jack node that will follow the path
+    jackNode = scene_.CreateChild("Jack");
+    jackNode.position = Vector3(-5.0f, 0.0f, 20.0f);
+    AnimatedModel@ modelObject = jackNode.CreateComponent("AnimatedModel");
+    modelObject.model = cache.GetResource("Model", "Models/Jack.mdl");
+    modelObject.material = cache.GetResource("Material", "Materials/Jack.xml");
+    modelObject.castShadows = true;
+
     // Create a NavigationMesh component to the scene root
     NavigationMesh@ navMesh = scene_.CreateComponent("NavigationMesh");
     // Create a Navigable component to the scene root. This tags all of the geometry in the scene as being part of the
@@ -130,7 +138,7 @@ void CreateUI()
     Text@ instructionText = ui.root.CreateChild("Text");
     instructionText.text =
         "Use WASD keys to move, RMB to rotate view\n"
-        "Shift+LMB to set path start, LMB to set path end\n"
+        "LMB to set destination, SHIFT+LMB to teleport\n"
         "MMB to add or remove obstacles\n"
         "Space to toggle debug geometry";
     instructionText.SetFont(cache.GetResource("Font", "Fonts/Anonymous Pro.ttf"), 15);
@@ -168,12 +176,12 @@ void MoveCamera(float timeStep)
     // Do not move if the UI has a focused element (the console)
     if (ui.focusElement !is null)
         return;
-    
+
     // Movement speed as world units per second
     const float MOVE_SPEED = 20.0f;
     // Mouse sensitivity as degrees per pixel
     const float MOUSE_SENSITIVITY = 0.1f;
-    
+
     // Use this frame's mouse motion to adjust camera node yaw and pitch. Clamp the pitch between -90 and 90 degrees
     // Only move the camera when the cursor is hidden
     if (!ui.cursor.visible)
@@ -197,7 +205,7 @@ void MoveCamera(float timeStep)
     if (input.keyDown['D'])
         cameraNode.TranslateRelative(Vector3(1.0f, 0.0f, 0.0f) * MOVE_SPEED * timeStep);
 
-    // Set route start/endpoint with left mouse button, recalculate route if applicable
+    // Set destination or teleport with left mouse button
     if (input.mouseButtonPress[MOUSEB_LEFT])
         SetPathPoint();
     // Add or remove objects with middle mouse button, then rebuild navigation mesh partially
@@ -213,22 +221,25 @@ void SetPathPoint()
 {
     Vector3 hitPos;
     Drawable@ hitDrawable;
-    
+    NavigationMesh@ navMesh = scene_.GetComponent("NavigationMesh");
+
     if (Raycast(250.0f, hitPos, hitDrawable))
     {
-        bool setStart = input.qualifierDown[QUAL_SHIFT];
-        if (setStart)
+        Vector3 pathPos = navMesh.FindNearestPoint(hitPos, Vector3(1.0f, 1.0f, 1.0f));
+
+        if (input.qualifierDown[QUAL_SHIFT])
         {
-            startPos = hitPos;
-            startPosDefined = true;
+            // Teleport
+            currentPath.Clear();
+            jackNode.LookAt(Vector3(pathPos.x, jackNode.position.y, pathPos.z), Vector3(0.0f, 1.0f, 0.0f));
+            jackNode.position = pathPos;
         }
         else
         {
-            endPos = hitPos;
-            endPosDefined = true;
+            // Calculate path from Jack's current position to the end point
+            endPos = pathPos;
+            currentPath = navMesh.FindPath(jackNode.position, endPos);
         }
-        
-        RecalculatePath();
     }
 }
 
@@ -237,13 +248,13 @@ void AddOrRemoveObject()
     // Raycast and check if we hit a mushroom node. If yes, remove it, if no, create a new one
     Vector3 hitPos;
     Drawable@ hitDrawable;
-    
+
     if (Raycast(250.0f, hitPos, hitDrawable))
     {
         // The part of the navigation mesh we must update, which is the world bounding box of the associated
         // drawable component
         BoundingBox updateBox;
-        
+
         Node@ hitNode = hitDrawable.node;
         if (hitNode.name == "Mushroom")
         {
@@ -256,11 +267,12 @@ void AddOrRemoveObject()
             StaticModel@ newObject = newNode.GetComponent("StaticModel");
             updateBox = newObject.worldBoundingBox;
         }
-        
-        // Rebuild part of the navigation mesh, then recalculate path if applicable
+
+        // Rebuild part of the navigation mesh, then rebuild the path if applicable
         NavigationMesh@ navMesh = scene_.GetComponent("NavigationMesh");
         navMesh.Build(updateBox);
-        RecalculatePath();
+        if (currentPath.length > 0)
+            currentPath = navMesh.FindPath(jackNode.position, endPos);
     }
 }
 
@@ -274,17 +286,8 @@ Node@ CreateMushroom(const Vector3& pos)
     mushroomObject.model = cache.GetResource("Model", "Models/Mushroom.mdl");
     mushroomObject.material = cache.GetResource("Material", "Materials/Mushroom.xml");
     mushroomObject.castShadows = true;
-    
-    return mushroomNode;
-}
 
-void RecalculatePath()
-{
-    if (!startPosDefined || !endPosDefined)
-        return;
-
-    NavigationMesh@ navMesh = scene_.GetComponent("NavigationMesh");
-    currentPath = navMesh.FindPath(startPos, endPos);
+    return mushroomNode;
 }
 
 bool Raycast(float maxDistance, Vector3& hitPos, Drawable@& hitDrawable)
@@ -311,6 +314,27 @@ bool Raycast(float maxDistance, Vector3& hitPos, Drawable@& hitDrawable)
     return false;
 }
 
+void FollowPath(float timeStep)
+{
+    if (currentPath.length > 0)
+    {
+        Vector3 nextWaypoint = currentPath[0]; // NB: currentPath[0] is the next waypoint in order
+
+        // Rotate Jack toward next waypoint to reach and move. Check for not overshooting the target
+        float move = 5.0f * timeStep;
+        float distance = (jackNode.position - nextWaypoint).length;
+        if (move > distance)
+            move = distance;
+        
+        jackNode.LookAt(nextWaypoint, Vector3(0.0f, 1.0f, 0.0f));
+        jackNode.TranslateRelative(Vector3(0.0f, 0.0f, 1.0f) * move);
+
+        // Remove waypoint if reached it
+        if ((jackNode.position - nextWaypoint).length < 0.1)
+            currentPath.Erase(0);
+    }
+}
+
 void HandleUpdate(StringHash eventType, VariantMap& eventData)
 {
     // Take the frame time step, which is stored as a float
@@ -318,6 +342,9 @@ void HandleUpdate(StringHash eventType, VariantMap& eventData)
 
     // Move the camera, scale movement with time step
     MoveCamera(timeStep);
+
+    // Make Jack follow the Detour path
+    FollowPath(timeStep);
 }
 
 void HandlePostRenderUpdate(StringHash eventType, VariantMap& eventData)
@@ -329,18 +356,22 @@ void HandlePostRenderUpdate(StringHash eventType, VariantMap& eventData)
         navMesh.DrawDebugGeometry(true);
     }
 
-    // Visualize the start and end points and the last calculated path
-    // Note the convenience accessor to the DebugRenderer component
-    DebugRenderer@ debug = scene_.debugRenderer;
-    if (startPosDefined)
-        debug.AddBoundingBox(BoundingBox(startPos - Vector3(0.1f, 0.1f, 0.1f), startPos + Vector3(0.1f, 0.1f, 0.1f)), Color(1.0f, 1.0f, 1.0f));
-    if (endPosDefined)
-        debug.AddBoundingBox(BoundingBox(endPos - Vector3(0.1f, 0.1f, 0.1f), endPos + Vector3(0.1f, 0.1f, 0.1f)), Color(1.0f, 1.0f, 1.0f));
-    if (currentPath.length > 1)
+    if (currentPath.length > 0)
     {
+        // Visualize the current calculated path
+        // Note the convenience accessor to the DebugRenderer component
+        DebugRenderer@ debug = scene_.debugRenderer;
+        debug.AddBoundingBox(BoundingBox(endPos - Vector3(0.1f, 0.1f, 0.1f), endPos + Vector3(0.1f, 0.1f, 0.1f)),
+            Color(1.0f, 1.0f, 1.0f));
+
         // Draw the path with a small upward bias so that it does not clip into the surfaces
         Vector3 bias(0.0f, 0.05f, 0.0f);
-        for (uint i = 0; i < currentPath.length - 1; ++i)
-            debug.AddLine(currentPath[i] + bias, currentPath[i + 1] + bias, Color(1.0f, 1.0f, 1.0f));
+        debug.AddLine(jackNode.position + bias, currentPath[0] + bias, Color(1.0f, 1.0f, 1.0f));
+
+        if (currentPath.length > 1)
+        {
+            for (uint i = 0; i < currentPath.length - 1; ++i)
+                debug.AddLine(currentPath[i] + bias, currentPath[i + 1] + bias, Color(1.0f, 1.0f, 1.0f));
+        }
     }
 }

+ 4 - 0
Bin/Data/Scripts/Editor/EditorUI.as

@@ -115,6 +115,10 @@ void ResizeUI()
 
     // Relayout root UI element
     editorUIElement.SetSize(graphics.width, graphics.height);
+    
+    // Set new viewport area and reset the viewport layout
+    viewportArea = IntRect(0, 0, graphics.width, graphics.height);
+    SetViewportMode(viewportMode);
 }
 
 void AdjustPosition(Window@ window)

+ 9 - 6
Bin/Data/Scripts/Editor/EditorView.as

@@ -12,7 +12,7 @@ uint resizingBorder = 0; // current border that is dragging
 uint viewportMode = VIEWPORT_SINGLE;
 int  viewportBorderOffset = 2; // used to center borders over viewport seams,  should be half of width
 int  viewportBorderWidth = 4; // width of a viewport resize border
-IntRect viewportArea(0, 0, graphics.width, graphics.height); // the area where the editor viewport is. if we ever want to have the viewport not take up the whole screen this abstracts that
+IntRect viewportArea; // the area where the editor viewport is. if we ever want to have the viewport not take up the whole screen this abstracts that
 IntRect viewportUIClipBorder = IntRect(27, 60, 0, 0); // used to clip viewport borders, the borders are ugly when going behind the transparent toolbars
 
 const uint VIEWPORT_BORDER_H     = 0x00000001;
@@ -184,6 +184,9 @@ Array<String> fillModeText = {
 
 void CreateCamera()
 {
+    // Set the initial viewport rect
+    viewportArea = IntRect(0, 0, graphics.width, graphics.height);
+    
     SetViewportMode(viewportMode);
     SetActiveViewport(viewports[0]);
 
@@ -202,12 +205,12 @@ void CreateViewportUI()
     {
         viewportUI = UIElement();
         ui.root.AddChild(viewportUI);
-        viewportUI.SetFixedSize(viewportArea.width, viewportArea.height);
-        viewportUI.position = IntVector2(viewportArea.top, viewportArea.left);
-        viewportUI.clipChildren = true;
-        viewportUI.clipBorder = viewportUIClipBorder;
     }
-
+        
+    viewportUI.SetFixedSize(viewportArea.width, viewportArea.height);
+    viewportUI.position = IntVector2(viewportArea.top, viewportArea.left);
+    viewportUI.clipChildren = true;
+    viewportUI.clipBorder = viewportUIClipBorder;
     viewportUI.RemoveAllChildren();
 
     Array<BorderImage@> borders;

+ 22 - 0
Bin/Data/Scripts/Utilities/Sample.as

@@ -1,7 +1,9 @@
 // Common sample initialization as a framework for all samples.
 //    - Create Urho3D logo at screen;
+//    - Set custom window title and icon;
 //    - Create Console and Debug HUD, and use F1 and F2 key to toggle them;
 //    - Toggle rendering options from the keys 1-8;
+//    - Take screenshots with key 9;
 //    - Handle Esc key down to hide Console or exit application;
 
 Sprite@ logoSprite;
@@ -11,6 +13,9 @@ void SampleStart()
     // Create logo
     CreateLogo();
 
+    // Set custom window Title & Icon
+    SetWindowTitleAndIcon();
+
     // Create console and debug HUD
     CreateConsoleAndDebugHud();
 
@@ -59,6 +64,13 @@ void CreateLogo()
     logoSprite.priority = -100;
 }
 
+void SetWindowTitleAndIcon()
+{
+    Image@ icon = cache.GetResource("Image", "Textures/LogoLarge.png");
+    graphics.windowIcon = icon;
+    graphics.windowTitle = "Urho3D Sample";
+}
+
 void CreateConsoleAndDebugHud()
 {
     // Get default style
@@ -158,5 +170,15 @@ void HandleKeyDown(StringHash eventType, VariantMap& eventData)
         // Instancing
         else if (key == '8')
             renderer.dynamicInstancing = !renderer.dynamicInstancing;
+
+        // Take screenshot
+        else if (key == '9')
+        {
+            Image@ screenshot = Image();
+            graphics.TakeScreenShot(screenshot);
+            // Here we save in the Data folder with date and time appended
+            screenshot.SavePNG(fileSystem.programDir + "Data/Screenshot_" +
+                time.timeStamp.Replaced(':', '_').Replaced('.', '_').Replaced(' ', '_') + ".png");
+        }
     }
 }

+ 2 - 2
Docs/AngelScriptAPI.h

@@ -3639,7 +3639,7 @@ bool Build();
 bool Build(const BoundingBox&);
 void DrawDebugGeometry(DebugRenderer, bool);
 void DrawDebugGeometry(bool);
-Vector3 FindNearestPoint();
+Vector3 FindNearestPoint(const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
 Array<Vector3> FindPath(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
 Variant GetAttribute(const String&) const;
 Variant GetAttributeDefault(const String&) const;
@@ -3649,7 +3649,7 @@ Vector3 GetRandomPointInCircle(const Vector3&, float, const Vector3& = Vector3 (
 bool Load(File, bool = false);
 bool LoadXML(const XMLElement&, bool = false);
 void MarkNetworkUpdate() const;
-Vector3 MoveAlongSurface();
+Vector3 MoveAlongSurface(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ), uint = 3);
 Vector3 Raycast(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
 void Remove();
 void RemoveInstanceDefault();

+ 1 - 1
Docs/CMakeLists.txt

@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2013 the Urho3D project.
+# Copyright (c) 2008-2014 the Urho3D project.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal

+ 1 - 0
Docs/GettingStarted.dox

@@ -270,6 +270,7 @@ F2          Toggle debug HUD
 6           Cycle shadow filtering quality
 7           Toggle occlusion culling
 8           Toggle dynamic instancing
+9           Take a screenshot and save to the Data directory
 \endverbatim
 
 

+ 2 - 0
Docs/LuaScriptAPI.dox

@@ -3510,6 +3510,8 @@ Properties:
 
 Methods:
 
+- Image()
+- ~Image()
 - void FlipVertical()
 - bool SaveBMP(const String fileName)
 - bool SavePNG(const String fileName)

+ 2 - 2
Docs/ScriptAPI.dox

@@ -3048,7 +3048,7 @@ Methods:
 - bool Build(const BoundingBox&)
 - void DrawDebugGeometry(DebugRenderer@, bool)
 - void DrawDebugGeometry(bool)
-- Vector3 FindNearestPoint()
+- Vector3 FindNearestPoint(const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ))
 - Vector3[]@ FindPath(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ))
 - Variant GetAttribute(const String&) const
 - Variant GetAttributeDefault(const String&) const
@@ -3058,7 +3058,7 @@ Methods:
 - bool Load(File@, bool = false)
 - bool LoadXML(const XMLElement&, bool = false)
 - void MarkNetworkUpdate() const
-- Vector3 MoveAlongSurface()
+- Vector3 MoveAlongSurface(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ), uint = 3)
 - Vector3 Raycast(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ))
 - void Remove()
 - void RemoveInstanceDefault()

+ 3 - 3
Docs/Urho3D.dox

@@ -100,8 +100,8 @@ Urho3D is greatly inspired by OGRE (http://www.ogre3d.org/) and Horde3D (http://
 
 Urho3D uses the following third-party libraries:
 
-- AngelScript 2.28.0 (http://www.angelcode.com/angelscript/)
-- Bullet 2.81 (http://www.bulletphysics.org/)
+- AngelScript 2.28.1 (http://www.angelcode.com/angelscript/)
+- Bullet 2.82 (http://www.bulletphysics.org/)
 - Civetweb (http://sourceforge.net/projects/civetweb/)
 - FreeType 2.5.0 (http://www.freetype.org/)
 - GLEW 1.9.0 (http://glew.sourceforge.net/)
@@ -131,7 +131,7 @@ NinjaSnowWar sounds by Veli-Pekka T&auml;til&auml;.
 
 \page License License
 
-Copyright (c) 2008-2013 the Urho3D project.
+Copyright (c) 2008-2014 the Urho3D project.
 
 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 

+ 1 - 1
License.txt

@@ -1,7 +1,7 @@
 Urho3D license
 --------------
 
-Copyright (c) 2008-2013 the Urho3D project.
+Copyright (c) 2008-2014 the Urho3D project.
 
 Permission is hereby granted, free of charge, to any person obtaining a
 copy of this software and associated documentation files (the "Software"),

+ 2 - 2
Readme.txt

@@ -67,8 +67,8 @@ Urho3D is greatly inspired by OGRE (http://www.ogre3d.org) and Horde3D
   http://timothylottes.blogspot.com/2011/04/nvidia-fxaa-ii-for-console.html
 
 Urho3D uses the following third-party libraries:
-- AngelScript 2.28.0 (http://www.angelcode.com/angelscript/)
-- Bullet 2.81 (http://www.bulletphysics.org/)
+- AngelScript 2.28.1 (http://www.angelcode.com/angelscript/)
+- Bullet 2.82 (http://www.bulletphysics.org/)
 - Civetweb (http://sourceforge.net/projects/civetweb/)
 - FreeType 2.5.0 (http://www.freetype.org/)
 - GLEW 1.9.0 (http://glew.sourceforge.net/)

+ 4 - 4
Source/CMake/Modules/Urho3D-CMake-magic.cmake

@@ -219,13 +219,13 @@ else ()
             set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
             if (ENABLE_SSE)
                 if (NOT WIN32)
-                    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse")
-                    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse")
+                    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse -mfpmath=sse")
+                    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -mfpmath=sse")
                 else ()
                     message (STATUS "Using SSE2 instead of SSE because SSE fails on some Windows ports of GCC")
                     message (STATUS "Disable SSE with the CMake option -DENABLE_SSE=0 if this is not desired")
-                    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2")
-                    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2")
+                    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -mfpmath=sse")
+                    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2 -mfpmath=sse")
                 endif ()
             endif ()
         endif ()

+ 1 - 1
Source/CMakeLists.txt

@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2013 the Urho3D project.
+# Copyright (c) 2008-2014 the Urho3D project.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/Audio.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/Audio.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/AudioDefs.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/CMakeLists.txt

@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2013 the Urho3D project.
+# Copyright (c) 2008-2014 the Urho3D project.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/Sound.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/Sound.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/SoundListener.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/SoundListener.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/SoundSource.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/SoundSource.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/SoundSource3D.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Audio/SoundSource3D.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/CMakeLists.txt

@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2013 the Urho3D project.
+# Copyright (c) 2008-2014 the Urho3D project.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Allocator.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Allocator.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/ArrayPtr.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/CMakeLists.txt

@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2013 the Urho3D project.
+# Copyright (c) 2008-2014 the Urho3D project.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/DebugNew.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Hash.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/HashBase.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/HashBase.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/HashMap.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/HashSet.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/HashTable.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/LinkedList.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/List.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/ListBase.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Pair.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Ptr.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/RefCounted.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/RefCounted.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Sort.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Str.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Str.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Swap.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Swap.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/Vector.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/VectorBase.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Container/VectorBase.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Attribute.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/CMakeLists.txt

@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2013 the Urho3D project.
+# Copyright (c) 2008-2014 the Urho3D project.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Condition.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Condition.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Context.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Context.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/CoreEvents.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Main.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/MiniDump.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/MiniDump.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Mutex.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Mutex.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Object.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Object.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/ProcessUtils.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/ProcessUtils.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Profiler.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Profiler.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/StringUtils.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/StringUtils.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Thread.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Thread.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Timer.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Timer.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Variant.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/Variant.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/WorkQueue.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Core/WorkQueue.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/Application.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/Application.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/CMakeLists.txt

@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2013 the Urho3D project.
+# Copyright (c) 2008-2014 the Urho3D project.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/Console.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/Console.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/DebugHud.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/DebugHud.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/Engine.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/Engine.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Engine/EngineEvents.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Graphics/AnimatedModel.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Graphics/AnimatedModel.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Graphics/Animation.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Graphics/Animation.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Graphics/AnimationController.cpp

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Source/Engine/Graphics/AnimationController.h

@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2008-2013 the Urho3D project.
+// Copyright (c) 2008-2014 the Urho3D project.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to deal

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott