p3recastnavigation

This is what I get from running test.py (after building the pyd again):

C:\p3recastnavigation-git\samples\python>ppython test.py
Known pipe types:
  wglGraphicsPipe
(all display modules loaded.)
create a nav mesh manager
RNNavMeshManager::RNNavMeshManager: creating the singleton manager.
get a sceneNP as owner model
create a nav mesh and attach it to render
mandatory: set sceneNP as owner of navMesh
setup the nav mesh with scene as its owner object
RNNavMesh::setup
        GeomNodes number: 2
         Geoms number: 1
           Vertices number: 2640 - Start index: 0
          Primitives number: 1
        ---
           Primitive type: GeomTriangles - number: 996
           Decomposed Primitive type: GeomTriangles - number: 996
         Geoms number: 1
           Vertices number: 1295 - Start index: 2640
          Primitives number: 1
        ---
           Primitive type: GeomTriangles - number: 616
           Decomposed Primitive type: GeomTriangles - number: 616
Build log nav_test.egg:
Building navigation:
 - 305 x 258 cells
 - 3.9K verts, 1.6K tris
Build Times
- Rasterize:               26.38ms (25.4%)
- Build Compact:           10.40ms (10.0%)
- Filter Border:           9.88ms  (9.5%)
- Filter Walkable:         1.50ms  (1.4%)
- Erode Area:              6.41ms  (6.2%)
- Median Area:             0.00ms  (0.0%)
- Mark Box Area:           0.00ms  (0.0%)
- Mark Convex Area:        0.00ms  (0.0%)
- Mark Cylinder Area:      0.00ms  (0.0%)
- Build Distance Field:    8.89ms  (8.6%)
    - Distance:            5.71ms  (5.5%)
    - Blur:                3.14ms  (3.0%)
- Build Regions:           23.94ms (23.0%)
    - Watershed:           21.85ms (21.0%)
      - Expand:            15.22ms (14.6%)
      - Find Basins:       1.16ms  (1.1%)
    - Filter:              1.83ms  (1.8%)
- Build Layers:            0.00ms  (0.0%)
- Build Contours:          4.24ms  (4.1%)
    - Trace:               3.07ms  (3.0%)
    - Simplify:            0.52ms  (0.5%)
- Build Polymesh:          1.51ms  (1.4%)
- Build Polymesh Detail:   8.72ms  (8.4%)
- Merge Polymeshes:        0.00ms  (0.0%)
- Merge Polymesh Details:  0.00ms  (0.0%)
=== TOTAL:                 103.87ms
>> Polymesh: 352 vertices  155 polygons
reparent navMeshNP to a reference NodePath
get the agent model
create the crowd agent and set the position
attach the agent model to crowdAgent
attach the crowd agent to the nav mesh
start the path finding default update task
enable debug draw

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

But after commenting out navMesh.enable_debug_drawing(app.camera) and then navMesh.toggle_debug_drawing(True) - IT WORKS!

I’ve yet to say how good it is or is it usable for my own devious purposes, I hope I can get it to return a list of positions (or nods with positions) and do the moving myself - if not I may have a feature request :wink:

I have one more, important question - Are you dead set on a GPL license? A MIT/BSD license would perhaps allow an integration with the p3d sdk - if that’s what you want, and the style is coherent with the p3d style guide (if there is such a thing)… but that’s a topic for rdb and other core developers, I’m just repeating what I read on IRC :mrgreen:

I’m happy that it works.
Because the debug draw gives this problem should be investigated at c++ level. It could help to make a debug session of main.cpp appropriately added with the library and support sources.

Regarding the issue of the license, which is at the moment secondary, it must be said that the GPL covers only the porting code (i.e. not the most important part which is, on the contrary, the recastnavigation library that has its own license) and I shall certainly pass to LGPLv3, since that code is more like a library than an application, so any use with closed code can always be done as an external module.

sorry but I have not answered your request about a “list of positions”. What do you mean exactly?
I’ll note that the library makes it possible to extrapolate many path information (although many relate to operating internal characteristics), but if you specify best I can see if this can be achieved.

There are some situations when you don’t want to move a object from point A to point B and there could be situations where you want that object to move at a specific speed or in some special way.

For example if you have a RTS game, then you might have some sort of harvester unit that should go to the nearest ore depot, harvest some material then go to the nearest refinery. There could be more then one ore depot and more then one refinery and to go to the right one I’d need to know the length of the path that would take the harvester to the closes target. The length of the path may have nothing to do with the distance in a straight line. I’d need to know what’s the path to ore depot A and ore depot B before the harvester ever starts moving.

In an action/rpg game the movement speed of a character can change quite a bit. A character can walk, run, sneak, he can use some spell to move faster or pick up some loot that will ‘encumber’ him and make him move slower. I may need to change the speed he moves (and turns) on a per-frame basis.

My character can be something else then a typical humanoid. It could be a sphere controlled by some physique engine, then it would be moved by applying a torque - an AI that moves a node by …well moving a node (set_pos) would be useless in this case.

In a game where there’s any kind of shooting, and the projectiles don’t travel instantaneous, the AI doing the shooting would be much better at shooting if it would know where a moving target will be and for that you’d need to know the path it is travelling on.

So if my level looks like this:

Where the white is a walkable area the black is some sort of wall the red and green points are my start and destination points, and the blue line is that path.

nav_mesh = some_navmesh_creating_function_or_class_that_I_do_not_know_the_name_of('my_level.egg')
start=Point3(xa, ya, za)
end=Point3(x, yb, zb)

path=nav_mesh.find_path(start, end) #returns [(xa, ya, za), (x1, y1, z1), (x2, y2, z2), (x3, y3, z3), (xb, yb, zb)]

I will try to see how to solve these requests.
At the same time you can visit the recastnavigation forum (github.com/recastnavigation/rec … gation.git and running the command in the recastnavigation folder:

doxygen Doxyfile

Maybe you can give some inspiration and ideas to solve these and perhaps other matters of general interest.
I do the same as being a user of the library and not a developer of it :wink:

I found dtNavMeshQuery.findStraightPath(). One of its parameters is:

If I understand things right that’s the thing I’m most interested in.

I think you’d first need to run dtNavMeshQuery.findPath() to get “An ordered list of polygon references representing the path”, but findPath() needs “The refrence id of the start/end polygon”, so I’d use findNearestPoly() to get dtPolyRef for the start and end points.

Thanks, I’ll investigate to that effect.
Meanwhile I committed in test.py a pattern to change the agent’s speed.

I just implemented two queries on path find

RNNavmesh::get_path_find_follow()

that returns a list of points, and

RNNavmesh::get_path_find_straight()

that returns a list of Pair(point, flag)
I have included an example of use in test.py.

Added more queries:

LPoint3f RNNavMesh::check_walkability()
float RNNavMesh::get_distance_to_wall()

Unfortunately I’m having some problems compiling it again. Here’s the error log:

Process error:
Microsoft (R) Build Engine version 4.6.1038.0
[Microsoft .NET Framework, version 4.0.30319.42000]
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 5/28/2016 16:35:15.
     1>Project "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" on node 1 (default targets).
     1>Project "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (1) is building "C:\p3recastnavigation-git\w
in_amd64_py27\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
     2>PrepareForBuild:
         Creating directory "x64\RelWithDebInfo\ZERO_CHECK\".
       InitializeBuildStatus:
         Creating "x64\RelWithDebInfo\ZERO_CHECK\ZERO_CHECK.unsuccessfulbuild" because "AlwaysCreate" was specified.
       CustomBuild:
         Checking Build System
         CMake does not need to re-run because C:/p3recastnavigation-git/win_amd64_py27/CMakeFiles/generate.stamp is up-
to-date.
       FinalizeBuildStatus:
         Deleting file "x64\RelWithDebInfo\ZERO_CHECK\ZERO_CHECK.unsuccessfulbuild".
         Touching "x64\RelWithDebInfo\ZERO_CHECK\ZERO_CHECK.lastbuildstate".
     2>Done Building Project "C:\p3recastnavigation-git\win_amd64_py27\ZERO_CHECK.vcxproj" (default targets).
     1>Project "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (1) is building "C:\p3recastnavigation-git\w
in_amd64_py27\p3recastnavigation.vcxproj" (3) on node 2 (default targets).
     3>PrepareForBuild:
         Creating directory "p3recastnavigation.dir\RelWithDebInfo\".
         Creating directory "C:\p3recastnavigation-git\win_amd64_py27\RelWithDebInfo\".
       InitializeBuildStatus:
         Creating "p3recastnavigation.dir\RelWithDebInfo\p3recastnavigation.unsuccessfulbuild" because "AlwaysCreate" wa
s specified.
       CustomBuild:
         Building Custom Rule C:/p3recastnavigation-git/CMakeLists.txt
         CMake does not need to re-run because C:\p3recastnavigation-git\win_amd64_py27\CMakeFiles\generate.stamp is up-
to-date.
       ClCompile:
         c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /I"C:\Panda3D-1.10.0-x64\include
" /I"C:\Panda3D-1.10.0-x64\python\include" /I"C:\p3recastnavigation-git\source" /I"C:\p3recastnavigation-git\source\libr
ary" /I"C:\p3recastnavigation-git\source\support" /Zi /nologo /W3 /WX- /MP /Ox /Ob2 /Oi /Ot /Oy /GL /D WIN32 /D _WINDOWS
 /D WIN64_VC /D WIN64 /D FORCE_INLINING /D NDEBUG /D RN_DEBUG /D WIN32_VC /D WIN32 /D _HAS_EXCEPTIONS=0 /D PB_MODULE=p3r
ecastnavigation /D PB_CFG_MODULE=p3recastnavigation /D "CMAKE_INTDIR=\"RelWithDebInfo\"" /D p3recastnavigation_EXPORTS /
D _WINDLL /D _MBCS /Gm- /EHsc /MD /Zp16 /GS- /fp:fast /Zc:wchar_t /Zc:forScope /GR- /Fo"p3recastnavigation.dir\RelWithDe
bInfo\\" /Fd"p3recastnavigation.dir\RelWithDebInfo\vcWindows7.1SDK.pdb" /Gd /TP /wd4996 /wd4275 /wd4267 /wd4101 /wd4273
/errorReport:queue ..\source\interrogate_module.cpp ..\source\interrogate_wrapper.cpp ..\source\config_module.cxx ..\sou
rce\recastnavigation_composite1.cxx ..\source\recastnavigation_composite2.cxx ..\source\recastnavigation_composite3.cxx
..\source\recastnavigation_composite4.cxx ..\source\rnCrowdAgent.cxx ..\source\rnNavMesh.cxx ..\source\rnNavMeshManager.
cxx ..\source\rnTools.cxx  /favor:blend /bigobj /LTCG /Zm300 /GM-
     3>cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
         interrogate_module.cpp
         interrogate_wrapper.cpp
         config_module.cxx
         recastnavigation_composite1.cxx
     3>c:\p3recastnavigation-git\source\library/DetourNavMeshQuery.cpp(713): warning C4351: new behavior: elements of ar
ray 'dtFindNearestPolyQuery::m_nearestPoint' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3rec
astnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\library/Recast.cpp(89): warning C4351: new behavior: elements of array 'rcHeight
field::bmin' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\library/Recast.cpp(89): warning C4351: new behavior: elements of array 'rcHeight
field::bmax' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
         recastnavigation_composite2.cxx
         recastnavigation_composite3.cxx
         recastnavigation_composite4.cxx
         rnCrowdAgent.cxx
     3>c:\p3recastnavigation-git\source\support/DebugInterfaces.cpp(486): warning C4541: 'dynamic_cast' used on polymorp
hic type 'std::basic_ostream<_Elem,_Traits>' with /GR-; unpredictable behavior may result [C:\p3recastnavigation-git\win
_amd64_py27\p3recastnavigation.vcxproj]
                 with
                 [
                     _Elem=char,
                     _Traits=std::char_traits<char>
                 ]
     3>..\source\rnCrowdAgent.cxx(452): error C2065: 'uint8_t' : undeclared identifier [C:\p3recastnavigation-git\win_am
d64_py27\p3recastnavigation.vcxproj]
     3>..\source\rnCrowdAgent.cxx(452): error C2146: syntax error : missing ')' before identifier 'mMovType' [C:\p3recas
tnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
     3>..\source\rnCrowdAgent.cxx(452): error C2059: syntax error : ')' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         rnNavMesh.cxx
         rnNavMeshManager.cxx
     3>..\source\rnNavMesh.cxx(1994): error C2065: 'uint8_t' : undeclared identifier [C:\p3recastnavigation-git\win_amd6
4_py27\p3recastnavigation.vcxproj]
     3>..\source\rnNavMesh.cxx(1994): error C2146: syntax error : missing ')' before identifier 'mNavMeshTypeEnum' [C:\p
3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
     3>..\source\rnNavMesh.cxx(1994): error C2059: syntax error : ')' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
         rnTools.cxx
     3>..\source\rnTools.cxx(194): warning C4800: 'PN_stdfloat' : forcing value to bool 'true' or 'false' (performance w
arning) [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
     3>Done Building Project "C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj" (default targets) --
FAILED.
     1>Done Building Project "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (default targets) -- FAILED.

Build FAILED.

       "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (default target) (1) ->
       "C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj" (default target) (3) ->
       (ClCompile target) ->
         cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3re
castnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3re
castnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3re
castnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         c:\p3recastnavigation-git\source\library/DetourNavMeshQuery.cpp(713): warning C4351: new behavior: elements of
array 'dtFindNearestPolyQuery::m_nearestPoint' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3r
ecastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\library/Recast.cpp(89): warning C4351: new behavior: elements of array 'rcHeig
htfield::bmin' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\library/Recast.cpp(89): warning C4351: new behavior: elements of array 'rcHeig
htfield::bmax' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\support/DebugInterfaces.cpp(486): warning C4541: 'dynamic_cast' used on polymo
rphic type 'std::basic_ostream<_Elem,_Traits>' with /GR-; unpredictable behavior may result [C:\p3recastnavigation-git\w
in_amd64_py27\p3recastnavigation.vcxproj]
         ..\source\rnTools.cxx(194): warning C4800: 'PN_stdfloat' : forcing value to bool 'true' or 'false' (performance
 warning) [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]


       "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (default target) (1) ->
       "C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj" (default target) (3) ->
       (ClCompile target) ->
         ..\source\rnCrowdAgent.cxx(452): error C2065: 'uint8_t' : undeclared identifier [C:\p3recastnavigation-git\win_
amd64_py27\p3recastnavigation.vcxproj]
         ..\source\rnCrowdAgent.cxx(452): error C2146: syntax error : missing ')' before identifier 'mMovType' [C:\p3rec
astnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
         ..\source\rnCrowdAgent.cxx(452): error C2059: syntax error : ')' [C:\p3recastnavigation-git\win_amd64_py27\p3re
castnavigation.vcxproj]
         ..\source\rnNavMesh.cxx(1994): error C2065: 'uint8_t' : undeclared identifier [C:\p3recastnavigation-git\win_am
d64_py27\p3recastnavigation.vcxproj]
         ..\source\rnNavMesh.cxx(1994): error C2146: syntax error : missing ')' before identifier 'mNavMeshTypeEnum' [C:
\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
         ..\source\rnNavMesh.cxx(1994): error C2059: syntax error : ')' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]

    14 Warning(s)
    6 Error(s)

Time Elapsed 00:00:39.84



[!] FATAL ERROR: Subprocess returned no-zero statuscode!

The error:

... error C2065: 'uint8_t': undeclared identifier ...

is due to the fact that in the panda source tree was dropped support for PN_int/uint, as you can see in the comment of commit 18874fa151456d35c26cd869de03493cccffdd22:
"Replace PN_int/uint types with stdint.h types, since all compilers we support have them.
Plus, we had queues That already relied on them being available anyway.
"

Consequently I also had to update p3recastnavigation code.
The header (see https://msdn.microsoft.com/en-us/library/hh874765(v=vs.110).aspx), which is equivalent to <stdint.h>, is supported only from MSVC2012 and higher.
So you could:

  • try to insert #include on top of both rnCrowdAgent.cxx and rnNavMesh.cxx (this shouldn’t work), or
  • try to put the file pstdint.h (download from http://www.azillionmonkeys.com/qed/pstdint.h) in the support folder and insert on top of the previous files (inside the CPPPARSER conditional):
#ifndef CPPPARSER
...
#include "support/pstdint.h"
...
#endif //CPPPARSER
  • upgrade your compiler

Please let me know the results of first 2 cases, so, if possible, I can introduce support for older ms compilers.

BTW. note that I am currently doing a code refactoring (on branch refactor) to support multiple nav meshes for each model, to add new methods and change some others, so some incompatibilities will be introduced. In the coming days I hope to do the merge in the master branch (and if I can with some additional documentation).

Since You described the first method as ‘this shouldn’t work’, I started from point #2

I’ve downloaded pstdint.h, put it in the support folder, and changed the rnCrowdAgent.cxx and rnNavMesh.cxx files as you described. I think that did it.

The first attempt failed with 2 errors (sorry didn’t write them down), but then I pulled all the recent changes from the git and tried again - and it worked. I think I override the changes that I made earlier to CMakeLists.txt, but it could also be that I tried with optimize 4 the first time and optimize 3 the second time… or some fix that you put in recently.

Both test.py and main.py samples work :smiley:

I’m back at having problems :mrgreen:

When I tried to compile (still on win10 x64, recent panda build from the deploy-ng branch) I got some errors:
gist.github.com/wezu/29158abbe6 … 274f001f6c

Hi, from the error reported it would seem that your compiler doesn’t supports variable length arrays.
I committed some changes that should solve this problem.
Try to build now and let me know.
bye

Still some problems :cry: :

PS C:\p3recastnavigation-git> ppython build.py --clean
Cleaning up output directory ..
Creating directory C:\p3recastnavigation-git\scripts\..\win_amd64_py27
Executing command:  cmake C:/p3recastnavigation-git -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPYTHON_EXECUTABLE:STRING=C:\Pand
a3D-1.10.0-x64\python\ppython.exe -DPROJECT_NAME:STRING=p3recastnavigation -DINTERROGATE_LIB:STRING=libp3interrogatedb -
GVisual Studio 10 2010 Win64 -DPYTHONVER:STRING=27 -DIGATE_VERBOSE=0 -DOPTIMIZE=4

Process output:
-- Found Windows SDK v7.1: C:\Program Files\Microsoft SDKs\Windows\v7.1\
-- The C compiler identification is MSVC 16.0.40219.1
-- The CXX compiler identification is MSVC 16.0.40219.1
-- Check for working C compiler using: Visual Studio 10 2010 Win64
-- Check for working C compiler using: Visual Studio 10 2010 Win64 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 10 2010 Win64
-- Check for working CXX compiler using: Visual Studio 10 2010 Win64 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/p3recastnavigation-git/win_amd64_py27

Executing command:  cmake --build . --config RelWithDebInfo -- /m

Process error:
Microsoft (R) Build Engine version 4.6.1038.0
[Microsoft .NET Framework, version 4.0.30319.42000]
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 1/27/2017 19:37:10.
     1>Project "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" on node 1 (default targets).
     1>Project "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (1) is building "C:\p3recastnavigation-git\w
in_amd64_py27\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
     2>PrepareForBuild:
         Creating directory "x64\RelWithDebInfo\ZERO_CHECK\".
       InitializeBuildStatus:
         Creating "x64\RelWithDebInfo\ZERO_CHECK\ZERO_CHECK.unsuccessfulbuild" because "AlwaysCreate" was specified.
       CustomBuild:
         Checking Build System
         CMake does not need to re-run because C:/p3recastnavigation-git/win_amd64_py27/CMakeFiles/generate.stamp is up-
to-date.
       FinalizeBuildStatus:
         Deleting file "x64\RelWithDebInfo\ZERO_CHECK\ZERO_CHECK.unsuccessfulbuild".
         Touching "x64\RelWithDebInfo\ZERO_CHECK\ZERO_CHECK.lastbuildstate".
     2>Done Building Project "C:\p3recastnavigation-git\win_amd64_py27\ZERO_CHECK.vcxproj" (default targets).
     1>Project "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (1) is building "C:\p3recastnavigation-git\w
in_amd64_py27\p3recastnavigation.vcxproj" (3) on node 2 (default targets).
     3>PrepareForBuild:
         Creating directory "p3recastnavigation.dir\RelWithDebInfo\".
         Creating directory "C:\p3recastnavigation-git\win_amd64_py27\RelWithDebInfo\".
       InitializeBuildStatus:
         Creating "p3recastnavigation.dir\RelWithDebInfo\p3recastnavigation.unsuccessfulbuild" because "AlwaysCreate" wa
s specified.
       CustomBuild:
         Building Custom Rule C:/p3recastnavigation-git/CMakeLists.txt
         CMake does not need to re-run because C:\p3recastnavigation-git\win_amd64_py27\CMakeFiles\generate.stamp is up-
to-date.
       ClCompile:
         c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /I"C:\Panda3D-1.10.0-x64\include
" /I"C:\Panda3D-1.10.0-x64\python\include" /I"C:\p3recastnavigation-git\source" /I"C:\p3recastnavigation-git\source\libr
ary" /I"C:\p3recastnavigation-git\source\support" /Zi /nologo /W3 /WX- /MP /Ox /Ob2 /Oi /Ot /Oy /GL /D WIN32 /D _WINDOWS
 /D WIN64_VC /D WIN64 /D FORCE_INLINING /D NDEBUG /D WIN32_VC /D WIN32 /D _HAS_EXCEPTIONS=0 /D PYTHON_BUILD /D PB_MODULE
=p3recastnavigation /D PB_CFG_MODULE=p3recastnavigation /D "CMAKE_INTDIR=\"RelWithDebInfo\"" /D p3recastnavigation_EXPOR
TS /D _WINDLL /D _MBCS /Gm- /EHsc /MD /Zp16 /GS- /fp:fast /Zc:wchar_t /Zc:forScope /GR- /Fo"p3recastnavigation.dir\RelWi
thDebInfo\\" /Fd"p3recastnavigation.dir\RelWithDebInfo\vcWindows7.1SDK.pdb" /Gd /TP /wd4996 /wd4275 /wd4267 /wd4101 /wd4
273 /errorReport:queue ..\source\interrogate_module.cpp ..\source\interrogate_wrapper.cpp ..\source\config_module.cxx ..
\source\recastnavigation_composite1.cxx ..\source\recastnavigation_composite2.cxx ..\source\recastnavigation_composite3.
cxx ..\source\recastnavigation_composite4.cxx ..\source\rnCrowdAgent.cxx ..\source\rnNavMesh.cxx ..\source\rnNavMeshMana
ger.cxx ..\source\rnTools.cxx  /favor:blend /bigobj /LTCG /Zm300 /GM-
     3>cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
     3>cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3recast
navigation.vcxproj]
         interrogate_module.cpp
         interrogate_wrapper.cpp
         config_module.cxx
     3>c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot be
 used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64_p
y27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\./rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cann
ot be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_am
d64_py27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot be
 used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64_p
y27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cannot
 be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd6
4_py27\p3recastnavigation.vcxproj]
         recastnavigation_composite1.cxx
         recastnavigation_composite2.cxx
     3>c:\p3recastnavigation-git\source\library/DetourNavMeshQuery.cpp(713): warning C4351: new behavior: elements of ar
ray 'dtFindNearestPolyQuery::m_nearestPoint' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3rec
astnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\library/Recast.cpp(89): warning C4351: new behavior: elements of array 'rcHeight
field::bmin' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\library/Recast.cpp(89): warning C4351: new behavior: elements of array 'rcHeight
field::bmax' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
         recastnavigation_composite3.cxx
         recastnavigation_composite4.cxx
         rnCrowdAgent.cxx
     3>c:\p3recastnavigation-git\source\support/DebugInterfaces.cpp(486): warning C4541: 'dynamic_cast' used on polymorp
hic type 'std::basic_ostream<_Elem,_Traits>' with /GR-; unpredictable behavior may result [C:\p3recastnavigation-git\win
_amd64_py27\p3recastnavigation.vcxproj]
                 with
                 [
                     _Elem=char,
                     _Traits=std::char_traits<char>
                 ]
     3>c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot be
 used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64_p
y27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cannot
 be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd6
4_py27\p3recastnavigation.vcxproj]
         rnNavMesh.cxx
         rnNavMeshManager.cxx
     3>c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot be
 used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64_p
y27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cannot
 be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd6
4_py27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot be
 used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64_p
y27\p3recastnavigation.vcxproj]
     3>c:\p3recastnavigation-git\source\rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cannot
 be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd6
4_py27\p3recastnavigation.vcxproj]
         rnTools.cxx
     3>..\source\rnTools.cxx(217): warning C4800: 'PN_stdfloat' : forcing value to bool 'true' or 'false' (performance w
arning) [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
       ManifestResourceCompile:
         C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\rc.exe /nologo /fo"p3recastnavigation.dir\RelWithDebInfo\p3rec
astnavigation.dll.embed.manifest.res" p3recastnavigation.dir\RelWithDebInfo\p3recastnavigation_manifest.rc
       Link:
         c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\p3rec
astnavigation-git\win_amd64_py27\RelWithDebInfo\p3recastnavigation.dll" /INCREMENTAL /NOLOGO /LIBPATH:"C:/Panda3D-1.10.0
-x64/lib" /LIBPATH:"C:/Panda3D-1.10.0-x64/lib/RelWithDebInfo" kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib
 ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib "C:\Panda3D-1.10.0-x64\python\libs\python27.lib" libp3framewo
rk.lib libpanda.lib libpandaexpress.lib libp3dtool.lib libp3dtoolconfig.lib libp3direct.lib libp3interrogatedb.lib /MANI
FEST /ManifestFile:"p3recastnavigation.dir\RelWithDebInfo\p3recastnavigation.dll.intermediate.manifest" /MANIFESTUAC:"le
vel='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:/p3recastnavigation-git/win_amd64_py27/RelWithDebInfo/p3recastnavigatio
n.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/p3recastnavigation-git/win_amd64_py27/RelWithDebIn
fo/p3recastnavigation.lib" /MACHINE:X64 /DLL p3recastnavigation.dir\RelWithDebInfo\p3recastnavigation.dll.embed.manifest
.res
         p3recastnavigation.dir\RelWithDebInfo\interrogate_module.obj
         p3recastnavigation.dir\RelWithDebInfo\interrogate_wrapper.obj
         p3recastnavigation.dir\RelWithDebInfo\config_module.obj
         p3recastnavigation.dir\RelWithDebInfo\recastnavigation_composite1.obj
         p3recastnavigation.dir\RelWithDebInfo\recastnavigation_composite2.obj
         p3recastnavigation.dir\RelWithDebInfo\recastnavigation_composite3.obj
         p3recastnavigation.dir\RelWithDebInfo\recastnavigation_composite4.obj
         p3recastnavigation.dir\RelWithDebInfo\rnCrowdAgent.obj
         p3recastnavigation.dir\RelWithDebInfo\rnNavMesh.obj
         p3recastnavigation.dir\RelWithDebInfo\rnNavMeshManager.obj
         p3recastnavigation.dir\RelWithDebInfo\rnTools.obj  /machine:x64 /debug
         interrogate_module.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LT
CG to the link command line to improve linker performance
     3>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification [C:\p3recastnavigation-git\win_amd64
_py27\p3recastnavigation.vcxproj]
            Creating library C:/p3recastnavigation-git/win_amd64_py27/RelWithDebInfo/p3recastnavigation.lib and object C
:/p3recastnavigation-git/win_amd64_py27/RelWithDebInfo/p3recastnavigation.exp
     3>interrogate_wrapper.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) unsigned __int64 const
 `public: static unsigned __int64 __cdecl MemoryHook::get_header_reserved_bytes(void)'::`2'::header_reserved_bytes" (__i
mp_?header_reserved_bytes@?1??get_header_reserved_bytes@MemoryHook@@SA_KXZ@4_KB) [C:\p3recastnavigation-git\win_amd64_py
27\p3recastnavigation.vcxproj]
     3>C:\p3recastnavigation-git\win_amd64_py27\RelWithDebInfo\p3recastnavigation.dll : fatal error LNK1120: 1 unresolve
d externals [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
     3>Done Building Project "C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj" (default targets) --
FAILED.
     1>Done Building Project "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (default targets) -- FAILED.

Build FAILED.

       "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (default target) (1) ->
       "C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj" (default target) (3) ->
       (ClCompile target) ->
         cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3re
castnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3re
castnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/LTCG' [C:\p3recastnavigation-git\win_amd64_py27\p3re
castnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/GM' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         cl : Command line warning D9002: ignoring unknown option '/G-' [C:\p3recastnavigation-git\win_amd64_py27\p3reca
stnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot
be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64
_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\./rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier ca
nnot be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_
amd64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot
be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64
_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cann
ot be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_am
d64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\library/DetourNavMeshQuery.cpp(713): warning C4351: new behavior: elements of
array 'dtFindNearestPolyQuery::m_nearestPoint' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3r
ecastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\library/Recast.cpp(89): warning C4351: new behavior: elements of array 'rcHeig
htfield::bmin' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\library/Recast.cpp(89): warning C4351: new behavior: elements of array 'rcHeig
htfield::bmax' will be default initialized [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\support/DebugInterfaces.cpp(486): warning C4541: 'dynamic_cast' used on polymo
rphic type 'std::basic_ostream<_Elem,_Traits>' with /GR-; unpredictable behavior may result [C:\p3recastnavigation-git\w
in_amd64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot
be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64
_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cann
ot be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_am
d64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot
be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64
_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cann
ot be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_am
d64_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnNavMesh.h(396): warning C4396: 'unref_delete' : the inline specifier cannot
be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_amd64
_py27\p3recastnavigation.vcxproj]
         c:\p3recastnavigation-git\source\rnCrowdAgent.h(180): warning C4396: 'unref_delete' : the inline specifier cann
ot be used when a friend declaration refers to a specialization of a function template [C:\p3recastnavigation-git\win_am
d64_py27\p3recastnavigation.vcxproj]
         ..\source\rnTools.cxx(217): warning C4800: 'PN_stdfloat' : forcing value to bool 'true' or 'false' (performance
 warning) [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]


       "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (default target) (1) ->
       "C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj" (default target) (3) ->
       (Link target) ->
         LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification [C:\p3recastnavigation-git\win_amd
64_py27\p3recastnavigation.vcxproj]


       "C:\p3recastnavigation-git\win_amd64_py27\ALL_BUILD.vcxproj" (default target) (1) ->
       "C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj" (default target) (3) ->
       (Link target) ->
         interrogate_wrapper.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) unsigned __int64 con
st `public: static unsigned __int64 __cdecl MemoryHook::get_header_reserved_bytes(void)'::`2'::header_reserved_bytes" (_
_imp_?header_reserved_bytes@?1??get_header_reserved_bytes@MemoryHook@@SA_KXZ@4_KB) [C:\p3recastnavigation-git\win_amd64_
py27\p3recastnavigation.vcxproj]
         C:\p3recastnavigation-git\win_amd64_py27\RelWithDebInfo\p3recastnavigation.dll : fatal error LNK1120: 1 unresol
ved externals [C:\p3recastnavigation-git\win_amd64_py27\p3recastnavigation.vcxproj]

    25 Warning(s)
    2 Error(s)

Time Elapsed 00:05:56.78



[!] FATAL ERROR: Subprocess returned no-zero statuscode!

There is a link error: p3recastnavigation library would seem to require the symbol MemoryHook::get_header_reserved_bytes(void) (ie a member function) .
I just built p3recastnavigation (in linux) with the latest commit of the Panda3D master branch and that symbol is not absolutely required.
But what is weird is I noticed that in linux none of the Panda3D’s libraries exports that symbol (a Panda3D build error !?)
Anyway try to build with the latest commit of the Panda3D master branch, possibly in a clean environment.

Sorry, I forgot to respond saying this issue has now been fixed in Panda.

Unfortunately now it doesn’t work on linux: I just build latest source of panda3d (master branch) and then p3recastnavigation library module and now it doesn’t find the symbol ‘_ZN16GeomVertexWriter12empty_bufferE’ (ie GeomVertexWriter::empty_buffer), which seems not to be exported by any of the panda3d (*.so) libraries.

Either you are still building against an older version of the Panda headers, somehow, or you have a mismatch of the _DEBUG preprocessor symbol between the Panda build and your library build. The default optimization level for makepanda (–optimize 3) defines neither _DEBUG nor NDEBUG.

Indeed the build system of p3recastnavigation defines macros _DEBUG for debugging configurations and NDEBUG for release configurations.
But I noticed that “empty_buffer” variables are defined in both gobj/geomVertexWriter.* and “gobj/geomVertexReader.*” and that they are used in assertions in debug configuration. But while in “geomVertexWriter.h/.I/.cxx” and in “geomVertexReader.I” is conditioned by “#ifdef _DEBUG”, conversely in “geomVertexReader.h/.cxx” files is conditioned by “#ifndef NDEBUG”, and this could be only a typo.
But considering that empty_buffer are defined in conjunction with the assertions, I think that they should be conditioned by same macro, and that NDEBUG is the most appropriate.