diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..35a4cc0 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +BIN = RecastDemo/Bin +BUILD = RecastDemo/Build/GNUMake + +# Add new targets here and add a corresponding +# .mk file to RecastDemo/Build/GNUMake +TARGETS = DebugUtils Detour Recast RecastDemo + +# Dependencies +RecastDemo: DebugUtils Detour Recast + +all: $(TARGETS) +$(TARGETS): + make BIN=$(BIN) BUILD=$(BUILD) -f $(BUILD)/$(@).mk + +CLEAN_TARGETS = $(foreach target,$(TARGETS),$(target)-clean) +clean: $(CLEAN_TARGETS) +$(CLEAN_TARGETS): %-clean: + make BIN=$(BIN) BUILD=$(BUILD) -f $(BUILD)/$(*).mk clean + +.PHONY: all clean $(TARGETS) $(CLEAN_TARGETS) \ No newline at end of file diff --git a/RecastDemo/Build/GNUMake/Common.mk b/RecastDemo/Build/GNUMake/Common.mk new file mode 100644 index 0000000..5aa4740 --- /dev/null +++ b/RecastDemo/Build/GNUMake/Common.mk @@ -0,0 +1,7 @@ +OBJECTS = $(patsubst $(NAME)/Source/%.cpp,$(BIN)/%.o,$(wildcard $(NAME)/Source/*.cpp)) +CPPFLAGS += -I$(NAME)/Include + +$(BIN)/%.o: $(NAME)/Source/%.cpp + c++ $(CPPFLAGS) -c -o $@ $< + +.PHONY: clean \ No newline at end of file diff --git a/RecastDemo/Build/GNUMake/DebugUtils.mk b/RecastDemo/Build/GNUMake/DebugUtils.mk new file mode 100644 index 0000000..0a5d660 --- /dev/null +++ b/RecastDemo/Build/GNUMake/DebugUtils.mk @@ -0,0 +1,19 @@ +NAME = DebugUtils + +SOURCES = \ + DebugDraw.cpp \ + DetourDebugDraw.cpp \ + RecastDebugDraw.cpp \ + RecastDump.cpp + +HEADERS = \ + DebugDraw.h \ + DetourDebugDraw.h \ + RecastDebugDraw.h \ + RecastDump.h + +CPPFLAGS = \ + -I Detour/Include \ + -I Recast/Include + +include $(BUILD)/HelperLibrary.mk \ No newline at end of file diff --git a/RecastDemo/Build/GNUMake/Detour.mk b/RecastDemo/Build/GNUMake/Detour.mk new file mode 100644 index 0000000..aefd3ce --- /dev/null +++ b/RecastDemo/Build/GNUMake/Detour.mk @@ -0,0 +1,22 @@ +NAME = Detour + +SOURCES = \ + DetourAlloc.cpp \ + DetourCommon.cpp \ + DetourNavMesh.cpp \ + DetourNavMeshBuilder.cpp \ + DetourNavMeshQuery.cpp \ + DetourNode.cpp \ + DetourObstacleAvoidance.cpp + +HEADERS = \ + DetourAlloc.h \ + DetourAssert.h \ + DetourCommon.h \ + DetourNavMesh.h \ + DetourNavMeshBuilder.h \ + DetourNavMeshQuery.h \ + DetourNode.h \ + DetourObstacleAvoidance.h + +include $(BUILD)/Library.mk \ No newline at end of file diff --git a/RecastDemo/Build/GNUMake/HelperLibrary.mk b/RecastDemo/Build/GNUMake/HelperLibrary.mk new file mode 100644 index 0000000..15042ce --- /dev/null +++ b/RecastDemo/Build/GNUMake/HelperLibrary.mk @@ -0,0 +1,7 @@ +include $(BUILD)/Common.mk + +$(BIN)/$(NAME).a: $(OBJECTS) + ar -q $@ $(OBJECTS) + +clean: + rm -f $(BIN)/$(NAME).a $(OBJECTS) \ No newline at end of file diff --git a/RecastDemo/Build/GNUMake/Library.mk b/RecastDemo/Build/GNUMake/Library.mk new file mode 100644 index 0000000..10745fb --- /dev/null +++ b/RecastDemo/Build/GNUMake/Library.mk @@ -0,0 +1,10 @@ +include $(BUILD)/Common.mk + +CPPFLAGS += -fPIC +LDFLAGS += -shared + +$(BIN)/lib$(NAME).so: $(OBJECTS) + c++ $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS) + +clean: + rm -f $(BIN)/lib$(NAME).so $(OBJECTS) \ No newline at end of file diff --git a/RecastDemo/Build/GNUMake/Program.mk b/RecastDemo/Build/GNUMake/Program.mk new file mode 100644 index 0000000..f44634f --- /dev/null +++ b/RecastDemo/Build/GNUMake/Program.mk @@ -0,0 +1,7 @@ +include $(BUILD)/Common.mk + +$(BIN)/$(NAME): $(OBJECTS) + c++ $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS) + +clean: + rm -f $(BIN)/$(NAME).a $(BIN)/$(NAME) \ No newline at end of file diff --git a/RecastDemo/Build/GNUMake/Recast.mk b/RecastDemo/Build/GNUMake/Recast.mk new file mode 100644 index 0000000..c25ee34 --- /dev/null +++ b/RecastDemo/Build/GNUMake/Recast.mk @@ -0,0 +1,18 @@ +NAME = Recast + +OBJECTS = \ + Recast.cpp \ + RecastAlloc.cpp \ + RecastArea.cpp \ + RecastFilter.cpp \ + RecastMesh.cpp \ + RecastMeshDetail.cpp \ + RecastRasterization.cpp \ + RecastRegion.cpp + +HEADERS = \ + Recast.h \ + RecastAlloc.h \ + RecastAssert.h + +include $(BUILD)/Library.mk \ No newline at end of file diff --git a/RecastDemo/Build/GNUMake/RecastDemo.mk b/RecastDemo/Build/GNUMake/RecastDemo.mk new file mode 100644 index 0000000..42f6b5e --- /dev/null +++ b/RecastDemo/Build/GNUMake/RecastDemo.mk @@ -0,0 +1,70 @@ +NAME = RecastDemo + +SOURCES = \ + ChunkyTriMesh.cpp \ + ConvexVolumeTool.cpp \ + CrowdManager.cpp \ + CrowdTool.cpp \ + Filelist.cpp \ + foo \ + imgui.cpp \ + imguiRenderGL.cpp \ + InputGeom.cpp \ + main.cpp \ + MeshLoaderObj.cpp \ + NavMeshTesterTool.cpp \ + OffMeshConnectionTool.cpp \ + PerfTimer.cpp \ + Sample.cpp \ + Sample_Debug.cpp \ + SampleInterfaces.cpp \ + Sample_SoloMeshSimple.cpp \ + Sample_SoloMeshTiled.cpp \ + Sample_TileMesh.cpp \ + SDLMain.m \ + SlideShow.cpp \ + TestCase.cpp \ + ValueHistory.cpp + +HEADERS = \ + ChunkyTriMesh.h \ + ConvexVolumeTool.h \ + CrowdManager.h \ + CrowdTool.h \ + Filelist.h \ + foo \ + imgui.h \ + imguiRenderGL.h \ + InputGeom.h \ + MeshLoaderObj.h \ + NavMeshTesterTool.h \ + OffMeshConnectionTool.h \ + PerfTimer.h \ + Sample_Debug.h \ + Sample.h \ + SampleInterfaces.h \ + Sample_SoloMeshSimple.h \ + Sample_SoloMeshTiled.h \ + Sample_TileMesh.h \ + SDLMain.h \ + SlideShow.h \ + TestCase.h \ + ValueHistory.h + +CPPFLAGS = \ + -I $(NAME)/Contrib \ + -I DebugUtils/Include \ + -I Detour/Include \ + -I Recast/Include \ + `pkg-config --cflags sdl` + +LDFLAGS = \ + -L $(BIN) \ + -lDetour \ + -lRecast \ + -lGL -lGLU \ + `pkg-config --libs sdl` + +LIBS = $(BIN)/DebugUtils.a + +include $(BUILD)/Program.mk \ No newline at end of file diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser index 521a82c..e513663 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser @@ -272,6 +272,20 @@ 6BB9C2AC126F62C000B97C1C /* PBXTextBookmark */ = 6BB9C2AC126F62C000B97C1C /* PBXTextBookmark */; 6BB9C2AD126F62C000B97C1C /* PBXTextBookmark */ = 6BB9C2AD126F62C000B97C1C /* PBXTextBookmark */; 6BB9C2B2126F641400B97C1C /* PBXTextBookmark */ = 6BB9C2B2126F641400B97C1C /* PBXTextBookmark */; + 6BB9C2B3127449CE00B97C1C /* PBXTextBookmark */ = 6BB9C2B3127449CE00B97C1C /* PBXTextBookmark */; + 6BB9C2B5127449CE00B97C1C /* PBXTextBookmark */ = 6BB9C2B5127449CE00B97C1C /* PBXTextBookmark */; + 6BB9C2B7127449CE00B97C1C /* PBXTextBookmark */ = 6BB9C2B7127449CE00B97C1C /* PBXTextBookmark */; + 6BB9C2B9127449CE00B97C1C /* PBXTextBookmark */ = 6BB9C2B9127449CE00B97C1C /* PBXTextBookmark */; + 6BB9C2BB127449CE00B97C1C /* PBXTextBookmark */ = 6BB9C2BB127449CE00B97C1C /* PBXTextBookmark */; + 6BB9C2BD127449CE00B97C1C /* PBXTextBookmark */ = 6BB9C2BD127449CE00B97C1C /* PBXTextBookmark */; + 6BB9C2BF127449CE00B97C1C /* PBXTextBookmark */ = 6BB9C2BF127449CE00B97C1C /* PBXTextBookmark */; + 6BB9C2C0127449CE00B97C1C /* PBXTextBookmark */ = 6BB9C2C0127449CE00B97C1C /* PBXTextBookmark */; + 6BB9C2C1127449E500B97C1C /* PBXTextBookmark */ = 6BB9C2C1127449E500B97C1C /* PBXTextBookmark */; + 6BB9C2C2127449E500B97C1C /* PBXTextBookmark */ = 6BB9C2C2127449E500B97C1C /* PBXTextBookmark */; + 6BB9C2C3127449F100B97C1C /* PBXTextBookmark */ = 6BB9C2C3127449F100B97C1C /* PBXTextBookmark */; + 6BB9C2C4127449F100B97C1C /* PBXTextBookmark */ = 6BB9C2C4127449F100B97C1C /* PBXTextBookmark */; + 6BB9C2C512744A0F00B97C1C /* PBXTextBookmark */ = 6BB9C2C512744A0F00B97C1C /* PBXTextBookmark */; + 6BB9C2C612744A1C00B97C1C /* PBXTextBookmark */ = 6BB9C2C612744A1C00B97C1C /* PBXTextBookmark */; 6BBB0361124E242E00533229 = 6BBB0361124E242E00533229 /* PBXTextBookmark */; 6BBB0363124E242E00533229 = 6BBB0363124E242E00533229 /* PBXTextBookmark */; 6BBB4C34115B7A3D00CF791D = 6BBB4C34115B7A3D00CF791D /* PBXTextBookmark */; @@ -2418,6 +2432,206 @@ vrLen = 961; vrLoc = 4544; }; + 6BB9C2B3127449CE00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2B4127449CE00B97C1C /* DebugUtils.mk */; + name = "DebugUtils.mk: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 282; + vrLoc = 0; + }; + 6BB9C2B4127449CE00B97C1C /* DebugUtils.mk */ = { + isa = PBXFileReference; + lastKnownFileType = text; + name = DebugUtils.mk; + path = /Users/memon/Code/recastnavigation/RecastDemo/Build/GNUMake/DebugUtils.mk; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {931, 641}}"; + sepNavSelRange = "{282, 0}"; + sepNavVisRange = "{0, 282}"; + }; + }; + 6BB9C2B5127449CE00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2B6127449CE00B97C1C /* Detour.mk */; + name = "Detour.mk: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 394; + vrLoc = 0; + }; + 6BB9C2B6127449CE00B97C1C /* Detour.mk */ = { + isa = PBXFileReference; + name = Detour.mk; + path = /Users/memon/Code/recastnavigation/RecastDemo/Build/GNUMake/Detour.mk; + sourceTree = ""; + }; + 6BB9C2B7127449CE00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2B8127449CE00B97C1C /* HelperLibrary.mk */; + name = "HelperLibrary.mk: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 120; + vrLoc = 0; + }; + 6BB9C2B8127449CE00B97C1C /* HelperLibrary.mk */ = { + isa = PBXFileReference; + lastKnownFileType = text; + name = HelperLibrary.mk; + path = /Users/memon/Code/recastnavigation/RecastDemo/Build/GNUMake/HelperLibrary.mk; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {931, 641}}"; + sepNavSelRange = "{120, 0}"; + sepNavVisRange = "{0, 120}"; + }; + }; + 6BB9C2B9127449CE00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2BA127449CE00B97C1C /* Library.mk */; + name = "Library.mk: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 186; + vrLoc = 0; + }; + 6BB9C2BA127449CE00B97C1C /* Library.mk */ = { + isa = PBXFileReference; + lastKnownFileType = text; + name = Library.mk; + path = /Users/memon/Code/recastnavigation/RecastDemo/Build/GNUMake/Library.mk; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {931, 641}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 186}"; + }; + }; + 6BB9C2BB127449CE00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2BC127449CE00B97C1C /* Program.mk */; + name = "Program.mk: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 142; + vrLoc = 0; + }; + 6BB9C2BC127449CE00B97C1C /* Program.mk */ = { + isa = PBXFileReference; + lastKnownFileType = text; + name = Program.mk; + path = /Users/memon/Code/recastnavigation/RecastDemo/Build/GNUMake/Program.mk; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {931, 641}}"; + sepNavSelRange = "{142, 0}"; + sepNavVisRange = "{0, 142}"; + }; + }; + 6BB9C2BD127449CE00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2BE127449CE00B97C1C /* Recast.mk */; + name = "Recast.mk: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 271; + vrLoc = 0; + }; + 6BB9C2BE127449CE00B97C1C /* Recast.mk */ = { + isa = PBXFileReference; + name = Recast.mk; + path = /Users/memon/Code/recastnavigation/RecastDemo/Build/GNUMake/Recast.mk; + sourceTree = ""; + }; + 6BB9C2BF127449CE00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF5F23F1174763B000502A6 /* SlideShow.cpp */; + name = "SlideShow.cpp: 34"; + rLen = 0; + rLoc = 1209; + rType = 0; + vrLen = 1396; + vrLoc = 0; + }; + 6BB9C2C0127449CE00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF5F23F1174763B000502A6 /* SlideShow.cpp */; + name = "SlideShow.cpp: 34"; + rLen = 0; + rLoc = 1209; + rType = 0; + vrLen = 1396; + vrLoc = 0; + }; + 6BB9C2C1127449E500B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF5F23F1174763B000502A6 /* SlideShow.cpp */; + name = "SlideShow.cpp: 34"; + rLen = 0; + rLoc = 1209; + rType = 0; + vrLen = 1396; + vrLoc = 0; + }; + 6BB9C2C2127449E500B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2B8127449CE00B97C1C /* HelperLibrary.mk */; + name = "HelperLibrary.mk: 7"; + rLen = 0; + rLoc = 120; + rType = 0; + vrLen = 120; + vrLoc = 0; + }; + 6BB9C2C3127449F100B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2B8127449CE00B97C1C /* HelperLibrary.mk */; + name = "HelperLibrary.mk: 7"; + rLen = 0; + rLoc = 120; + rType = 0; + vrLen = 120; + vrLoc = 0; + }; + 6BB9C2C4127449F100B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BB9C2BA127449CE00B97C1C /* Library.mk */; + name = "Library.mk: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 186; + vrLoc = 0; + }; + 6BB9C2C512744A0F00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF5F23F1174763B000502A6 /* SlideShow.cpp */; + name = "SlideShow.cpp: 34"; + rLen = 0; + rLoc = 1209; + rType = 0; + vrLen = 1396; + vrLoc = 0; + }; + 6BB9C2C612744A1C00B97C1C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 6BF5F23F1174763B000502A6 /* SlideShow.cpp */; + name = "SlideShow.cpp: 34"; + rLen = 0; + rLoc = 1209; + rType = 0; + vrLen = 1396; + vrLoc = 0; + }; 6BBB0361124E242E00533229 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 6BBB0362124E242E00533229 /* Matrix4.h */; @@ -2613,16 +2827,16 @@ }; 6BD667D8123D27EC0021A7A4 /* CrowdManager.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 4186}}"; - sepNavSelRange = "{4799, 0}"; - sepNavVisRange = "{4544, 961}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 4121}}"; + sepNavSelRange = "{5171, 0}"; + sepNavVisRange = "{4741, 866}"; }; }; 6BD667D9123D28100021A7A4 /* CrowdManager.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {931, 16991}}"; - sepNavSelRange = "{26350, 0}"; - sepNavVisRange = "{25758, 1591}"; + sepNavIntBoundsRect = "{{0, 0}, {1217, 17381}}"; + sepNavSelRange = "{9500, 0}"; + sepNavVisRange = "{9504, 456}"; sepNavWindowFrame = "{{15, 134}, {1120, 639}}"; }; }; @@ -2757,9 +2971,9 @@ }; 6BF5F23F1174763B000502A6 /* SlideShow.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {909, 2560}}"; - sepNavSelRange = "{3567, 0}"; - sepNavVisRange = "{3217, 770}"; + sepNavIntBoundsRect = "{{0, 0}, {931, 2041}}"; + sepNavSelRange = "{1209, 0}"; + sepNavVisRange = "{0, 1396}"; }; }; 6BF5F27311747CFA000502A6 /* PBXTextBookmark */ = { diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 index f368827..405036a 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 @@ -290,7 +290,7 @@ PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 475}, {264, 660}} + {{0, 623}, {264, 660}} PBXTopSmartGroupGIDs @@ -325,7 +325,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - CrowdManager.h + SlideShow.cpp PBXSplitModuleInNavigatorKey Split0 @@ -333,11 +333,11 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - CrowdManager.h + SlideShow.cpp _historyCapacity 0 bookmark - 6BB9C2B2126F641400B97C1C + 6BB9C2C612744A1C00B97C1C history 6BBB4C34115B7A3D00CF791D @@ -346,7 +346,6 @@ 6BF5F2E511748884000502A6 6BF5F2E611748884000502A6 6BF5F2E711748884000502A6 - 6B4214D911803923006C347B 6B98462E11E6141900FA177B 6B98473011E737D800FA177B 6BAF4321121AF998008CFCDF @@ -429,7 +428,9 @@ 6BB9C2A2126F623D00B97C1C 6BB9C2AA126F62C000B97C1C 6BB9C2AB126F62C000B97C1C - 6BB9C2AC126F62C000B97C1C + 6BB9C2B5127449CE00B97C1C + 6BB9C2BD127449CE00B97C1C + 6BB9C2BF127449CE00B97C1C SplitCount