Revision: 28844
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28844
Author:   nicks
Date:     2010-05-19 03:01:21 +0200 (Wed, 19 May 2010)

Log Message:
-----------
added RecastNavigation library as extern project

Modified Paths:
--------------
    branches/soc-2010-nicks/projectfiles_vc9/blender/blender.sln

Added Paths:
-----------
    branches/soc-2010-nicks/extern/recastnavigation/
    branches/soc-2010-nicks/extern/recastnavigation/Detour/
    branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourCommon.h
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourDebugDraw.h
    branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourNode.h
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourStatNavMesh.h
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourStatNavMeshBuilder.h
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourTileNavMesh.h
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourTileNavMeshBuilder.h
    branches/soc-2010-nicks/extern/recastnavigation/Detour/Source/
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Source/DetourCommon.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Source/DetourDebugDraw.cpp
    branches/soc-2010-nicks/extern/recastnavigation/Detour/Source/DetourNode.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Source/DetourStatNavMesh.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Source/DetourStatNavMeshBuilder.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Source/DetourTileNavMesh.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Detour/Source/DetourTileNavMeshBuilder.cpp
    branches/soc-2010-nicks/extern/recastnavigation/License.txt
    branches/soc-2010-nicks/extern/recastnavigation/Readme.txt
    branches/soc-2010-nicks/extern/recastnavigation/Recast/
    branches/soc-2010-nicks/extern/recastnavigation/Recast/Include/
    branches/soc-2010-nicks/extern/recastnavigation/Recast/Include/Recast.h
    
branches/soc-2010-nicks/extern/recastnavigation/Recast/Include/RecastDebugDraw.h
    branches/soc-2010-nicks/extern/recastnavigation/Recast/Include/RecastLog.h
    branches/soc-2010-nicks/extern/recastnavigation/Recast/Include/RecastTimer.h
    branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/
    branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/Recast.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastContour.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastDebugDraw.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastFilter.cpp
    branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastLog.cpp
    branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastMesh.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastMeshDetail.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastRasterization.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastRegion.cpp
    
branches/soc-2010-nicks/extern/recastnavigation/Recast/Source/RecastTimer.cpp
    branches/soc-2010-nicks/extern/recastnavigation/make/
    branches/soc-2010-nicks/extern/recastnavigation/make/msvc_9_0/
    
branches/soc-2010-nicks/extern/recastnavigation/make/msvc_9_0/recastnavigation.vcproj

Added: 
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourCommon.h
===================================================================
--- 
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourCommon.h   
                            (rev 0)
+++ 
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourCommon.h   
    2010-05-19 01:01:21 UTC (rev 28844)
@@ -0,0 +1,167 @@
+//
+// Copyright (c) 2009 Mikko Mononen me...@inside.org
+//
+// This software is provided 'as-is', without any express or implied
+// warranty.  In no event will the authors be held liable for any damages
+// arising from the use of this software.
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+// 1. The origin of this software must not be misrepresented; you must not
+//    claim that you wrote the original software. If you use this software
+//    in a product, an acknowledgment in the product documentation would be
+//    appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//    misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+//
+
+#ifndef DETOURCOMMON_H
+#define DETOURCOMMON_H
+
+//////////////////////////////////////////////////////////////////////////////////////////
+
+template<class T> inline void swap(T& a, T& b) { T t = a; a = b; b = t; }
+template<class T> inline T min(T a, T b) { return a < b ? a : b; }
+template<class T> inline T max(T a, T b) { return a > b ? a : b; }
+template<class T> inline T abs(T a) { return a < 0 ? -a : a; }
+template<class T> inline T sqr(T a) { return a*a; }
+template<class T> inline T clamp(T v, T mn, T mx) { return v < mn ? mn : (v > 
mx ? mx : v); }
+
+inline void vcross(float* dest, const float* v1, const float* v2)
+{
+       dest[0] = v1[1]*v2[2] - v1[2]*v2[1];
+       dest[1] = v1[2]*v2[0] - v1[0]*v2[2];
+       dest[2] = v1[0]*v2[1] - v1[1]*v2[0]; 
+}
+
+inline float vdot(const float* v1, const float* v2)
+{
+       return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
+}
+
+inline void vmad(float* dest, const float* v1, const float* v2, const float s)
+{
+       dest[0] = v1[0]+v2[0]*s;
+       dest[1] = v1[1]+v2[1]*s;
+       dest[2] = v1[2]+v2[2]*s;
+}
+
+inline void vadd(float* dest, const float* v1, const float* v2)
+{
+       dest[0] = v1[0]+v2[0];
+       dest[1] = v1[1]+v2[1];
+       dest[2] = v1[2]+v2[2];
+}
+
+inline void vsub(float* dest, const float* v1, const float* v2)
+{
+       dest[0] = v1[0]-v2[0];
+       dest[1] = v1[1]-v2[1];
+       dest[2] = v1[2]-v2[2];
+}
+
+inline void vmin(float* mn, const float* v)
+{
+       mn[0] = min(mn[0], v[0]);
+       mn[1] = min(mn[1], v[1]);
+       mn[2] = min(mn[2], v[2]);
+}
+
+inline void vmax(float* mx, const float* v)
+{
+       mx[0] = max(mx[0], v[0]);
+       mx[1] = max(mx[1], v[1]);
+       mx[2] = max(mx[2], v[2]);
+}
+
+inline void vcopy(float* dest, const float* a)
+{
+       dest[0] = a[0];
+       dest[1] = a[1];
+       dest[2] = a[2];
+}
+
+inline float vdist(const float* v1, const float* v2)
+{
+       float dx = v2[0] - v1[0];
+       float dy = v2[1] - v1[1];
+       float dz = v2[2] - v1[2];
+       return sqrtf(dx*dx + dy*dy + dz*dz);
+}
+
+inline float vdistSqr(const float* v1, const float* v2)
+{
+       float dx = v2[0] - v1[0];
+       float dy = v2[1] - v1[1];
+       float dz = v2[2] - v1[2];
+       return dx*dx + dy*dy + dz*dz;
+}
+
+inline void vnormalize(float* v)
+{
+       float d = 1.0f / sqrtf(sqr(v[0]) + sqr(v[1]) + sqr(v[2]));
+       v[0] *= d;
+       v[1] *= d;
+       v[2] *= d;
+}
+
+inline bool vequal(const float* p0, const float* p1)
+{
+       static const float thr = sqr(1.0f/16384.0f);
+       const float d = vdistSqr(p0, p1);
+       return d < thr;
+}
+
+inline int nextPow2(int v)
+{
+       v--;
+       v |= v >> 1;
+       v |= v >> 2;
+       v |= v >> 4;
+       v |= v >> 8;
+       v |= v >> 16;
+       v++;
+       return v;
+}
+
+inline float vdot2D(const float* u, const float* v)
+{
+       return u[0]*v[0] + u[2]*v[2];
+}
+
+inline float vperp2D(const float* u, const float* v)
+{
+       return u[2]*v[0] - u[0]*v[2];
+}
+
+inline float triArea2D(const float* a, const float* b, const float* c)
+{
+       return ((b[0]*a[2] - a[0]*b[2]) + (c[0]*b[2] - b[0]*c[2]) + (a[0]*c[2] 
- c[0]*a[2])) * 0.5f;
+}
+
+inline bool checkOverlapBox(const unsigned short amin[3], const unsigned short 
amax[3],
+                                                       const unsigned short 
bmin[3], const unsigned short bmax[3])
+{
+       bool overlap = true;
+       overlap = (amin[0] > bmax[0] || amax[0] < bmin[0]) ? false : overlap;
+       overlap = (amin[1] > bmax[1] || amax[1] < bmin[1]) ? false : overlap;
+       overlap = (amin[2] > bmax[2] || amax[2] < bmin[2]) ? false : overlap;
+       return overlap;
+}
+
+void closestPtPointTriangle(float* closest, const float* p,
+                                                       const float* a, const 
float* b, const float* c);
+
+bool closestHeightPointTriangle(const float* p, const float* a, const float* 
b, const float* c, float& h);
+
+bool intersectSegmentPoly2D(const float* p0, const float* p1,
+                                                       const float* verts, int 
nverts,
+                                                       float& tmin, float& 
tmax,
+                                                       int& segMin, int& 
segMax);
+
+float distancePtSegSqr2D(const float* pt, const float* p, const float* q, 
float& t);
+
+void calcPolyCenter(float* tc, const unsigned short* idx, int nidx, const 
float* verts);
+
+#endif // DETOURCOMMON_H
\ No newline at end of file

Added: 
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourDebugDraw.h
===================================================================
--- 
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourDebugDraw.h
                            (rev 0)
+++ 
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourDebugDraw.h
    2010-05-19 01:01:21 UTC (rev 28844)
@@ -0,0 +1,32 @@
+//
+// Copyright (c) 2009 Mikko Mononen me...@inside.org
+//
+// This software is provided 'as-is', without any express or implied
+// warranty.  In no event will the authors be held liable for any damages
+// arising from the use of this software.
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+// 1. The origin of this software must not be misrepresented; you must not
+//    claim that you wrote the original software. If you use this software
+//    in a product, an acknowledgment in the product documentation would be
+//    appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//    misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+//
+
+#ifndef DETOURDEBUGDRAW_H
+#define DETOURDEBUGDRAW_H
+
+#include "DetourStatNavMesh.h"
+#include "DetourTileNavMesh.h"
+
+void dtDebugDrawStatNavMeshPoly(const dtStatNavMesh* mesh, dtStatPolyRef ref, 
const float* col);
+void dtDebugDrawStatNavMeshBVTree(const dtStatNavMesh* mesh);
+void dtDebugDrawStatNavMesh(const dtStatNavMesh* mesh, bool drawClosedList = 
false);
+
+void dtDebugDrawTiledNavMesh(const dtTiledNavMesh* mesh);
+void dtDebugDrawTiledNavMeshPoly(const dtTiledNavMesh* mesh, dtTilePolyRef 
ref, const float* col);
+
+#endif // DETOURDEBUGDRAW_H
\ No newline at end of file

Added: 
branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourNode.h
===================================================================
--- branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourNode.h 
                        (rev 0)
+++ branches/soc-2010-nicks/extern/recastnavigation/Detour/Include/DetourNode.h 
2010-05-19 01:01:21 UTC (rev 28844)
@@ -0,0 +1,149 @@
+//
+// Copyright (c) 2009 Mikko Mononen me...@inside.org
+//
+// This software is provided 'as-is', without any express or implied
+// warranty.  In no event will the authors be held liable for any damages
+// arising from the use of this software.
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+// 1. The origin of this software must not be misrepresented; you must not
+//    claim that you wrote the original software. If you use this software
+//    in a product, an acknowledgment in the product documentation would be
+//    appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//    misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+//
+
+#ifndef DETOURNODE_H
+#define DETOURNODE_H
+
+enum dtNodeFlags
+{
+       DT_NODE_OPEN = 0x01,
+       DT_NODE_CLOSED = 0x02,
+};
+
+struct dtNode
+{
+       float cost;
+       float total;
+       unsigned int id;
+       unsigned int pidx : 30;
+       unsigned int flags : 2;
+};
+
+class dtNodePool
+{
+public:
+       dtNodePool(int maxNodes, int hashSize);
+       ~dtNodePool();
+       inline void operator=(const dtNodePool&) {}
+       void clear();
+       dtNode* getNode(unsigned int id);
+       const dtNode* findNode(unsigned int id) const;
+
+       inline unsigned int getNodeIdx(const dtNode* node) const
+       {
+               if (!node) return 0;
+               return (unsigned int)(node - m_nodes)+1;
+       }
+
+       inline dtNode* getNodeAtIdx(unsigned int idx)
+       {
+               if (!idx) return 0;
+               return &m_nodes[idx-1];
+       }
+       
+       inline int getMemUsed() const
+       {
+               return sizeof(*this) +
+               sizeof(dtNode)*m_maxNodes +
+               sizeof(unsigned short)*m_maxNodes +
+               sizeof(unsigned short)*m_hashSize;
+       }
+       
+private:
+       inline unsigned int hashint(unsigned int a) const
+       {
+               a += ~(a<<15);
+               a ^=  (a>>10);
+               a +=  (a<<3);
+               a ^=  (a>>6);
+               a += ~(a<<11);
+               a ^=  (a>>16);
+               return a;
+       }
+       
+       dtNode* m_nodes;
+       unsigned short* m_first;
+       unsigned short* m_next;
+       const int m_maxNodes;
+       const int m_hashSize;
+       int m_nodeCount;
+};
+
+class dtNodeQueue
+{
+public:
+       dtNodeQueue(int n);
+       ~dtNodeQueue();
+       inline void operator=(dtNodeQueue&) {}
+       
+       inline void clear()
+       {
+               m_size = 0;
+       }
+       
+       inline dtNode* top()
+       {
+               return m_heap[0];
+       }
+       
+       inline dtNode* pop()
+       {
+               dtNode* result = m_heap[0];
+               m_size--;
+               trickleDown(0, m_heap[m_size]);
+               return result;
+       }
+       
+       inline void push(dtNode* node)
+       {
+               m_size++;
+               bubbleUp(m_size-1, node);
+       }
+       
+       inline void modify(dtNode* node)
+       {
+               for (int i = 0; i < m_size; ++i)
+               {
+                       if (m_heap[i] == node)
+                       {
+                               bubbleUp(i, node);
+                               return;
+                       }
+               }
+       }
+       
+       inline bool empty() const { return m_size == 0; }
+       
+       inline int getMemUsed() const
+       {
+               return sizeof(*this) +
+               sizeof(dtNode*)*(m_capacity+1);
+       }
+       
+       
+private:

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to