mirror of https://github.com/axmolengine/axmol.git
Merge branch 'fix_spritepolygon2' of https://github.com/Wu-Hao/cocos2d-x into spritepolygon
This commit is contained in:
commit
ccd15b3da7
|
@ -72,6 +72,7 @@ endif()
|
|||
option(USE_CHIPMUNK "Use chipmunk for physics library" ON)
|
||||
option(USE_BOX2D "Use box2d for physics library" OFF)
|
||||
option(USE_BULLET "Use bullet for physics3d library" ON)
|
||||
option(USE_RECAST "Use Recast for navigation mesh" ON)
|
||||
option(USE_WEBP "Use WebP codec" ${USE_WEBP_DEFAULT})
|
||||
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
|
||||
option(DEBUG_MODE "Debug or release?" ON)
|
||||
|
@ -267,6 +268,22 @@ else()
|
|||
add_definitions(-DCC_USE_3D_PHYSICS=0)
|
||||
endif(USE_BULLET)
|
||||
|
||||
# Recast (not prebuilded, exists as source)
|
||||
if(USE_RECAST)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/recast)
|
||||
set(RECAST_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/recast)
|
||||
set(RECAST_LIBRARIES recast)
|
||||
else()
|
||||
cocos_find_package(recast RECAST REQUIRED)
|
||||
set(RECAST_LIBRARIES recast)
|
||||
endif()
|
||||
message(STATUS "Recast include dirs: ${RECAST_INCLUDE_DIRS}")
|
||||
add_definitions(-DCC_USE_NAVMESH=1)
|
||||
else()
|
||||
add_definitions(-DCC_USE_NAVMESH=0)
|
||||
endif(USE_RECAST)
|
||||
|
||||
# Tinyxml2 (not prebuilded, exists as source)
|
||||
if(USE_PREBUILT_LIBS)
|
||||
add_subdirectory(external/tinyxml2)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.31101.0
|
||||
VisualStudioVersion = 12.0.21005.1
|
||||
MinimumVisualStudioVersion = 12.0.21005.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\cocos\2d\libcocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}"
|
||||
EndProject
|
||||
|
@ -16,6 +16,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "js-tests", "..\tests\js-tes
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbullet", "..\external\bullet\proj.win32\libbullet.vcxproj", "{012DFF48-A13F-4F52-B07B-F8B9D21CE95B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast", "..\external\recast\proj.win32\librecast.vcxproj", "{41E34993-647E-4282-8384-4AB1AE31A452}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
|
@ -60,6 +62,12 @@ Global
|
|||
{012DFF48-A13F-4F52-B07B-F8B9D21CE95B}.Release|ARM.ActiveCfg = Release|Win32
|
||||
{012DFF48-A13F-4F52-B07B-F8B9D21CE95B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{012DFF48-A13F-4F52-B07B-F8B9D21CE95B}.Release|Win32.Build.0 = Release|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Debug|ARM.ActiveCfg = Debug|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Release|ARM.ActiveCfg = Release|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -68,6 +76,7 @@ Global
|
|||
{B7C2A162-DEC9-4418-972E-240AB3CBFCAE} = {92D54E36-7916-48EF-A951-224DD3B25442}
|
||||
{929480E7-23C0-4DF6-8456-096D71547116} = {92D54E36-7916-48EF-A951-224DD3B25442}
|
||||
{012DFF48-A13F-4F52-B07B-F8B9D21CE95B} = {92D54E36-7916-48EF-A951-224DD3B25442}
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452} = {92D54E36-7916-48EF-A951-224DD3B25442}
|
||||
EndGlobalSection
|
||||
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
|
||||
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.30723.0
|
||||
VisualStudioVersion = 12.0.31101.0
|
||||
MinimumVisualStudioVersion = 12.0.21005.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libcocos2d", "libcocos2d", "{B3F299D4-B4CA-4F0B-8BE2-FB328483BC13}"
|
||||
EndProject
|
||||
|
@ -53,14 +53,24 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbullet.Windows", "..\ext
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbullet.WindowsPhone", "..\external\bullet\proj.win8.1-universal\libbullet.WindowsPhone\libbullet.WindowsPhone.vcxproj", "{E35634BD-B91B-4A6D-B957-96F56DD065F9}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librecast", "librecast", "{B8419273-177E-467D-AE4F-002BFDF050BF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast.Shared", "..\external\recast\proj.win8.1-universal\librecast.Shared\librecast.Shared.vcxitems", "{F39A11FB-0D36-4B0A-91F1-345F1F0C9AA9}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast.Windows", "..\external\recast\proj.win8.1-universal\librecast.Windows\librecast.Windows.vcxproj", "{19E35654-A3EC-48FA-BB21-082A2356C87C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast.WindowsPhone", "..\external\recast\proj.win8.1-universal\librecast.WindowsPhone\librecast.WindowsPhone.vcxproj", "{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||
..\tests\js-tests\project\proj.win8.1-universal\App.Shared\js-tests.Shared.vcxitems*{ae6763f6-1549-441e-afb5-377be1c776dc}*SharedItemsImports = 9
|
||||
..\tests\js-tests\project\proj.win8.1-universal\App.Shared\js-tests.Shared.vcxitems*{94874b5b-398f-448a-a366-35a35dc1db9c}*SharedItemsImports = 4
|
||||
..\cocos\2d\libcocos2d_8_1\libcocos2d_8_1\libcocos2d_8_1.Shared\libcocos2d_8_1.Shared.vcxitems*{9335005f-678e-4e8e-9b84-50037216aec8}*SharedItemsImports = 4
|
||||
..\external\recast\proj.win8.1-universal\librecast.Shared\librecast.Shared.vcxitems*{19e35654-a3ec-48fa-bb21-082a2356c87c}*SharedItemsImports = 4
|
||||
..\tests\js-tests\project\proj.win8.1-universal\App.Shared\js-tests.Shared.vcxitems*{70914fc8-7709-4cd6-b86b-c63fde5478db}*SharedItemsImports = 4
|
||||
..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Shared\libSpine.Shared.vcxitems*{cc1da216-a80d-4be4-b309-acb6af313aff}*SharedItemsImports = 4
|
||||
..\external\Box2D\proj.win8.1-universal\libbox2d.Shared\libbox2d.Shared.vcxitems*{4a3c6ba8-c227-498b-aa21-40bda27b461f}*SharedItemsImports = 9
|
||||
..\external\recast\proj.win8.1-universal\librecast.Shared\librecast.Shared.vcxitems*{f39a11fb-0d36-4b0a-91f1-345f1f0c9aa9}*SharedItemsImports = 9
|
||||
..\external\bullet\proj.win8.1-universal\libbullet.Shared\libbullet.Shared.vcxitems*{e35634bd-b91b-4a6d-b957-96f56dd065f9}*SharedItemsImports = 4
|
||||
..\external\bullet\proj.win8.1-universal\libbullet.Shared\libbullet.Shared.vcxitems*{ec2b1292-2d8c-4feb-a84b-2550b32c1ae7}*SharedItemsImports = 4
|
||||
..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Shared\libSpine.Shared.vcxitems*{adafd00d-a0d6-46ef-9f0b-ea2880bfe1de}*SharedItemsImports = 9
|
||||
|
@ -73,6 +83,7 @@ Global
|
|||
..\cocos\2d\libcocos2d_8_1\libcocos2d_8_1\libcocos2d_8_1.Shared\libcocos2d_8_1.Shared.vcxitems*{22f3b9df-1209-4574-8331-003966f562bf}*SharedItemsImports = 4
|
||||
..\external\Box2D\proj.win8.1-universal\libbox2d.Shared\libbox2d.Shared.vcxitems*{22f798d8-bfff-4754-996f-a5395343d5ec}*SharedItemsImports = 4
|
||||
..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Shared\libSpine.Shared.vcxitems*{f3550fe0-c795-44f6-8feb-093eb68143ae}*SharedItemsImports = 4
|
||||
..\external\recast\proj.win8.1-universal\librecast.Shared\librecast.Shared.vcxitems*{d3bcfc1a-94bd-43b7-9c15-3f48ac6a9fac}*SharedItemsImports = 4
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
|
@ -225,6 +236,28 @@ Global
|
|||
{E35634BD-B91B-4A6D-B957-96F56DD065F9}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E35634BD-B91B-4A6D-B957-96F56DD065F9}.Release|Win32.Build.0 = Release|Win32
|
||||
{E35634BD-B91B-4A6D-B957-96F56DD065F9}.Release|x64.ActiveCfg = Release|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|x64.Build.0 = Debug|x64
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|ARM.Build.0 = Release|ARM
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|Win32.Build.0 = Release|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|x64.ActiveCfg = Release|x64
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|x64.Build.0 = Release|x64
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|ARM.Build.0 = Release|ARM
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|Win32.Build.0 = Release|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|x64.ActiveCfg = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -251,5 +284,9 @@ Global
|
|||
{16AF311F-74CA-45A3-A82D-6334200FB124} = {9A66AB4C-057B-4675-849D-5D69B98C728C}
|
||||
{EC2B1292-2D8C-4FEB-A84B-2550B32C1AE7} = {9A66AB4C-057B-4675-849D-5D69B98C728C}
|
||||
{E35634BD-B91B-4A6D-B957-96F56DD065F9} = {9A66AB4C-057B-4675-849D-5D69B98C728C}
|
||||
{B8419273-177E-467D-AE4F-002BFDF050BF} = {85630454-74EA-4B5B-9B62-0E459B4476CB}
|
||||
{F39A11FB-0D36-4B0A-91F1-345F1F0C9AA9} = {B8419273-177E-467D-AE4F-002BFDF050BF}
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C} = {B8419273-177E-467D-AE4F-002BFDF050BF}
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC} = {B8419273-177E-467D-AE4F-002BFDF050BF}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2012
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.21005.1
|
||||
VisualStudioVersion = 12.0.31101.0
|
||||
MinimumVisualStudioVersion = 12.0.21005.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpp-tests", "..\tests\cpp-tests\proj.win32\cpp-tests.vcxproj", "{76A39BB2-9B84-4C65-98A5-654D86B86F2A}"
|
||||
EndProject
|
||||
|
@ -26,6 +25,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbox2d", "..\external\Box
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbullet", "..\external\bullet\proj.win32\libbullet.vcxproj", "{012DFF48-A13F-4F52-B07B-F8B9D21CE95B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast", "..\external\recast\proj.win32\librecast.vcxproj", "{41E34993-647E-4282-8384-4AB1AE31A452}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
|
@ -88,6 +89,12 @@ Global
|
|||
{012DFF48-A13F-4F52-B07B-F8B9D21CE95B}.Release|ARM.ActiveCfg = Release|Win32
|
||||
{012DFF48-A13F-4F52-B07B-F8B9D21CE95B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{012DFF48-A13F-4F52-B07B-F8B9D21CE95B}.Release|Win32.Build.0 = Release|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Debug|ARM.ActiveCfg = Debug|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Release|ARM.ActiveCfg = Release|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -96,6 +103,7 @@ Global
|
|||
{B7C2A162-DEC9-4418-972E-240AB3CBFCAE} = {92D54E36-7916-48EF-A951-224DD3B25442}
|
||||
{929480E7-23C0-4DF6-8456-096D71547116} = {92D54E36-7916-48EF-A951-224DD3B25442}
|
||||
{012DFF48-A13F-4F52-B07B-F8B9D21CE95B} = {92D54E36-7916-48EF-A951-224DD3B25442}
|
||||
{41E34993-647E-4282-8384-4AB1AE31A452} = {92D54E36-7916-48EF-A951-224DD3B25442}
|
||||
EndGlobalSection
|
||||
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
|
||||
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
|
||||
|
|
|
@ -53,13 +53,23 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbullet.Windows", "..\ext
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbullet.WindowsPhone", "..\external\bullet\proj.win8.1-universal\libbullet.WindowsPhone\libbullet.WindowsPhone.vcxproj", "{E35634BD-B91B-4A6D-B957-96F56DD065F9}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librecast", "librecast", "{F07894BD-4919-4C5F-9CCD-1B8168466573}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast.Shared", "..\external\recast\proj.win8.1-universal\librecast.Shared\librecast.Shared.vcxitems", "{F39A11FB-0D36-4B0A-91F1-345F1F0C9AA9}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast.Windows", "..\external\recast\proj.win8.1-universal\librecast.Windows\librecast.Windows.vcxproj", "{19E35654-A3EC-48FA-BB21-082A2356C87C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librecast.WindowsPhone", "..\external\recast\proj.win8.1-universal\librecast.WindowsPhone\librecast.WindowsPhone.vcxproj", "{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||
..\cocos\2d\libcocos2d_8_1\libcocos2d_8_1\libcocos2d_8_1.Shared\libcocos2d_8_1.Shared.vcxitems*{9335005f-678e-4e8e-9b84-50037216aec8}*SharedItemsImports = 4
|
||||
..\tests\cpp-tests\proj.win8.1-universal\cpp-tests.Shared\cpp-tests.Shared.vcxitems*{15247c71-5289-4913-b88f-e253cc353720}*SharedItemsImports = 4
|
||||
..\external\recast\proj.win8.1-universal\librecast.Shared\librecast.Shared.vcxitems*{19e35654-a3ec-48fa-bb21-082a2356c87c}*SharedItemsImports = 4
|
||||
..\tests\cpp-empty-test\proj.win8.1-universal\HelloCpp.Shared\HelloCpp.Shared.vcxitems*{a3ad93e4-0b2f-4c58-9181-69bed2e42e3e}*SharedItemsImports = 9
|
||||
..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Shared\libSpine.Shared.vcxitems*{cc1da216-a80d-4be4-b309-acb6af313aff}*SharedItemsImports = 4
|
||||
..\external\Box2D\proj.win8.1-universal\libbox2d.Shared\libbox2d.Shared.vcxitems*{4a3c6ba8-c227-498b-aa21-40bda27b461f}*SharedItemsImports = 9
|
||||
..\external\recast\proj.win8.1-universal\librecast.Shared\librecast.Shared.vcxitems*{f39a11fb-0d36-4b0a-91f1-345f1f0c9aa9}*SharedItemsImports = 9
|
||||
..\external\bullet\proj.win8.1-universal\libbullet.Shared\libbullet.Shared.vcxitems*{e35634bd-b91b-4a6d-b957-96f56dd065f9}*SharedItemsImports = 4
|
||||
..\tests\cpp-empty-test\proj.win8.1-universal\HelloCpp.Shared\HelloCpp.Shared.vcxitems*{79a8fcda-4b12-4dd1-b676-ff148d651638}*SharedItemsImports = 4
|
||||
..\external\bullet\proj.win8.1-universal\libbullet.Shared\libbullet.Shared.vcxitems*{ec2b1292-2d8c-4feb-a84b-2550b32c1ae7}*SharedItemsImports = 4
|
||||
|
@ -72,6 +82,7 @@ Global
|
|||
..\external\Box2D\proj.win8.1-universal\libbox2d.Shared\libbox2d.Shared.vcxitems*{22f798d8-bfff-4754-996f-a5395343d5ec}*SharedItemsImports = 4
|
||||
..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Shared\libSpine.Shared.vcxitems*{f3550fe0-c795-44f6-8feb-093eb68143ae}*SharedItemsImports = 4
|
||||
..\tests\cpp-tests\proj.win8.1-universal\cpp-tests.Shared\cpp-tests.Shared.vcxitems*{f2bae06b-caae-43ee-b21b-57fa48db04fa}*SharedItemsImports = 4
|
||||
..\external\recast\proj.win8.1-universal\librecast.Shared\librecast.Shared.vcxitems*{d3bcfc1a-94bd-43b7-9c15-3f48ac6a9fac}*SharedItemsImports = 4
|
||||
..\tests\cpp-empty-test\proj.win8.1-universal\HelloCpp.Shared\HelloCpp.Shared.vcxitems*{396fe85e-bb05-4b92-bccb-f89aed4ea41a}*SharedItemsImports = 4
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
@ -235,6 +246,28 @@ Global
|
|||
{E35634BD-B91B-4A6D-B957-96F56DD065F9}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E35634BD-B91B-4A6D-B957-96F56DD065F9}.Release|Win32.Build.0 = Release|Win32
|
||||
{E35634BD-B91B-4A6D-B957-96F56DD065F9}.Release|x64.ActiveCfg = Release|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Debug|x64.Build.0 = Debug|x64
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|ARM.Build.0 = Release|ARM
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|Win32.Build.0 = Release|Win32
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|x64.ActiveCfg = Release|x64
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C}.Release|x64.Build.0 = Release|x64
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|ARM.Build.0 = Release|ARM
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|Win32.Build.0 = Release|Win32
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC}.Release|x64.ActiveCfg = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -261,5 +294,9 @@ Global
|
|||
{16AF311F-74CA-45A3-A82D-6334200FB124} = {0500043C-7E95-4351-97D6-0382A8C92DD3}
|
||||
{EC2B1292-2D8C-4FEB-A84B-2550B32C1AE7} = {0500043C-7E95-4351-97D6-0382A8C92DD3}
|
||||
{E35634BD-B91B-4A6D-B957-96F56DD065F9} = {0500043C-7E95-4351-97D6-0382A8C92DD3}
|
||||
{F07894BD-4919-4C5F-9CCD-1B8168466573} = {85630454-74EA-4B5B-9B62-0E459B4476CB}
|
||||
{F39A11FB-0D36-4B0A-91F1-345F1F0C9AA9} = {F07894BD-4919-4C5F-9CCD-1B8168466573}
|
||||
{19E35654-A3EC-48FA-BB21-082A2356C87C} = {F07894BD-4919-4C5F-9CCD-1B8168466573}
|
||||
{D3BCFC1A-94BD-43B7-9C15-3F48AC6A9FAC} = {F07894BD-4919-4C5F-9CCD-1B8168466573}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "#!/bin/bash\ncocos_dir=${SRCROOT}/../tests/js-tests/res\nif [ -d \"${cocos_dir}\" ]; then\nrm -rv \"${cocos_dir}\"\nmkdir \"${cocos_dir}\"\nelse\nmkdir \"${cocos_dir}\"\nfi\n\ncp -r \"${SRCROOT}/../tests/cpp-tests/Resources/\" \"${cocos_dir}\"\ncp -r \"${SRCROOT}/../tests/js-tests/resjs/\" \"${cocos_dir}\"";
|
||||
shellScript = "#!/bin/bash\ncocos_dir=${SRCROOT}/../tests/js-tests/res\nif [ -d \"${cocos_dir}\" ]; then\nrm -rv \"${cocos_dir}\"\nmkdir \"${cocos_dir}\"\nelse\nmkdir \"${cocos_dir}\"\nfi\n\ncp -r \"${SRCROOT}/../tests/cpp-tests/Resources/\" \"${cocos_dir}\"\ncp -r \"${SRCROOT}/../tests/js-tests/resjs/\" \"${cocos_dir}/resjs\"";
|
||||
};
|
||||
EDCA13EE1AEA4E7B00F445CA /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
|
@ -609,7 +609,7 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "#!/bin/bash\ncocos_dir=${SRCROOT}/../tests/js-tests/res\nif [ -d \"${cocos_dir}\" ]; then\nrm -rv \"${cocos_dir}\"\nmkdir \"${cocos_dir}\"\nelse\nmkdir \"${cocos_dir}\"\nfi\n\ncp -r \"${SRCROOT}/../tests/cpp-tests/Resources/\" \"${cocos_dir}\"\ncp -r \"${SRCROOT}/../tests/js-tests/resjs/\" \"${cocos_dir}\"";
|
||||
shellScript = "#!/bin/bash\ncocos_dir=${SRCROOT}/../tests/js-tests/res\nif [ -d \"${cocos_dir}\" ]; then\nrm -rv \"${cocos_dir}\"\nmkdir \"${cocos_dir}\"\nelse\nmkdir \"${cocos_dir}\"\nfi\n\ncp -r \"${SRCROOT}/../tests/cpp-tests/Resources/\" \"${cocos_dir}\"\ncp -r \"${SRCROOT}/../tests/js-tests/resjs/\" \"${cocos_dir}/resjs\"";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
|
|
|
@ -2609,6 +2609,26 @@
|
|||
B665E43B1AA80A6600DDB1C5 /* CCPUVortexAffectorTranslator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B665E1F01AA80A6500DDB1C5 /* CCPUVortexAffectorTranslator.cpp */; };
|
||||
B665E43C1AA80A6600DDB1C5 /* CCPUVortexAffectorTranslator.h in Headers */ = {isa = PBXBuildFile; fileRef = B665E1F11AA80A6500DDB1C5 /* CCPUVortexAffectorTranslator.h */; };
|
||||
B665E43D1AA80A6600DDB1C5 /* CCPUVortexAffectorTranslator.h in Headers */ = {isa = PBXBuildFile; fileRef = B665E1F11AA80A6500DDB1C5 /* CCPUVortexAffectorTranslator.h */; };
|
||||
B677B0C91B18492D006762CB /* CCNavMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0BF1B18492D006762CB /* CCNavMesh.cpp */; };
|
||||
B677B0CA1B18492D006762CB /* CCNavMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0BF1B18492D006762CB /* CCNavMesh.cpp */; };
|
||||
B677B0CB1B18492D006762CB /* CCNavMesh.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C01B18492D006762CB /* CCNavMesh.h */; };
|
||||
B677B0CC1B18492D006762CB /* CCNavMesh.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C01B18492D006762CB /* CCNavMesh.h */; };
|
||||
B677B0CD1B18492D006762CB /* CCNavMeshAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0C11B18492D006762CB /* CCNavMeshAgent.cpp */; };
|
||||
B677B0CE1B18492D006762CB /* CCNavMeshAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0C11B18492D006762CB /* CCNavMeshAgent.cpp */; };
|
||||
B677B0CF1B18492D006762CB /* CCNavMeshAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C21B18492D006762CB /* CCNavMeshAgent.h */; };
|
||||
B677B0D01B18492D006762CB /* CCNavMeshAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C21B18492D006762CB /* CCNavMeshAgent.h */; };
|
||||
B677B0D11B18492D006762CB /* CCNavMeshDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0C31B18492D006762CB /* CCNavMeshDebugDraw.cpp */; };
|
||||
B677B0D21B18492D006762CB /* CCNavMeshDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0C31B18492D006762CB /* CCNavMeshDebugDraw.cpp */; };
|
||||
B677B0D31B18492D006762CB /* CCNavMeshDebugDraw.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C41B18492D006762CB /* CCNavMeshDebugDraw.h */; };
|
||||
B677B0D41B18492D006762CB /* CCNavMeshDebugDraw.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C41B18492D006762CB /* CCNavMeshDebugDraw.h */; };
|
||||
B677B0D51B18492D006762CB /* CCNavMeshObstacle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0C51B18492D006762CB /* CCNavMeshObstacle.cpp */; };
|
||||
B677B0D61B18492D006762CB /* CCNavMeshObstacle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0C51B18492D006762CB /* CCNavMeshObstacle.cpp */; };
|
||||
B677B0D71B18492D006762CB /* CCNavMeshObstacle.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C61B18492D006762CB /* CCNavMeshObstacle.h */; };
|
||||
B677B0D81B18492D006762CB /* CCNavMeshObstacle.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C61B18492D006762CB /* CCNavMeshObstacle.h */; };
|
||||
B677B0D91B18492D006762CB /* CCNavMeshUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0C71B18492D006762CB /* CCNavMeshUtils.cpp */; };
|
||||
B677B0DA1B18492D006762CB /* CCNavMeshUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B677B0C71B18492D006762CB /* CCNavMeshUtils.cpp */; };
|
||||
B677B0DB1B18492D006762CB /* CCNavMeshUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C81B18492D006762CB /* CCNavMeshUtils.h */; };
|
||||
B677B0DC1B18492D006762CB /* CCNavMeshUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = B677B0C81B18492D006762CB /* CCNavMeshUtils.h */; };
|
||||
B68778F81A8CA82E00643ABF /* CCParticle3DAffector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B68778F01A8CA82E00643ABF /* CCParticle3DAffector.cpp */; };
|
||||
B68778F91A8CA82E00643ABF /* CCParticle3DAffector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B68778F01A8CA82E00643ABF /* CCParticle3DAffector.cpp */; };
|
||||
B68778FA1A8CA82E00643ABF /* CCParticle3DAffector.h in Headers */ = {isa = PBXBuildFile; fileRef = B68778F11A8CA82E00643ABF /* CCParticle3DAffector.h */; };
|
||||
|
@ -3459,6 +3479,88 @@
|
|||
B6D38B8F1AC3AFAC00043997 /* CCTextureCube.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6D38B881AC3AFAC00043997 /* CCTextureCube.cpp */; };
|
||||
B6D38B901AC3AFAC00043997 /* CCTextureCube.h in Headers */ = {isa = PBXBuildFile; fileRef = B6D38B891AC3AFAC00043997 /* CCTextureCube.h */; };
|
||||
B6D38B911AC3AFAC00043997 /* CCTextureCube.h in Headers */ = {isa = PBXBuildFile; fileRef = B6D38B891AC3AFAC00043997 /* CCTextureCube.h */; };
|
||||
B6DD2FA71B04825B00E47F5F /* DebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F7A1B04825B00E47F5F /* DebugDraw.cpp */; };
|
||||
B6DD2FA81B04825B00E47F5F /* DebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F7A1B04825B00E47F5F /* DebugDraw.cpp */; };
|
||||
B6DD2FA91B04825B00E47F5F /* DebugDraw.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F7B1B04825B00E47F5F /* DebugDraw.h */; };
|
||||
B6DD2FAA1B04825B00E47F5F /* DebugDraw.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F7B1B04825B00E47F5F /* DebugDraw.h */; };
|
||||
B6DD2FAB1B04825B00E47F5F /* DetourDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F7C1B04825B00E47F5F /* DetourDebugDraw.cpp */; };
|
||||
B6DD2FAC1B04825B00E47F5F /* DetourDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F7C1B04825B00E47F5F /* DetourDebugDraw.cpp */; };
|
||||
B6DD2FAD1B04825B00E47F5F /* DetourDebugDraw.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F7D1B04825B00E47F5F /* DetourDebugDraw.h */; };
|
||||
B6DD2FAE1B04825B00E47F5F /* DetourDebugDraw.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F7D1B04825B00E47F5F /* DetourDebugDraw.h */; };
|
||||
B6DD2FAF1B04825B00E47F5F /* RecastDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F7E1B04825B00E47F5F /* RecastDebugDraw.cpp */; };
|
||||
B6DD2FB01B04825B00E47F5F /* RecastDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F7E1B04825B00E47F5F /* RecastDebugDraw.cpp */; };
|
||||
B6DD2FB11B04825B00E47F5F /* RecastDebugDraw.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F7F1B04825B00E47F5F /* RecastDebugDraw.h */; };
|
||||
B6DD2FB21B04825B00E47F5F /* RecastDebugDraw.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F7F1B04825B00E47F5F /* RecastDebugDraw.h */; };
|
||||
B6DD2FB31B04825B00E47F5F /* RecastDump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F801B04825B00E47F5F /* RecastDump.cpp */; };
|
||||
B6DD2FB41B04825B00E47F5F /* RecastDump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F801B04825B00E47F5F /* RecastDump.cpp */; };
|
||||
B6DD2FB51B04825B00E47F5F /* RecastDump.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F811B04825B00E47F5F /* RecastDump.h */; };
|
||||
B6DD2FB61B04825B00E47F5F /* RecastDump.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F811B04825B00E47F5F /* RecastDump.h */; };
|
||||
B6DD2FB71B04825B00E47F5F /* DetourAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F831B04825B00E47F5F /* DetourAlloc.cpp */; };
|
||||
B6DD2FB81B04825B00E47F5F /* DetourAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F831B04825B00E47F5F /* DetourAlloc.cpp */; };
|
||||
B6DD2FB91B04825B00E47F5F /* DetourAlloc.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F841B04825B00E47F5F /* DetourAlloc.h */; };
|
||||
B6DD2FBA1B04825B00E47F5F /* DetourAlloc.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F841B04825B00E47F5F /* DetourAlloc.h */; };
|
||||
B6DD2FBB1B04825B00E47F5F /* DetourAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F851B04825B00E47F5F /* DetourAssert.h */; };
|
||||
B6DD2FBC1B04825B00E47F5F /* DetourAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F851B04825B00E47F5F /* DetourAssert.h */; };
|
||||
B6DD2FBD1B04825B00E47F5F /* DetourCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F861B04825B00E47F5F /* DetourCommon.cpp */; };
|
||||
B6DD2FBE1B04825B00E47F5F /* DetourCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F861B04825B00E47F5F /* DetourCommon.cpp */; };
|
||||
B6DD2FBF1B04825B00E47F5F /* DetourCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F871B04825B00E47F5F /* DetourCommon.h */; };
|
||||
B6DD2FC01B04825B00E47F5F /* DetourCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F871B04825B00E47F5F /* DetourCommon.h */; };
|
||||
B6DD2FC11B04825B00E47F5F /* DetourMath.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F881B04825B00E47F5F /* DetourMath.h */; };
|
||||
B6DD2FC21B04825B00E47F5F /* DetourMath.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F881B04825B00E47F5F /* DetourMath.h */; };
|
||||
B6DD2FC31B04825B00E47F5F /* DetourNavMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F891B04825B00E47F5F /* DetourNavMesh.cpp */; };
|
||||
B6DD2FC41B04825B00E47F5F /* DetourNavMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F891B04825B00E47F5F /* DetourNavMesh.cpp */; };
|
||||
B6DD2FC51B04825B00E47F5F /* DetourNavMesh.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F8A1B04825B00E47F5F /* DetourNavMesh.h */; };
|
||||
B6DD2FC61B04825B00E47F5F /* DetourNavMesh.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F8A1B04825B00E47F5F /* DetourNavMesh.h */; };
|
||||
B6DD2FC71B04825B00E47F5F /* DetourNavMeshBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F8B1B04825B00E47F5F /* DetourNavMeshBuilder.cpp */; };
|
||||
B6DD2FC81B04825B00E47F5F /* DetourNavMeshBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F8B1B04825B00E47F5F /* DetourNavMeshBuilder.cpp */; };
|
||||
B6DD2FC91B04825B00E47F5F /* DetourNavMeshBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F8C1B04825B00E47F5F /* DetourNavMeshBuilder.h */; };
|
||||
B6DD2FCA1B04825B00E47F5F /* DetourNavMeshBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F8C1B04825B00E47F5F /* DetourNavMeshBuilder.h */; };
|
||||
B6DD2FCB1B04825B00E47F5F /* DetourNavMeshQuery.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F8D1B04825B00E47F5F /* DetourNavMeshQuery.cpp */; };
|
||||
B6DD2FCC1B04825B00E47F5F /* DetourNavMeshQuery.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F8D1B04825B00E47F5F /* DetourNavMeshQuery.cpp */; };
|
||||
B6DD2FCD1B04825B00E47F5F /* DetourNavMeshQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F8E1B04825B00E47F5F /* DetourNavMeshQuery.h */; };
|
||||
B6DD2FCE1B04825B00E47F5F /* DetourNavMeshQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F8E1B04825B00E47F5F /* DetourNavMeshQuery.h */; };
|
||||
B6DD2FCF1B04825B00E47F5F /* DetourNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F8F1B04825B00E47F5F /* DetourNode.cpp */; };
|
||||
B6DD2FD01B04825B00E47F5F /* DetourNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F8F1B04825B00E47F5F /* DetourNode.cpp */; };
|
||||
B6DD2FD11B04825B00E47F5F /* DetourNode.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F901B04825B00E47F5F /* DetourNode.h */; };
|
||||
B6DD2FD21B04825B00E47F5F /* DetourNode.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F901B04825B00E47F5F /* DetourNode.h */; };
|
||||
B6DD2FD31B04825B00E47F5F /* DetourStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F911B04825B00E47F5F /* DetourStatus.h */; };
|
||||
B6DD2FD41B04825B00E47F5F /* DetourStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F911B04825B00E47F5F /* DetourStatus.h */; };
|
||||
B6DD2FD51B04825B00E47F5F /* DetourCrowd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F931B04825B00E47F5F /* DetourCrowd.cpp */; };
|
||||
B6DD2FD61B04825B00E47F5F /* DetourCrowd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F931B04825B00E47F5F /* DetourCrowd.cpp */; };
|
||||
B6DD2FD71B04825B00E47F5F /* DetourCrowd.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F941B04825B00E47F5F /* DetourCrowd.h */; };
|
||||
B6DD2FD81B04825B00E47F5F /* DetourCrowd.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F941B04825B00E47F5F /* DetourCrowd.h */; };
|
||||
B6DD2FD91B04825B00E47F5F /* DetourLocalBoundary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F951B04825B00E47F5F /* DetourLocalBoundary.cpp */; };
|
||||
B6DD2FDA1B04825B00E47F5F /* DetourLocalBoundary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F951B04825B00E47F5F /* DetourLocalBoundary.cpp */; };
|
||||
B6DD2FDB1B04825B00E47F5F /* DetourLocalBoundary.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F961B04825B00E47F5F /* DetourLocalBoundary.h */; };
|
||||
B6DD2FDC1B04825B00E47F5F /* DetourLocalBoundary.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F961B04825B00E47F5F /* DetourLocalBoundary.h */; };
|
||||
B6DD2FDD1B04825B00E47F5F /* DetourObstacleAvoidance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F971B04825B00E47F5F /* DetourObstacleAvoidance.cpp */; };
|
||||
B6DD2FDE1B04825B00E47F5F /* DetourObstacleAvoidance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F971B04825B00E47F5F /* DetourObstacleAvoidance.cpp */; };
|
||||
B6DD2FDF1B04825B00E47F5F /* DetourObstacleAvoidance.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F981B04825B00E47F5F /* DetourObstacleAvoidance.h */; };
|
||||
B6DD2FE01B04825B00E47F5F /* DetourObstacleAvoidance.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F981B04825B00E47F5F /* DetourObstacleAvoidance.h */; };
|
||||
B6DD2FE11B04825B00E47F5F /* DetourPathCorridor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F991B04825B00E47F5F /* DetourPathCorridor.cpp */; };
|
||||
B6DD2FE21B04825B00E47F5F /* DetourPathCorridor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F991B04825B00E47F5F /* DetourPathCorridor.cpp */; };
|
||||
B6DD2FE31B04825B00E47F5F /* DetourPathCorridor.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F9A1B04825B00E47F5F /* DetourPathCorridor.h */; };
|
||||
B6DD2FE41B04825B00E47F5F /* DetourPathCorridor.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F9A1B04825B00E47F5F /* DetourPathCorridor.h */; };
|
||||
B6DD2FE51B04825B00E47F5F /* DetourPathQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F9B1B04825B00E47F5F /* DetourPathQueue.cpp */; };
|
||||
B6DD2FE61B04825B00E47F5F /* DetourPathQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F9B1B04825B00E47F5F /* DetourPathQueue.cpp */; };
|
||||
B6DD2FE71B04825B00E47F5F /* DetourPathQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F9C1B04825B00E47F5F /* DetourPathQueue.h */; };
|
||||
B6DD2FE81B04825B00E47F5F /* DetourPathQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F9C1B04825B00E47F5F /* DetourPathQueue.h */; };
|
||||
B6DD2FE91B04825B00E47F5F /* DetourProximityGrid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F9D1B04825B00E47F5F /* DetourProximityGrid.cpp */; };
|
||||
B6DD2FEA1B04825B00E47F5F /* DetourProximityGrid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2F9D1B04825B00E47F5F /* DetourProximityGrid.cpp */; };
|
||||
B6DD2FEB1B04825B00E47F5F /* DetourProximityGrid.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F9E1B04825B00E47F5F /* DetourProximityGrid.h */; };
|
||||
B6DD2FEC1B04825B00E47F5F /* DetourProximityGrid.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2F9E1B04825B00E47F5F /* DetourProximityGrid.h */; };
|
||||
B6DD2FED1B04825B00E47F5F /* DetourTileCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2FA01B04825B00E47F5F /* DetourTileCache.cpp */; };
|
||||
B6DD2FEE1B04825B00E47F5F /* DetourTileCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2FA01B04825B00E47F5F /* DetourTileCache.cpp */; };
|
||||
B6DD2FEF1B04825B00E47F5F /* DetourTileCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2FA11B04825B00E47F5F /* DetourTileCache.h */; };
|
||||
B6DD2FF01B04825B00E47F5F /* DetourTileCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2FA11B04825B00E47F5F /* DetourTileCache.h */; };
|
||||
B6DD2FF11B04825B00E47F5F /* DetourTileCacheBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2FA21B04825B00E47F5F /* DetourTileCacheBuilder.cpp */; };
|
||||
B6DD2FF21B04825B00E47F5F /* DetourTileCacheBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2FA21B04825B00E47F5F /* DetourTileCacheBuilder.cpp */; };
|
||||
B6DD2FF31B04825B00E47F5F /* DetourTileCacheBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2FA31B04825B00E47F5F /* DetourTileCacheBuilder.h */; };
|
||||
B6DD2FF41B04825B00E47F5F /* DetourTileCacheBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2FA31B04825B00E47F5F /* DetourTileCacheBuilder.h */; };
|
||||
B6DD2FF51B04825B00E47F5F /* fastlz.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2FA51B04825B00E47F5F /* fastlz.c */; };
|
||||
B6DD2FF61B04825B00E47F5F /* fastlz.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2FA51B04825B00E47F5F /* fastlz.c */; };
|
||||
B6DD2FF71B04825B00E47F5F /* fastlz.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2FA61B04825B00E47F5F /* fastlz.h */; };
|
||||
B6DD2FF81B04825B00E47F5F /* fastlz.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DD2FA61B04825B00E47F5F /* fastlz.h */; };
|
||||
D0FD03491A3B51AA00825BB5 /* CCAllocatorBase.h in Headers */ = {isa = PBXBuildFile; fileRef = D0FD033B1A3B51AA00825BB5 /* CCAllocatorBase.h */; };
|
||||
D0FD034A1A3B51AA00825BB5 /* CCAllocatorBase.h in Headers */ = {isa = PBXBuildFile; fileRef = D0FD033B1A3B51AA00825BB5 /* CCAllocatorBase.h */; };
|
||||
D0FD034B1A3B51AA00825BB5 /* CCAllocatorDiagnostics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0FD033C1A3B51AA00825BB5 /* CCAllocatorDiagnostics.cpp */; };
|
||||
|
@ -4892,6 +4994,16 @@
|
|||
B665E1EF1AA80A6500DDB1C5 /* CCPUVortexAffector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCPUVortexAffector.h; path = Particle3D/PU/CCPUVortexAffector.h; sourceTree = "<group>"; };
|
||||
B665E1F01AA80A6500DDB1C5 /* CCPUVortexAffectorTranslator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CCPUVortexAffectorTranslator.cpp; path = Particle3D/PU/CCPUVortexAffectorTranslator.cpp; sourceTree = "<group>"; };
|
||||
B665E1F11AA80A6500DDB1C5 /* CCPUVortexAffectorTranslator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCPUVortexAffectorTranslator.h; path = Particle3D/PU/CCPUVortexAffectorTranslator.h; sourceTree = "<group>"; };
|
||||
B677B0BF1B18492D006762CB /* CCNavMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CCNavMesh.cpp; path = ../cocos/navmesh/CCNavMesh.cpp; sourceTree = "<group>"; };
|
||||
B677B0C01B18492D006762CB /* CCNavMesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCNavMesh.h; path = ../cocos/navmesh/CCNavMesh.h; sourceTree = "<group>"; };
|
||||
B677B0C11B18492D006762CB /* CCNavMeshAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CCNavMeshAgent.cpp; path = ../cocos/navmesh/CCNavMeshAgent.cpp; sourceTree = "<group>"; };
|
||||
B677B0C21B18492D006762CB /* CCNavMeshAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCNavMeshAgent.h; path = ../cocos/navmesh/CCNavMeshAgent.h; sourceTree = "<group>"; };
|
||||
B677B0C31B18492D006762CB /* CCNavMeshDebugDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CCNavMeshDebugDraw.cpp; path = ../cocos/navmesh/CCNavMeshDebugDraw.cpp; sourceTree = "<group>"; };
|
||||
B677B0C41B18492D006762CB /* CCNavMeshDebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCNavMeshDebugDraw.h; path = ../cocos/navmesh/CCNavMeshDebugDraw.h; sourceTree = "<group>"; };
|
||||
B677B0C51B18492D006762CB /* CCNavMeshObstacle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CCNavMeshObstacle.cpp; path = ../cocos/navmesh/CCNavMeshObstacle.cpp; sourceTree = "<group>"; };
|
||||
B677B0C61B18492D006762CB /* CCNavMeshObstacle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCNavMeshObstacle.h; path = ../cocos/navmesh/CCNavMeshObstacle.h; sourceTree = "<group>"; };
|
||||
B677B0C71B18492D006762CB /* CCNavMeshUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CCNavMeshUtils.cpp; path = ../cocos/navmesh/CCNavMeshUtils.cpp; sourceTree = "<group>"; };
|
||||
B677B0C81B18492D006762CB /* CCNavMeshUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CCNavMeshUtils.h; path = ../cocos/navmesh/CCNavMeshUtils.h; sourceTree = "<group>"; };
|
||||
B67C624319D4186F00F11FC6 /* ccShader_3D_ColorNormal.frag */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = ccShader_3D_ColorNormal.frag; sourceTree = "<group>"; };
|
||||
B67C624419D4186F00F11FC6 /* ccShader_3D_ColorNormalTex.frag */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = ccShader_3D_ColorNormalTex.frag; sourceTree = "<group>"; };
|
||||
B67C624519D4186F00F11FC6 /* ccShader_3D_PositionNormalTex.vert */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = ccShader_3D_PositionNormalTex.vert; sourceTree = "<group>"; };
|
||||
|
@ -5324,6 +5436,47 @@
|
|||
B6D38B951AC3B45600043997 /* ccShader_3D_Particle.vert */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = ccShader_3D_Particle.vert; sourceTree = "<group>"; };
|
||||
B6D38B961AC3B45600043997 /* ccShader_3D_Skybox.frag */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = ccShader_3D_Skybox.frag; sourceTree = "<group>"; };
|
||||
B6D38B971AC3B45600043997 /* ccShader_3D_Skybox.vert */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = ccShader_3D_Skybox.vert; sourceTree = "<group>"; };
|
||||
B6DD2F7A1B04825B00E47F5F /* DebugDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DebugDraw.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F7B1B04825B00E47F5F /* DebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebugDraw.h; sourceTree = "<group>"; };
|
||||
B6DD2F7C1B04825B00E47F5F /* DetourDebugDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourDebugDraw.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F7D1B04825B00E47F5F /* DetourDebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourDebugDraw.h; sourceTree = "<group>"; };
|
||||
B6DD2F7E1B04825B00E47F5F /* RecastDebugDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RecastDebugDraw.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F7F1B04825B00E47F5F /* RecastDebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecastDebugDraw.h; sourceTree = "<group>"; };
|
||||
B6DD2F801B04825B00E47F5F /* RecastDump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RecastDump.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F811B04825B00E47F5F /* RecastDump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecastDump.h; sourceTree = "<group>"; };
|
||||
B6DD2F831B04825B00E47F5F /* DetourAlloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourAlloc.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F841B04825B00E47F5F /* DetourAlloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourAlloc.h; sourceTree = "<group>"; };
|
||||
B6DD2F851B04825B00E47F5F /* DetourAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourAssert.h; sourceTree = "<group>"; };
|
||||
B6DD2F861B04825B00E47F5F /* DetourCommon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourCommon.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F871B04825B00E47F5F /* DetourCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourCommon.h; sourceTree = "<group>"; };
|
||||
B6DD2F881B04825B00E47F5F /* DetourMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourMath.h; sourceTree = "<group>"; };
|
||||
B6DD2F891B04825B00E47F5F /* DetourNavMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourNavMesh.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F8A1B04825B00E47F5F /* DetourNavMesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourNavMesh.h; sourceTree = "<group>"; };
|
||||
B6DD2F8B1B04825B00E47F5F /* DetourNavMeshBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourNavMeshBuilder.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F8C1B04825B00E47F5F /* DetourNavMeshBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourNavMeshBuilder.h; sourceTree = "<group>"; };
|
||||
B6DD2F8D1B04825B00E47F5F /* DetourNavMeshQuery.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourNavMeshQuery.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F8E1B04825B00E47F5F /* DetourNavMeshQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourNavMeshQuery.h; sourceTree = "<group>"; };
|
||||
B6DD2F8F1B04825B00E47F5F /* DetourNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourNode.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F901B04825B00E47F5F /* DetourNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourNode.h; sourceTree = "<group>"; };
|
||||
B6DD2F911B04825B00E47F5F /* DetourStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourStatus.h; sourceTree = "<group>"; };
|
||||
B6DD2F931B04825B00E47F5F /* DetourCrowd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourCrowd.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F941B04825B00E47F5F /* DetourCrowd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourCrowd.h; sourceTree = "<group>"; };
|
||||
B6DD2F951B04825B00E47F5F /* DetourLocalBoundary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourLocalBoundary.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F961B04825B00E47F5F /* DetourLocalBoundary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourLocalBoundary.h; sourceTree = "<group>"; };
|
||||
B6DD2F971B04825B00E47F5F /* DetourObstacleAvoidance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourObstacleAvoidance.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F981B04825B00E47F5F /* DetourObstacleAvoidance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourObstacleAvoidance.h; sourceTree = "<group>"; };
|
||||
B6DD2F991B04825B00E47F5F /* DetourPathCorridor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourPathCorridor.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F9A1B04825B00E47F5F /* DetourPathCorridor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourPathCorridor.h; sourceTree = "<group>"; };
|
||||
B6DD2F9B1B04825B00E47F5F /* DetourPathQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourPathQueue.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F9C1B04825B00E47F5F /* DetourPathQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourPathQueue.h; sourceTree = "<group>"; };
|
||||
B6DD2F9D1B04825B00E47F5F /* DetourProximityGrid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourProximityGrid.cpp; sourceTree = "<group>"; };
|
||||
B6DD2F9E1B04825B00E47F5F /* DetourProximityGrid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourProximityGrid.h; sourceTree = "<group>"; };
|
||||
B6DD2FA01B04825B00E47F5F /* DetourTileCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourTileCache.cpp; sourceTree = "<group>"; };
|
||||
B6DD2FA11B04825B00E47F5F /* DetourTileCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourTileCache.h; sourceTree = "<group>"; };
|
||||
B6DD2FA21B04825B00E47F5F /* DetourTileCacheBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetourTileCacheBuilder.cpp; sourceTree = "<group>"; };
|
||||
B6DD2FA31B04825B00E47F5F /* DetourTileCacheBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetourTileCacheBuilder.h; sourceTree = "<group>"; };
|
||||
B6DD2FA51B04825B00E47F5F /* fastlz.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fastlz.c; sourceTree = "<group>"; };
|
||||
B6DD2FA61B04825B00E47F5F /* fastlz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fastlz.h; sourceTree = "<group>"; };
|
||||
D0FD033B1A3B51AA00825BB5 /* CCAllocatorBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCAllocatorBase.h; sourceTree = "<group>"; };
|
||||
D0FD033C1A3B51AA00825BB5 /* CCAllocatorDiagnostics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCAllocatorDiagnostics.cpp; sourceTree = "<group>"; };
|
||||
D0FD033D1A3B51AA00825BB5 /* CCAllocatorDiagnostics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCAllocatorDiagnostics.h; sourceTree = "<group>"; };
|
||||
|
@ -5430,6 +5583,7 @@
|
|||
1A57033E180BD0490088DEC7 /* external */,
|
||||
1551A341158F2AB200E66CFE /* Frameworks */,
|
||||
46A170851807CE87005B8026 /* math */,
|
||||
B6DD2F351B04805400E47F5F /* navmesh */,
|
||||
1AAF5360180E3374000584C8 /* network */,
|
||||
46A170611807CE7A005B8026 /* physics */,
|
||||
B6CAAFD11AF9A98E00B9B856 /* physics3d */,
|
||||
|
@ -5928,6 +6082,7 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
68B39B391B1C5C670084F72C /* clipper */,
|
||||
B6DD2F731B04820C00E47F5F /* recast */,
|
||||
B6CAB0021AF9A9EE00B9B856 /* bullet */,
|
||||
15FB20781AE7C57D00C31518 /* poly2tri */,
|
||||
382383E11A258FA7002C4610 /* flatbuffers */,
|
||||
|
@ -8520,6 +8675,116 @@
|
|||
path = MiniCLTask;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DD2F351B04805400E47F5F /* navmesh */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B677B0BF1B18492D006762CB /* CCNavMesh.cpp */,
|
||||
B677B0C01B18492D006762CB /* CCNavMesh.h */,
|
||||
B677B0C11B18492D006762CB /* CCNavMeshAgent.cpp */,
|
||||
B677B0C21B18492D006762CB /* CCNavMeshAgent.h */,
|
||||
B677B0C31B18492D006762CB /* CCNavMeshDebugDraw.cpp */,
|
||||
B677B0C41B18492D006762CB /* CCNavMeshDebugDraw.h */,
|
||||
B677B0C51B18492D006762CB /* CCNavMeshObstacle.cpp */,
|
||||
B677B0C61B18492D006762CB /* CCNavMeshObstacle.h */,
|
||||
B677B0C71B18492D006762CB /* CCNavMeshUtils.cpp */,
|
||||
B677B0C81B18492D006762CB /* CCNavMeshUtils.h */,
|
||||
);
|
||||
name = navmesh;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DD2F731B04820C00E47F5F /* recast */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DD2F791B04825B00E47F5F /* DebugUtils */,
|
||||
B6DD2F821B04825B00E47F5F /* Detour */,
|
||||
B6DD2F921B04825B00E47F5F /* DetourCrowd */,
|
||||
B6DD2F9F1B04825B00E47F5F /* DetourTileCache */,
|
||||
B6DD2FA41B04825B00E47F5F /* fastlz */,
|
||||
);
|
||||
name = recast;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DD2F791B04825B00E47F5F /* DebugUtils */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DD2F7A1B04825B00E47F5F /* DebugDraw.cpp */,
|
||||
B6DD2F7B1B04825B00E47F5F /* DebugDraw.h */,
|
||||
B6DD2F7C1B04825B00E47F5F /* DetourDebugDraw.cpp */,
|
||||
B6DD2F7D1B04825B00E47F5F /* DetourDebugDraw.h */,
|
||||
B6DD2F7E1B04825B00E47F5F /* RecastDebugDraw.cpp */,
|
||||
B6DD2F7F1B04825B00E47F5F /* RecastDebugDraw.h */,
|
||||
B6DD2F801B04825B00E47F5F /* RecastDump.cpp */,
|
||||
B6DD2F811B04825B00E47F5F /* RecastDump.h */,
|
||||
);
|
||||
name = DebugUtils;
|
||||
path = ../external/recast/DebugUtils;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DD2F821B04825B00E47F5F /* Detour */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DD2F831B04825B00E47F5F /* DetourAlloc.cpp */,
|
||||
B6DD2F841B04825B00E47F5F /* DetourAlloc.h */,
|
||||
B6DD2F851B04825B00E47F5F /* DetourAssert.h */,
|
||||
B6DD2F861B04825B00E47F5F /* DetourCommon.cpp */,
|
||||
B6DD2F871B04825B00E47F5F /* DetourCommon.h */,
|
||||
B6DD2F881B04825B00E47F5F /* DetourMath.h */,
|
||||
B6DD2F891B04825B00E47F5F /* DetourNavMesh.cpp */,
|
||||
B6DD2F8A1B04825B00E47F5F /* DetourNavMesh.h */,
|
||||
B6DD2F8B1B04825B00E47F5F /* DetourNavMeshBuilder.cpp */,
|
||||
B6DD2F8C1B04825B00E47F5F /* DetourNavMeshBuilder.h */,
|
||||
B6DD2F8D1B04825B00E47F5F /* DetourNavMeshQuery.cpp */,
|
||||
B6DD2F8E1B04825B00E47F5F /* DetourNavMeshQuery.h */,
|
||||
B6DD2F8F1B04825B00E47F5F /* DetourNode.cpp */,
|
||||
B6DD2F901B04825B00E47F5F /* DetourNode.h */,
|
||||
B6DD2F911B04825B00E47F5F /* DetourStatus.h */,
|
||||
);
|
||||
name = Detour;
|
||||
path = ../external/recast/Detour;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DD2F921B04825B00E47F5F /* DetourCrowd */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DD2F931B04825B00E47F5F /* DetourCrowd.cpp */,
|
||||
B6DD2F941B04825B00E47F5F /* DetourCrowd.h */,
|
||||
B6DD2F951B04825B00E47F5F /* DetourLocalBoundary.cpp */,
|
||||
B6DD2F961B04825B00E47F5F /* DetourLocalBoundary.h */,
|
||||
B6DD2F971B04825B00E47F5F /* DetourObstacleAvoidance.cpp */,
|
||||
B6DD2F981B04825B00E47F5F /* DetourObstacleAvoidance.h */,
|
||||
B6DD2F991B04825B00E47F5F /* DetourPathCorridor.cpp */,
|
||||
B6DD2F9A1B04825B00E47F5F /* DetourPathCorridor.h */,
|
||||
B6DD2F9B1B04825B00E47F5F /* DetourPathQueue.cpp */,
|
||||
B6DD2F9C1B04825B00E47F5F /* DetourPathQueue.h */,
|
||||
B6DD2F9D1B04825B00E47F5F /* DetourProximityGrid.cpp */,
|
||||
B6DD2F9E1B04825B00E47F5F /* DetourProximityGrid.h */,
|
||||
);
|
||||
name = DetourCrowd;
|
||||
path = ../external/recast/DetourCrowd;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DD2F9F1B04825B00E47F5F /* DetourTileCache */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DD2FA01B04825B00E47F5F /* DetourTileCache.cpp */,
|
||||
B6DD2FA11B04825B00E47F5F /* DetourTileCache.h */,
|
||||
B6DD2FA21B04825B00E47F5F /* DetourTileCacheBuilder.cpp */,
|
||||
B6DD2FA31B04825B00E47F5F /* DetourTileCacheBuilder.h */,
|
||||
);
|
||||
name = DetourTileCache;
|
||||
path = ../external/recast/DetourTileCache;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DD2FA41B04825B00E47F5F /* fastlz */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DD2FA51B04825B00E47F5F /* fastlz.c */,
|
||||
B6DD2FA61B04825B00E47F5F /* fastlz.h */,
|
||||
);
|
||||
name = fastlz;
|
||||
path = ../external/recast/fastlz;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0FD03391A3B51AA00825BB5 /* allocator */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -8621,12 +8886,15 @@
|
|||
50ABBD3E1925AB0000A911A9 /* CCGeometry.h in Headers */,
|
||||
B6CAB34F1AF9AA1A00B9B856 /* gim_geom_types.h in Headers */,
|
||||
15AE1A7719AAD40300C27E9E /* b2EdgeAndPolygonContact.h in Headers */,
|
||||
B6DD2FD11B04825B00E47F5F /* DetourNode.h in Headers */,
|
||||
15AE18F719AAD35000C27E9E /* CCBatchNode.h in Headers */,
|
||||
15AE181419AAD2F700C27E9E /* CCAnimationCurve.h in Headers */,
|
||||
50ABBE631925AB6F00A911A9 /* CCEventListenerAcceleration.h in Headers */,
|
||||
B665E4281AA80A6600DDB1C5 /* CCPUUtil.h in Headers */,
|
||||
B665E2601AA80A6500DDB1C5 /* CCPUDoEnableComponentEventHandlerTranslator.h in Headers */,
|
||||
15AE1C1419AAE2C600C27E9E /* CCPhysicsSprite.h in Headers */,
|
||||
B6DD2FE71B04825B00E47F5F /* DetourPathQueue.h in Headers */,
|
||||
B6DD2FBB1B04825B00E47F5F /* DetourAssert.h in Headers */,
|
||||
46A170EE1807CECA005B8026 /* CCPhysicsShape.h in Headers */,
|
||||
B6CAB3D91AF9AA1A00B9B856 /* btSolverBody.h in Headers */,
|
||||
15AE1A5C19AAD40300C27E9E /* b2Timer.h in Headers */,
|
||||
|
@ -8665,12 +8933,14 @@
|
|||
B665E2841AA80A6500DDB1C5 /* CCPUDoStopSystemEventHandler.h in Headers */,
|
||||
B6CAB52D1AF9AA1A00B9B856 /* btSerializer.h in Headers */,
|
||||
B665E3E01AA80A6600DDB1C5 /* CCPUSimpleSpline.h in Headers */,
|
||||
B6DD2FAD1B04825B00E47F5F /* DetourDebugDraw.h in Headers */,
|
||||
B665E42C1AA80A6600DDB1C5 /* CCPUVelocityMatchingAffector.h in Headers */,
|
||||
B665E3B41AA80A6500DDB1C5 /* CCPURendererTranslator.h in Headers */,
|
||||
B6CAAFF01AF9A9E100B9B856 /* CCPhysics3DDebugDrawer.h in Headers */,
|
||||
1A57006B180BC5A10088DEC7 /* CCActionCatmullRom.h in Headers */,
|
||||
B665E3BC1AA80A6500DDB1C5 /* CCPURibbonTrailRender.h in Headers */,
|
||||
B6CAB3371AF9AA1A00B9B856 /* btQuantization.h in Headers */,
|
||||
B677B0CB1B18492D006762CB /* CCNavMesh.h in Headers */,
|
||||
B6CAB4371AF9AA1A00B9B856 /* btGpu3DGridBroadphaseSharedCode.h in Headers */,
|
||||
B665E2A81AA80A6500DDB1C5 /* CCPUEventHandlerTranslator.h in Headers */,
|
||||
4D76BE3C1A4AAF0A00102962 /* CCActionTimelineNode.h in Headers */,
|
||||
|
@ -8684,6 +8954,7 @@
|
|||
15AE1BD319AAE01E00C27E9E /* CCControlPotentiometer.h in Headers */,
|
||||
15AE1B6E19AADA9900C27E9E /* UIHelper.h in Headers */,
|
||||
B230ED7319B417AE00364AA8 /* CCTrianglesCommand.h in Headers */,
|
||||
B6DD2FB11B04825B00E47F5F /* RecastDebugDraw.h in Headers */,
|
||||
B6CAB2F71AF9AA1A00B9B856 /* btTriangleBuffer.h in Headers */,
|
||||
B665E2D41AA80A6500DDB1C5 /* CCPUInterParticleColliderTranslator.h in Headers */,
|
||||
15AE187F19AAD33D00C27E9E /* CCBKeyframe.h in Headers */,
|
||||
|
@ -8701,7 +8972,9 @@
|
|||
15AE182A19AAD2F700C27E9E /* CCMeshSkin.h in Headers */,
|
||||
B276EF5F1988D1D500CD400F /* CCVertexIndexData.h in Headers */,
|
||||
1A57007F180BC5A10088DEC7 /* CCActionInterval.h in Headers */,
|
||||
B6DD2FDB1B04825B00E47F5F /* DetourLocalBoundary.h in Headers */,
|
||||
B6CAB3491AF9AA1A00B9B856 /* gim_clip_polygon.h in Headers */,
|
||||
B677B0DB1B18492D006762CB /* CCNavMeshUtils.h in Headers */,
|
||||
B6CAAFE41AF9A9E100B9B856 /* CCPhysics3D.h in Headers */,
|
||||
15AE1A7F19AAD40300C27E9E /* b2DistanceJoint.h in Headers */,
|
||||
B665E3301AA80A6500DDB1C5 /* CCPUOnCountObserverTranslator.h in Headers */,
|
||||
|
@ -8753,6 +9026,8 @@
|
|||
15AE191219AAD35000C27E9E /* CCProcessBase.h in Headers */,
|
||||
15AE1BB619AADFEF00C27E9E /* SocketIO.h in Headers */,
|
||||
B665E2F41AA80A6500DDB1C5 /* CCPULineEmitterTranslator.h in Headers */,
|
||||
B6DD2FB91B04825B00E47F5F /* DetourAlloc.h in Headers */,
|
||||
B6DD2FF71B04825B00E47F5F /* fastlz.h in Headers */,
|
||||
B665E2D81AA80A6500DDB1C5 /* CCPUJetAffector.h in Headers */,
|
||||
1A570093180BC5A10088DEC7 /* CCActionTween.h in Headers */,
|
||||
B6CAB3CF1AF9AA1A00B9B856 /* btSequentialImpulseConstraintSolver.h in Headers */,
|
||||
|
@ -8826,6 +9101,7 @@
|
|||
15AE1B6C19AADA9900C27E9E /* UIWidget.h in Headers */,
|
||||
B665E2681AA80A6500DDB1C5 /* CCPUDoExpireEventHandlerTranslator.h in Headers */,
|
||||
15FB208B1AE7C57D00C31518 /* utils.h in Headers */,
|
||||
B6DD2FB51B04825B00E47F5F /* RecastDump.h in Headers */,
|
||||
B6CAB3411AF9AA1A00B9B856 /* gim_bitset.h in Headers */,
|
||||
15AE180E19AAD2F700C27E9E /* CCAnimate3D.h in Headers */,
|
||||
1A5701B3180BCB590088DEC7 /* CCFontFNT.h in Headers */,
|
||||
|
@ -8843,6 +9119,7 @@
|
|||
B6CAB3E91AF9AA1A00B9B856 /* btDiscreteDynamicsWorld.h in Headers */,
|
||||
B6CAB2F31AF9AA1A00B9B856 /* btTetrahedronShape.h in Headers */,
|
||||
B6CAB4231AF9AA1A00B9B856 /* btMLCPSolverInterface.h in Headers */,
|
||||
B6DD2FE31B04825B00E47F5F /* DetourPathCorridor.h in Headers */,
|
||||
50ED2BE019BEAF7900A0AB90 /* UIEditBoxImpl-win32.h in Headers */,
|
||||
B6CAB5011AF9AA1A00B9B856 /* btConvexHullComputer.h in Headers */,
|
||||
15AE197119AAD35700C27E9E /* CCFrame.h in Headers */,
|
||||
|
@ -8934,6 +9211,7 @@
|
|||
B665E3081AA80A6500DDB1C5 /* CCPUMeshSurfaceEmitterTranslator.h in Headers */,
|
||||
15AE184219AAD2F700C27E9E /* CCSprite3D.h in Headers */,
|
||||
B665E3181AA80A6500DDB1C5 /* CCPUObserverTranslator.h in Headers */,
|
||||
B6DD2FC91B04825B00E47F5F /* DetourNavMeshBuilder.h in Headers */,
|
||||
B6CAB5111AF9AA1A00B9B856 /* btMatrix3x3.h in Headers */,
|
||||
B665E3201AA80A6500DDB1C5 /* CCPUOnClearObserverTranslator.h in Headers */,
|
||||
B665E2A01AA80A6500DDB1C5 /* CCPUEventHandler.h in Headers */,
|
||||
|
@ -8982,6 +9260,7 @@
|
|||
B6CAB50B1AF9AA1A00B9B856 /* btHashMap.h in Headers */,
|
||||
15AE1A6719AAD40300C27E9E /* b2World.h in Headers */,
|
||||
B6CAB3571AF9AA1A00B9B856 /* gim_math.h in Headers */,
|
||||
B677B0D71B18492D006762CB /* CCNavMeshObstacle.h in Headers */,
|
||||
15AE199B19AAD39600C27E9E /* PageViewReader.h in Headers */,
|
||||
B665E2A41AA80A6500DDB1C5 /* CCPUEventHandlerManager.h in Headers */,
|
||||
15AE1A6219AAD40300C27E9E /* b2Fixture.h in Headers */,
|
||||
|
@ -9008,6 +9287,7 @@
|
|||
15AE188519AAD33D00C27E9E /* CCBSequence.h in Headers */,
|
||||
15FB20951AE7C57D00C31518 /* cdt.h in Headers */,
|
||||
B665E3541AA80A6500DDB1C5 /* CCPUOnQuotaObserver.h in Headers */,
|
||||
B6DD2FDF1B04825B00E47F5F /* DetourObstacleAvoidance.h in Headers */,
|
||||
B6CAB4F11AF9AA1A00B9B856 /* Win32ThreadSupport.h in Headers */,
|
||||
50643BE219BFCF1800EF68ED /* CCPlatformConfig.h in Headers */,
|
||||
B29A7DF519EE1B7700872B35 /* Skeleton.h in Headers */,
|
||||
|
@ -9017,6 +9297,7 @@
|
|||
5034CA49191D591100CE6051 /* ccShader_Label_df.frag in Headers */,
|
||||
292DB14119B4574100A80320 /* UIEditBoxImpl.h in Headers */,
|
||||
B29A7DD919EE1B7700872B35 /* SkeletonRenderer.h in Headers */,
|
||||
B6DD2FC11B04825B00E47F5F /* DetourMath.h in Headers */,
|
||||
50CB247919D9C5A100687767 /* AudioEngine-inl.h in Headers */,
|
||||
1A01C68C18F57BE800EFE3A6 /* CCDeprecated.h in Headers */,
|
||||
B6CAB0001AF9A9E100B9B856 /* CCPhysicsSprite3D.h in Headers */,
|
||||
|
@ -9040,6 +9321,7 @@
|
|||
15AE1A5419AAD40300C27E9E /* b2GrowableStack.h in Headers */,
|
||||
15AE1B4E19AADA9900C27E9E /* UIListView.h in Headers */,
|
||||
1A570284180BCC900088DEC7 /* CCSpriteBatchNode.h in Headers */,
|
||||
B6DD2FD71B04825B00E47F5F /* DetourCrowd.h in Headers */,
|
||||
5034CA2B191D591100CE6051 /* ccShader_PositionTextureA8Color.vert in Headers */,
|
||||
B665E2041AA80A6500DDB1C5 /* CCPUAlignAffectorTranslator.h in Headers */,
|
||||
B6CAB3A11AF9AA1A00B9B856 /* btKinematicCharacterController.h in Headers */,
|
||||
|
@ -9064,6 +9346,7 @@
|
|||
B665E3501AA80A6500DDB1C5 /* CCPUOnPositionObserverTranslator.h in Headers */,
|
||||
B68778FA1A8CA82E00643ABF /* CCParticle3DAffector.h in Headers */,
|
||||
15AE1BA019AADFDF00C27E9E /* UILayout.h in Headers */,
|
||||
B677B0CF1B18492D006762CB /* CCNavMeshAgent.h in Headers */,
|
||||
1A570294180BCCAB0088DEC7 /* CCAnimation.h in Headers */,
|
||||
B665E4081AA80A6600DDB1C5 /* CCPUSphereSurfaceEmitter.h in Headers */,
|
||||
B6CAB28B1AF9AA1A00B9B856 /* btCapsuleShape.h in Headers */,
|
||||
|
@ -9241,6 +9524,7 @@
|
|||
B6CAB1FF1AF9AA1A00B9B856 /* btDispatcher.h in Headers */,
|
||||
15AE188B19AAD33D00C27E9E /* CCControlLoader.h in Headers */,
|
||||
B29A7DF719EE1B7700872B35 /* Attachment.h in Headers */,
|
||||
B6DD2FA91B04825B00E47F5F /* DebugDraw.h in Headers */,
|
||||
15FB208D1AE7C57D00C31518 /* poly2tri.h in Headers */,
|
||||
B6CAB3091AF9AA1A00B9B856 /* btTriangleMesh.h in Headers */,
|
||||
B6CAB4AF1AF9AA1A00B9B856 /* SpuCollisionTaskProcess.h in Headers */,
|
||||
|
@ -9257,10 +9541,12 @@
|
|||
B6CAB1E31AF9AA1A00B9B856 /* btBulletDynamicsCommon.h in Headers */,
|
||||
382384311A259112002C4610 /* ParticleReader.h in Headers */,
|
||||
B6CAB3BD1AF9AA1A00B9B856 /* btGeneric6DofSpringConstraint.h in Headers */,
|
||||
B6DD2FBF1B04825B00E47F5F /* DetourCommon.h in Headers */,
|
||||
B665E3D01AA80A6600DDB1C5 /* CCPUScriptCompiler.h in Headers */,
|
||||
5034CA35191D591100CE6051 /* ccShader_PositionTexture.frag in Headers */,
|
||||
15AE1BB219AADFEF00C27E9E /* HttpClient.h in Headers */,
|
||||
B6CAB3FD1AF9AA1A00B9B856 /* btMultiBodyConstraint.h in Headers */,
|
||||
B6DD2FF31B04825B00E47F5F /* DetourTileCacheBuilder.h in Headers */,
|
||||
15AE197619AAD35700C27E9E /* CCTimelineMacro.h in Headers */,
|
||||
50ABBE6F1925AB6F00A911A9 /* CCEventListenerKeyboard.h in Headers */,
|
||||
15AE1A5619AAD40300C27E9E /* b2Math.h in Headers */,
|
||||
|
@ -9338,7 +9624,9 @@
|
|||
B665E2881AA80A6500DDB1C5 /* CCPUDoStopSystemEventHandlerTranslator.h in Headers */,
|
||||
B665E2441AA80A6500DDB1C5 /* CCPUCollisionAvoidanceAffector.h in Headers */,
|
||||
B665E2281AA80A6500DDB1C5 /* CCPUBillboardChain.h in Headers */,
|
||||
B6DD2FD31B04825B00E47F5F /* DetourStatus.h in Headers */,
|
||||
15AE18A919AAD33D00C27E9E /* CCSpriteLoader.h in Headers */,
|
||||
B677B0D31B18492D006762CB /* CCNavMeshDebugDraw.h in Headers */,
|
||||
15AE198419AAD36400C27E9E /* WidgetReaderProtocol.h in Headers */,
|
||||
B6CAB53D1AF9AA1A00B9B856 /* cl_MiniCL_Defs.h in Headers */,
|
||||
50ABBEC91925AB6F00A911A9 /* firePngData.h in Headers */,
|
||||
|
@ -9471,6 +9759,7 @@
|
|||
B6CAB2EB1AF9AA1A00B9B856 /* btStaticPlaneShape.h in Headers */,
|
||||
3EACC9A219F5014D00EB3C5E /* CCCamera.h in Headers */,
|
||||
B6CAB5331AF9AA1A00B9B856 /* btTransformUtil.h in Headers */,
|
||||
B6DD2FEF1B04825B00E47F5F /* DetourTileCache.h in Headers */,
|
||||
50ABBECD1925AB6F00A911A9 /* s3tc.h in Headers */,
|
||||
B6CAB3651AF9AA1A00B9B856 /* btContinuousConvexCollision.h in Headers */,
|
||||
15AE1BD119AAE01E00C27E9E /* CCControlHuePicker.h in Headers */,
|
||||
|
@ -9479,7 +9768,10 @@
|
|||
50ABBE771925AB6F00A911A9 /* CCEventListenerTouch.h in Headers */,
|
||||
5034CA33191D591100CE6051 /* ccShader_PositionTexture_uColor.frag in Headers */,
|
||||
B665E4341AA80A6600DDB1C5 /* CCPUVertexEmitter.h in Headers */,
|
||||
B6DD2FEB1B04825B00E47F5F /* DetourProximityGrid.h in Headers */,
|
||||
B6DD2FC51B04825B00E47F5F /* DetourNavMesh.h in Headers */,
|
||||
50ABC0171926664800A911A9 /* CCImage.h in Headers */,
|
||||
B6DD2FCD1B04825B00E47F5F /* DetourNavMeshQuery.h in Headers */,
|
||||
50ABBDA91925AB4100A911A9 /* CCRenderCommand.h in Headers */,
|
||||
B6CAB3791AF9AA1A00B9B856 /* btGjkEpaPenetrationDepthSolver.h in Headers */,
|
||||
50ABBD951925AB4100A911A9 /* CCGLProgramState.h in Headers */,
|
||||
|
@ -9587,8 +9879,10 @@
|
|||
B6CAB4061AF9AA1A00B9B856 /* btMultiBodyDynamicsWorld.h in Headers */,
|
||||
ED74D76A1A5B8A2600157FD4 /* CCPhysicsHelper.h in Headers */,
|
||||
5034CA40191D591100CE6051 /* ccShader_Position_uColor.vert in Headers */,
|
||||
B6DD2FD41B04825B00E47F5F /* DetourStatus.h in Headers */,
|
||||
B665E2891AA80A6500DDB1C5 /* CCPUDoStopSystemEventHandlerTranslator.h in Headers */,
|
||||
15AE184719AAD2F700C27E9E /* CCSprite3DMaterial.h in Headers */,
|
||||
B6DD2FC21B04825B00E47F5F /* DetourMath.h in Headers */,
|
||||
B6CAB5101AF9AA1A00B9B856 /* btList.h in Headers */,
|
||||
15AE1BFC19AAE01E00C27E9E /* CCControlUtils.h in Headers */,
|
||||
15AE193519AAD35100C27E9E /* CCActionObject.h in Headers */,
|
||||
|
@ -9604,7 +9898,9 @@
|
|||
B257B4511989D5E800D9A687 /* CCPrimitive.h in Headers */,
|
||||
50643BE319BFCF1800EF68ED /* CCPlatformConfig.h in Headers */,
|
||||
B665E27D1AA80A6500DDB1C5 /* CCPUDoScaleEventHandler.h in Headers */,
|
||||
B6DD2FE81B04825B00E47F5F /* DetourPathQueue.h in Headers */,
|
||||
B6CAB29E1AF9AA1A00B9B856 /* btConeShape.h in Headers */,
|
||||
B677B0D81B18492D006762CB /* CCNavMeshObstacle.h in Headers */,
|
||||
15AE181F19AAD2F700C27E9E /* CCBundle3DData.h in Headers */,
|
||||
15AE193119AAD35100C27E9E /* CCActionManagerEx.h in Headers */,
|
||||
15AE185B19AAD31200C27E9E /* CDOpenALSupport.h in Headers */,
|
||||
|
@ -9628,6 +9924,7 @@
|
|||
B6CAB32E1AF9AA1A00B9B856 /* btGImpactMassUtil.h in Headers */,
|
||||
B6CAB43C1AF9AA1A00B9B856 /* btGpu3DGridBroadphaseSharedTypes.h in Headers */,
|
||||
50643BD619BFAEDA00EF68ED /* CCPlatformDefine.h in Headers */,
|
||||
B6DD2FCE1B04825B00E47F5F /* DetourNavMeshQuery.h in Headers */,
|
||||
1A570068180BC5A10088DEC7 /* CCActionCamera.h in Headers */,
|
||||
B29A7E1E19EE1B7700872B35 /* PolygonBatch.h in Headers */,
|
||||
B6CAB4E61AF9AA1A00B9B856 /* SpuSampleTaskProcess.h in Headers */,
|
||||
|
@ -9643,6 +9940,7 @@
|
|||
B665E4311AA80A6600DDB1C5 /* CCPUVelocityMatchingAffectorTranslator.h in Headers */,
|
||||
B6CAB2C21AF9AA1A00B9B856 /* btEmptyShape.h in Headers */,
|
||||
B665E3C51AA80A6600DDB1C5 /* CCPUScaleAffectorTranslator.h in Headers */,
|
||||
B6DD2FF81B04825B00E47F5F /* fastlz.h in Headers */,
|
||||
B665E4351AA80A6600DDB1C5 /* CCPUVertexEmitter.h in Headers */,
|
||||
B665E2451AA80A6500DDB1C5 /* CCPUCollisionAvoidanceAffector.h in Headers */,
|
||||
B6CAB3381AF9AA1A00B9B856 /* btQuantization.h in Headers */,
|
||||
|
@ -9700,6 +9998,7 @@
|
|||
B6CAB5341AF9AA1A00B9B856 /* btTransformUtil.h in Headers */,
|
||||
1A570088180BC5A10088DEC7 /* CCActionPageTurn3D.h in Headers */,
|
||||
15AE1B9319AADA9A00C27E9E /* UIHelper.h in Headers */,
|
||||
B677B0DC1B18492D006762CB /* CCNavMeshUtils.h in Headers */,
|
||||
50ABBD9E1925AB4100A911A9 /* ccGLStateCache.h in Headers */,
|
||||
B665E2111AA80A6500DDB1C5 /* CCPUBaseForceAffector.h in Headers */,
|
||||
B665E30D1AA80A6500DDB1C5 /* CCPUNoise.h in Headers */,
|
||||
|
@ -9758,6 +10057,7 @@
|
|||
50ABBD571925AB0000A911A9 /* TransformUtils.h in Headers */,
|
||||
B665E2711AA80A6500DDB1C5 /* CCPUDoFreezeEventHandlerTranslator.h in Headers */,
|
||||
1A570115180BC8EE0088DEC7 /* CCDrawNode.h in Headers */,
|
||||
B677B0D41B18492D006762CB /* CCNavMeshDebugDraw.h in Headers */,
|
||||
B6CAB2341AF9AA1A00B9B856 /* btCollisionWorld.h in Headers */,
|
||||
1A57011E180BC90D0088DEC7 /* CCGrabber.h in Headers */,
|
||||
B6CAB4A21AF9AA1A00B9B856 /* PosixThreadSupport.h in Headers */,
|
||||
|
@ -9810,13 +10110,16 @@
|
|||
B665E3E51AA80A6600DDB1C5 /* CCPUSineForceAffector.h in Headers */,
|
||||
182C5CE81A9D725400C30D34 /* UserCameraReader.h in Headers */,
|
||||
15AE1A4C19AAD3D500C27E9E /* b2EdgeShape.h in Headers */,
|
||||
B6DD2FB21B04825B00E47F5F /* RecastDebugDraw.h in Headers */,
|
||||
B6CAB39C1AF9AA1A00B9B856 /* btVoronoiSimplexSolver.h in Headers */,
|
||||
B6CAB2701AF9AA1A00B9B856 /* btSphereSphereCollisionAlgorithm.h in Headers */,
|
||||
1A5701B4180BCB590088DEC7 /* CCFontFNT.h in Headers */,
|
||||
B6DD2FBC1B04825B00E47F5F /* DetourAssert.h in Headers */,
|
||||
15AE18D419AAD33D00C27E9E /* CCParticleSystemQuadLoader.h in Headers */,
|
||||
B665E3411AA80A6500DDB1C5 /* CCPUOnEventFlagObserverTranslator.h in Headers */,
|
||||
B6CAB5041AF9AA1A00B9B856 /* btDefaultMotionState.h in Headers */,
|
||||
B6CAB52A1AF9AA1A00B9B856 /* btScalar.h in Headers */,
|
||||
B6DD2FF41B04825B00E47F5F /* DetourTileCacheBuilder.h in Headers */,
|
||||
B29A7DFA19EE1B7700872B35 /* Json.h in Headers */,
|
||||
3823842B1A2590F9002C4610 /* NodeReader.h in Headers */,
|
||||
B6CAB3241AF9AA1A00B9B856 /* btGeometryOperations.h in Headers */,
|
||||
|
@ -9830,6 +10133,7 @@
|
|||
15AE18CB19AAD33D00C27E9E /* CCMenuLoader.h in Headers */,
|
||||
B665E4011AA80A6600DDB1C5 /* CCPUSphereCollider.h in Headers */,
|
||||
B6CAB31E1AF9AA1A00B9B856 /* btContactProcessing.h in Headers */,
|
||||
B6DD2FC61B04825B00E47F5F /* DetourNavMesh.h in Headers */,
|
||||
1A5701BC180BCB5A0088DEC7 /* CCLabel.h in Headers */,
|
||||
B665E2D51AA80A6500DDB1C5 /* CCPUInterParticleColliderTranslator.h in Headers */,
|
||||
1A5701C0180BCB5A0088DEC7 /* CCLabelAtlas.h in Headers */,
|
||||
|
@ -9848,6 +10152,7 @@
|
|||
B6CAB4EE1AF9AA1A00B9B856 /* vectormath2bullet.h in Headers */,
|
||||
15AE1BBA19AADFF000C27E9E /* HttpClient.h in Headers */,
|
||||
B6CAB2241AF9AA1A00B9B856 /* btCollisionConfiguration.h in Headers */,
|
||||
B6DD2FCA1B04825B00E47F5F /* DetourNavMeshBuilder.h in Headers */,
|
||||
292DB14619B4574100A80320 /* UIEditBoxImpl-android.h in Headers */,
|
||||
B6CAB49E1AF9AA1A00B9B856 /* PlatformDefinitions.h in Headers */,
|
||||
B665E2DD1AA80A6500DDB1C5 /* CCPUJetAffectorTranslator.h in Headers */,
|
||||
|
@ -9881,6 +10186,7 @@
|
|||
15AE196219AAD35100C27E9E /* CCSSceneReader.h in Headers */,
|
||||
1A01C69518F57BE800EFE3A6 /* CCFloat.h in Headers */,
|
||||
B665E2011AA80A6500DDB1C5 /* CCPUAlignAffector.h in Headers */,
|
||||
B6DD2FEC1B04825B00E47F5F /* DetourProximityGrid.h in Headers */,
|
||||
B6CAB49C1AF9AA1A00B9B856 /* HeapManager.h in Headers */,
|
||||
1A5701CA180BCB5A0088DEC7 /* CCLabelTextFormatter.h in Headers */,
|
||||
B6CAB25C1AF9AA1A00B9B856 /* btHashedSimplePairCache.h in Headers */,
|
||||
|
@ -9920,8 +10226,10 @@
|
|||
1A5701E9180BCB8C0088DEC7 /* CCTransition.h in Headers */,
|
||||
15AE198F19AAD36E00C27E9E /* CheckBoxReader.h in Headers */,
|
||||
B665E3911AA80A6500DDB1C5 /* CCPUPlaneCollider.h in Headers */,
|
||||
B6DD2FAE1B04825B00E47F5F /* DetourDebugDraw.h in Headers */,
|
||||
382384011A258FA7002C4610 /* util.h in Headers */,
|
||||
18956BB51A9DFBFD006E9155 /* Particle3DReader.h in Headers */,
|
||||
B6DD2FD81B04825B00E47F5F /* DetourCrowd.h in Headers */,
|
||||
B6CAB34A1AF9AA1A00B9B856 /* gim_clip_polygon.h in Headers */,
|
||||
B665E3F91AA80A6600DDB1C5 /* CCPUSlaveEmitterTranslator.h in Headers */,
|
||||
B665E2551AA80A6500DDB1C5 /* CCPUDoAffectorEventHandler.h in Headers */,
|
||||
|
@ -9958,12 +10266,14 @@
|
|||
1A57020B180BCBDF0088DEC7 /* CCMotionStreak.h in Headers */,
|
||||
B665E2211AA80A6500DDB1C5 /* CCPUBehaviourManager.h in Headers */,
|
||||
15AE195219AAD35100C27E9E /* CCDecorativeDisplay.h in Headers */,
|
||||
B6DD2FAA1B04825B00E47F5F /* DebugDraw.h in Headers */,
|
||||
15AE196619AAD35100C27E9E /* CCTween.h in Headers */,
|
||||
15AE194619AAD35100C27E9E /* CCComAttribute.h in Headers */,
|
||||
B6CAB5181AF9AA1A00B9B856 /* btMotionState.h in Headers */,
|
||||
B6CAAFE51AF9A9E100B9B856 /* CCPhysics3D.h in Headers */,
|
||||
B6CAB1F41AF9AA1A00B9B856 /* btCollisionAlgorithm.h in Headers */,
|
||||
382384241A2590DA002C4610 /* GameMapReader.h in Headers */,
|
||||
B6DD2FDC1B04825B00E47F5F /* DetourLocalBoundary.h in Headers */,
|
||||
15AE1ABD19AAD40300C27E9E /* b2PolygonAndCircleContact.h in Headers */,
|
||||
15AE1AA819AAD40300C27E9E /* b2Island.h in Headers */,
|
||||
B665E2391AA80A6500DDB1C5 /* CCPUBoxEmitterTranslator.h in Headers */,
|
||||
|
@ -9984,6 +10294,7 @@
|
|||
15FB20961AE7C57D00C31518 /* cdt.h in Headers */,
|
||||
15AE1AC919AAD40300C27E9E /* b2Joint.h in Headers */,
|
||||
382383EF1A258FA7002C4610 /* flatbuffers.h in Headers */,
|
||||
B677B0CC1B18492D006762CB /* CCNavMesh.h in Headers */,
|
||||
B6D38B911AC3AFAC00043997 /* CCTextureCube.h in Headers */,
|
||||
B665E2811AA80A6500DDB1C5 /* CCPUDoScaleEventHandlerTranslator.h in Headers */,
|
||||
15AE196819AAD35100C27E9E /* CCUtilMath.h in Headers */,
|
||||
|
@ -10038,6 +10349,7 @@
|
|||
B6CAB1F81AF9AA1A00B9B856 /* btDbvt.h in Headers */,
|
||||
B665E35D1AA80A6500DDB1C5 /* CCPUOnRandomObserver.h in Headers */,
|
||||
1A570281180BCC900088DEC7 /* CCSprite.h in Headers */,
|
||||
B6DD2FD21B04825B00E47F5F /* DetourNode.h in Headers */,
|
||||
1A570285180BCC900088DEC7 /* CCSpriteBatchNode.h in Headers */,
|
||||
15AE193B19AAD35100C27E9E /* CCArmatureDataManager.h in Headers */,
|
||||
1A570289180BCC900088DEC7 /* CCSpriteFrame.h in Headers */,
|
||||
|
@ -10080,6 +10392,7 @@
|
|||
1A5702ED180BCE750088DEC7 /* CCTileMapAtlas.h in Headers */,
|
||||
15AE195E19AAD35100C27E9E /* CCSkin.h in Headers */,
|
||||
B6CAB3CC1AF9AA1A00B9B856 /* btPoint2PointConstraint.h in Headers */,
|
||||
B6DD2FE01B04825B00E47F5F /* DetourObstacleAvoidance.h in Headers */,
|
||||
B6CAB5081AF9AA1A00B9B856 /* btGeometryUtil.h in Headers */,
|
||||
1A5702F1180BCE750088DEC7 /* CCTMXLayer.h in Headers */,
|
||||
15FB20771AE7BF8600C31518 /* CCAutoPolygon.h in Headers */,
|
||||
|
@ -10147,6 +10460,7 @@
|
|||
15AE1BBE19AADFF000C27E9E /* SocketIO.h in Headers */,
|
||||
B665E3351AA80A6500DDB1C5 /* CCPUOnEmissionObserver.h in Headers */,
|
||||
B665E3811AA80A6500DDB1C5 /* CCPUParticleSystem3DTranslator.h in Headers */,
|
||||
B6DD2FBA1B04825B00E47F5F /* DetourAlloc.h in Headers */,
|
||||
B6CAB4D21AF9AA1A00B9B856 /* SpuConvexPenetrationDepthSolver.h in Headers */,
|
||||
B665E2151AA80A6500DDB1C5 /* CCPUBaseForceAffectorTranslator.h in Headers */,
|
||||
1A01C69B18F57BE800EFE3A6 /* CCSet.h in Headers */,
|
||||
|
@ -10178,8 +10492,10 @@
|
|||
B6CAB3761AF9AA1A00B9B856 /* btGjkEpa2.h in Headers */,
|
||||
182C5CD91A98F30500C30D34 /* Sprite3DReader.h in Headers */,
|
||||
50ABBE301925AB6F00A911A9 /* ccConfig.h in Headers */,
|
||||
B6DD2FE41B04825B00E47F5F /* DetourPathCorridor.h in Headers */,
|
||||
15AE195819AAD35100C27E9E /* CCInputDelegate.h in Headers */,
|
||||
B6CAB3281AF9AA1A00B9B856 /* btGImpactBvh.h in Headers */,
|
||||
B6DD2FB61B04825B00E47F5F /* RecastDump.h in Headers */,
|
||||
50ABBDAC1925AB4100A911A9 /* CCRenderCommandPool.h in Headers */,
|
||||
B6CAB24C1AF9AA1A00B9B856 /* btConvexPlaneCollisionAlgorithm.h in Headers */,
|
||||
B665E3CD1AA80A6600DDB1C5 /* CCPUScaleVelocityAffectorTranslator.h in Headers */,
|
||||
|
@ -10278,6 +10594,7 @@
|
|||
299CF1FE19A434BC00C378C1 /* ccRandom.h in Headers */,
|
||||
B665E3BD1AA80A6500DDB1C5 /* CCPURibbonTrailRender.h in Headers */,
|
||||
50ABBDBC1925AB4100A911A9 /* CCTextureAtlas.h in Headers */,
|
||||
B6DD2FC01B04825B00E47F5F /* DetourCommon.h in Headers */,
|
||||
B6CAAFE91AF9A9E100B9B856 /* CCPhysics3DComponent.h in Headers */,
|
||||
15AE182319AAD2F700C27E9E /* CCBundleReader.h in Headers */,
|
||||
182C5CB51A95964F00C30D34 /* Node3DReader.h in Headers */,
|
||||
|
@ -10315,6 +10632,7 @@
|
|||
B6CAB3001AF9AA1A00B9B856 /* btTriangleIndexVertexArray.h in Headers */,
|
||||
B6CAB3881AF9AA1A00B9B856 /* btPersistentManifold.h in Headers */,
|
||||
B68779031A8CA82E00643ABF /* CCParticle3DRender.h in Headers */,
|
||||
B6DD2FF01B04825B00E47F5F /* DetourTileCache.h in Headers */,
|
||||
15AE195A19AAD35100C27E9E /* CCProcessBase.h in Headers */,
|
||||
15AE193D19AAD35100C27E9E /* CCArmatureDefine.h in Headers */,
|
||||
B6CAB37A1AF9AA1A00B9B856 /* btGjkEpaPenetrationDepthSolver.h in Headers */,
|
||||
|
@ -10388,6 +10706,7 @@
|
|||
15AE18D219AAD33D00C27E9E /* CCNodeLoaderListener.h in Headers */,
|
||||
15AE184D19AAD30800C27E9E /* SimpleAudioEngine.h in Headers */,
|
||||
B665E3551AA80A6500DDB1C5 /* CCPUOnQuotaObserver.h in Headers */,
|
||||
B677B0D01B18492D006762CB /* CCNavMeshAgent.h in Headers */,
|
||||
B665E3C91AA80A6600DDB1C5 /* CCPUScaleVelocityAffector.h in Headers */,
|
||||
B665E3FD1AA80A6600DDB1C5 /* CCPUSphere.h in Headers */,
|
||||
B68778FB1A8CA82E00643ABF /* CCParticle3DAffector.h in Headers */,
|
||||
|
@ -10544,6 +10863,7 @@
|
|||
15AE189D19AAD33D00C27E9E /* CCNodeLoader.cpp in Sources */,
|
||||
B665E2461AA80A6500DDB1C5 /* CCPUCollisionAvoidanceAffectorTranslator.cpp in Sources */,
|
||||
B68779041A8CA82E00643ABF /* CCParticleSystem3D.cpp in Sources */,
|
||||
B6DD2FB71B04825B00E47F5F /* DetourAlloc.cpp in Sources */,
|
||||
5027253C190BF1B900AAF4ED /* cocos2d.cpp in Sources */,
|
||||
50ABC0611926664800A911A9 /* CCCommon-mac.mm in Sources */,
|
||||
50ABBDB11925AB4100A911A9 /* ccShaders.cpp in Sources */,
|
||||
|
@ -10569,6 +10889,7 @@
|
|||
B6CAB41F1AF9AA1A00B9B856 /* btMLCPSolver.cpp in Sources */,
|
||||
46A170E61807CECA005B8026 /* CCPhysicsBody.cpp in Sources */,
|
||||
B665E40A1AA80A6600DDB1C5 /* CCPUSphereSurfaceEmitterTranslator.cpp in Sources */,
|
||||
B677B0D91B18492D006762CB /* CCNavMeshUtils.cpp in Sources */,
|
||||
50ABBDA71925AB4100A911A9 /* CCRenderCommand.cpp in Sources */,
|
||||
B665E35E1AA80A6500DDB1C5 /* CCPUOnRandomObserverTranslator.cpp in Sources */,
|
||||
B6CAB2931AF9AA1A00B9B856 /* btCompoundShape.cpp in Sources */,
|
||||
|
@ -10644,6 +10965,7 @@
|
|||
B6CAB4D91AF9AA1A00B9B856 /* SpuMinkowskiPenetrationDepthSolver.cpp in Sources */,
|
||||
B665E3CE1AA80A6600DDB1C5 /* CCPUScriptCompiler.cpp in Sources */,
|
||||
15AE18E819AAD35000C27E9E /* CCActionManagerEx.cpp in Sources */,
|
||||
B677B0CD1B18492D006762CB /* CCNavMeshAgent.cpp in Sources */,
|
||||
B29A7DDB19EE1B7700872B35 /* Event.c in Sources */,
|
||||
15AE191B19AAD35000C27E9E /* CCTransformHelp.cpp in Sources */,
|
||||
15AE190319AAD35000C27E9E /* CCComRender.cpp in Sources */,
|
||||
|
@ -10665,6 +10987,7 @@
|
|||
B6CAB2451AF9AA1A00B9B856 /* btConvexConvexAlgorithm.cpp in Sources */,
|
||||
15AE1B9D19AADFDF00C27E9E /* UIVBox.cpp in Sources */,
|
||||
B665E2B61AA80A6500DDB1C5 /* CCPUForceFieldAffector.cpp in Sources */,
|
||||
B6DD2FD51B04825B00E47F5F /* DetourCrowd.cpp in Sources */,
|
||||
1A570079180BC5A10088DEC7 /* CCActionInstant.cpp in Sources */,
|
||||
15AE1A7019AAD40300C27E9E /* b2Contact.cpp in Sources */,
|
||||
15AE18A619AAD33D00C27E9E /* CCScrollViewLoader.cpp in Sources */,
|
||||
|
@ -10672,6 +10995,7 @@
|
|||
15AE184419AAD2F700C27E9E /* CCSprite3DMaterial.cpp in Sources */,
|
||||
50ABBE591925AB6F00A911A9 /* CCEventKeyboard.cpp in Sources */,
|
||||
B665E2FA1AA80A6500DDB1C5 /* CCPUMaterialManager.cpp in Sources */,
|
||||
B6DD2FAF1B04825B00E47F5F /* RecastDebugDraw.cpp in Sources */,
|
||||
B29A7DDF19EE1B7700872B35 /* IkConstraintData.c in Sources */,
|
||||
B665E3921AA80A6500DDB1C5 /* CCPUPlaneColliderTranslator.cpp in Sources */,
|
||||
1A57007D180BC5A10088DEC7 /* CCActionInterval.cpp in Sources */,
|
||||
|
@ -10689,6 +11013,7 @@
|
|||
B665E3CA1AA80A6600DDB1C5 /* CCPUScaleVelocityAffectorTranslator.cpp in Sources */,
|
||||
1A57008D180BC5A10088DEC7 /* CCActionTiledGrid.cpp in Sources */,
|
||||
B665E26E1AA80A6500DDB1C5 /* CCPUDoFreezeEventHandlerTranslator.cpp in Sources */,
|
||||
B6DD2FF11B04825B00E47F5F /* DetourTileCacheBuilder.cpp in Sources */,
|
||||
B665E1FE1AA80A6500DDB1C5 /* CCPUAlignAffector.cpp in Sources */,
|
||||
B665E2961AA80A6500DDB1C5 /* CCPUEmitterManager.cpp in Sources */,
|
||||
1A570091180BC5A10088DEC7 /* CCActionTween.cpp in Sources */,
|
||||
|
@ -10725,11 +11050,13 @@
|
|||
B6CAAFF61AF9A9E100B9B856 /* CCPhysics3DShape.cpp in Sources */,
|
||||
B6CAB3071AF9AA1A00B9B856 /* btTriangleMesh.cpp in Sources */,
|
||||
B29A7E1319EE1B7700872B35 /* Bone.c in Sources */,
|
||||
B677B0C91B18492D006762CB /* CCNavMesh.cpp in Sources */,
|
||||
B665E1F61AA80A6500DDB1C5 /* CCPUAffectorManager.cpp in Sources */,
|
||||
292DB14919B4574100A80320 /* UIEditBoxImpl-ios.mm in Sources */,
|
||||
B6CAB2511AF9AA1A00B9B856 /* btEmptyCollisionAlgorithm.cpp in Sources */,
|
||||
15AE181019AAD2F700C27E9E /* CCAnimation3D.cpp in Sources */,
|
||||
1A01C68418F57BE800EFE3A6 /* CCArray.cpp in Sources */,
|
||||
B6DD2FDD1B04825B00E47F5F /* DetourObstacleAvoidance.cpp in Sources */,
|
||||
1A570112180BC8EE0088DEC7 /* CCDrawNode.cpp in Sources */,
|
||||
B6CAB4B11AF9AA1A00B9B856 /* SpuContactManifoldCollisionAlgorithm.cpp in Sources */,
|
||||
15AE186D19AAD31D00C27E9E /* SimpleAudioEngine_objc.m in Sources */,
|
||||
|
@ -10744,6 +11071,7 @@
|
|||
382383FE1A258FA7002C4610 /* idl_parser.cpp in Sources */,
|
||||
1A57011F180BC90D0088DEC7 /* CCGrid.cpp in Sources */,
|
||||
B665E26A1AA80A6500DDB1C5 /* CCPUDoFreezeEventHandler.cpp in Sources */,
|
||||
B6DD2FD91B04825B00E47F5F /* DetourLocalBoundary.cpp in Sources */,
|
||||
15AE187A19AAD33D00C27E9E /* CCBAnimationManager.cpp in Sources */,
|
||||
15AE1B6D19AADA9900C27E9E /* UIHelper.cpp in Sources */,
|
||||
15AE1A8A19AAD40300C27E9E /* b2PulleyJoint.cpp in Sources */,
|
||||
|
@ -10756,6 +11084,7 @@
|
|||
B6CAB2D51AF9AA1A00B9B856 /* btOptimizedBvh.cpp in Sources */,
|
||||
50CB247B19D9C5A100687767 /* AudioEngine-inl.mm in Sources */,
|
||||
1A5701A1180BCB590088DEC7 /* CCFontAtlas.cpp in Sources */,
|
||||
B6DD2FC71B04825B00E47F5F /* DetourNavMeshBuilder.cpp in Sources */,
|
||||
B29A7DFF19EE1B7700872B35 /* Json.c in Sources */,
|
||||
B6CAB3111AF9AA1A00B9B856 /* btUniformScalingShape.cpp in Sources */,
|
||||
15AE1A8619AAD40300C27E9E /* b2MouseJoint.cpp in Sources */,
|
||||
|
@ -10769,6 +11098,7 @@
|
|||
1A5701B1180BCB590088DEC7 /* CCFontFNT.cpp in Sources */,
|
||||
B6CAB4A51AF9AA1A00B9B856 /* SequentialThreadSupport.cpp in Sources */,
|
||||
15AE181619AAD2F700C27E9E /* CCAttachNode.cpp in Sources */,
|
||||
B6DD2FE91B04825B00E47F5F /* DetourProximityGrid.cpp in Sources */,
|
||||
B29A7DED19EE1B7700872B35 /* IkConstraint.c in Sources */,
|
||||
18956BB21A9DFBFD006E9155 /* Particle3DReader.cpp in Sources */,
|
||||
1A5701B5180BCB590088DEC7 /* CCFontFreeType.cpp in Sources */,
|
||||
|
@ -10799,6 +11129,7 @@
|
|||
B6CAB3D51AF9AA1A00B9B856 /* btSolve2LinearConstraint.cpp in Sources */,
|
||||
B6CAB2591AF9AA1A00B9B856 /* btHashedSimplePairCache.cpp in Sources */,
|
||||
382F7ADC1AB1292A002EBECF /* CCObjectExtensionData.cpp in Sources */,
|
||||
B6DD2FAB1B04825B00E47F5F /* DetourDebugDraw.cpp in Sources */,
|
||||
15AE191719AAD35000C27E9E /* CCSpriteFrameCacheHelper.cpp in Sources */,
|
||||
B665E2E21AA80A6500DDB1C5 /* CCPULineAffectorTranslator.cpp in Sources */,
|
||||
B6CAB2A31AF9AA1A00B9B856 /* btConvexHullShape.cpp in Sources */,
|
||||
|
@ -10823,6 +11154,7 @@
|
|||
3EACC9A419F5014D00EB3C5E /* CCLight.cpp in Sources */,
|
||||
B6CAB4C91AF9AA1A00B9B856 /* SpuCollisionShapes.cpp in Sources */,
|
||||
B6CAB38B1AF9AA1A00B9B856 /* btPolyhedralContactClipping.cpp in Sources */,
|
||||
B677B0D51B18492D006762CB /* CCNavMeshObstacle.cpp in Sources */,
|
||||
B665E42E1AA80A6600DDB1C5 /* CCPUVelocityMatchingAffectorTranslator.cpp in Sources */,
|
||||
1A5701E2180BCB8C0088DEC7 /* CCScene.cpp in Sources */,
|
||||
B6CAB5351AF9AA1A00B9B856 /* btVector3.cpp in Sources */,
|
||||
|
@ -10886,6 +11218,7 @@
|
|||
B665E3FE1AA80A6600DDB1C5 /* CCPUSphereCollider.cpp in Sources */,
|
||||
B6CAB3591AF9AA1A00B9B856 /* gim_memory.cpp in Sources */,
|
||||
B665E25A1AA80A6500DDB1C5 /* CCPUDoEnableComponentEventHandler.cpp in Sources */,
|
||||
B6DD2FB31B04825B00E47F5F /* RecastDump.cpp in Sources */,
|
||||
B6CAB2BB1AF9AA1A00B9B856 /* btCylinderShape.cpp in Sources */,
|
||||
15AE1BD019AAE01E00C27E9E /* CCControlHuePicker.cpp in Sources */,
|
||||
B6CAAFFA1AF9A9E100B9B856 /* CCPhysics3DWorld.cpp in Sources */,
|
||||
|
@ -10926,6 +11259,7 @@
|
|||
B29A7DF319EE1B7700872B35 /* AttachmentLoader.c in Sources */,
|
||||
B6CAB3331AF9AA1A00B9B856 /* btGImpactShape.cpp in Sources */,
|
||||
382383F01A258FA7002C4610 /* flatc.cpp in Sources */,
|
||||
B6DD2FA71B04825B00E47F5F /* DebugDraw.cpp in Sources */,
|
||||
B665E31A1AA80A6500DDB1C5 /* CCPUOnClearObserver.cpp in Sources */,
|
||||
1A57028A180BCC900088DEC7 /* CCSpriteFrameCache.cpp in Sources */,
|
||||
15AE18E619AAD35000C27E9E /* CCActionFrameEasing.cpp in Sources */,
|
||||
|
@ -10946,6 +11280,7 @@
|
|||
1A570296180BCCAB0088DEC7 /* CCAnimationCache.cpp in Sources */,
|
||||
B29A7E1B19EE1B7700872B35 /* SkeletonJson.c in Sources */,
|
||||
50ABBE351925AB6F00A911A9 /* CCConsole.cpp in Sources */,
|
||||
B6DD2FED1B04825B00E47F5F /* DetourTileCache.cpp in Sources */,
|
||||
B665E3FA1AA80A6600DDB1C5 /* CCPUSphere.cpp in Sources */,
|
||||
50ABBEAF1925AB6F00A911A9 /* CCUserDefault.cpp in Sources */,
|
||||
15AE1BCB19AAE01E00C27E9E /* CCControlButton.cpp in Sources */,
|
||||
|
@ -11015,6 +11350,7 @@
|
|||
B665E3621AA80A6500DDB1C5 /* CCPUOnTimeObserver.cpp in Sources */,
|
||||
15AE18DF19AAD35000C27E9E /* TriggerBase.cpp in Sources */,
|
||||
15AE1A7219AAD40300C27E9E /* b2ContactSolver.cpp in Sources */,
|
||||
B6DD2FE11B04825B00E47F5F /* DetourPathCorridor.cpp in Sources */,
|
||||
B665E2BE1AA80A6500DDB1C5 /* CCPUGeometryRotator.cpp in Sources */,
|
||||
3823841A1A2590D2002C4610 /* ComAudioReader.cpp in Sources */,
|
||||
15AE1BC519AAE00000C27E9E /* AssetsManager.cpp in Sources */,
|
||||
|
@ -11047,6 +11383,7 @@
|
|||
1A570310180BCF190088DEC7 /* CCComponentContainer.cpp in Sources */,
|
||||
15AE190719AAD35000C27E9E /* CCDatas.cpp in Sources */,
|
||||
1A01C69C18F57BE800EFE3A6 /* CCString.cpp in Sources */,
|
||||
B6DD2FCB1B04825B00E47F5F /* DetourNavMeshQuery.cpp in Sources */,
|
||||
B6CAB26D1AF9AA1A00B9B856 /* btSphereSphereCollisionAlgorithm.cpp in Sources */,
|
||||
B6CAB3251AF9AA1A00B9B856 /* btGImpactBvh.cpp in Sources */,
|
||||
B665E2721AA80A6500DDB1C5 /* CCPUDoPlacementParticleEventHandler.cpp in Sources */,
|
||||
|
@ -11100,6 +11437,7 @@
|
|||
15AE18FA19AAD35000C27E9E /* CCColliderDetector.cpp in Sources */,
|
||||
50ABBEA71925AB6F00A911A9 /* CCTouch.cpp in Sources */,
|
||||
15AE191319AAD35000C27E9E /* CCSGUIReader.cpp in Sources */,
|
||||
B6DD2FBD1B04825B00E47F5F /* DetourCommon.cpp in Sources */,
|
||||
15AE186819AAD31D00C27E9E /* CDXMacOSXSupport.mm in Sources */,
|
||||
B665E3221AA80A6500DDB1C5 /* CCPUOnCollisionObserver.cpp in Sources */,
|
||||
15AE191519AAD35000C27E9E /* CCSkin.cpp in Sources */,
|
||||
|
@ -11143,6 +11481,7 @@
|
|||
B665E2921AA80A6500DDB1C5 /* CCPUEmitter.cpp in Sources */,
|
||||
15B3708419EE414C00ABE682 /* Downloader.cpp in Sources */,
|
||||
50ABC0631926664800A911A9 /* CCDevice-mac.mm in Sources */,
|
||||
B677B0D11B18492D006762CB /* CCNavMeshDebugDraw.cpp in Sources */,
|
||||
15AE1A2819AAD3D500C27E9E /* b2Collision.cpp in Sources */,
|
||||
15AE1B6719AADA9900C27E9E /* UIScale9Sprite.cpp in Sources */,
|
||||
292DB14319B4574100A80320 /* UIEditBoxImpl-android.cpp in Sources */,
|
||||
|
@ -11182,6 +11521,7 @@
|
|||
B665E4021AA80A6600DDB1C5 /* CCPUSphereColliderTranslator.cpp in Sources */,
|
||||
15AE1A3619AAD3D500C27E9E /* b2PolygonShape.cpp in Sources */,
|
||||
D0FD03531A3B51AA00825BB5 /* CCAllocatorGlobalNewDelete.cpp in Sources */,
|
||||
B6DD2FE51B04825B00E47F5F /* DetourPathQueue.cpp in Sources */,
|
||||
B665E39A1AA80A6500DDB1C5 /* CCPUPointEmitterTranslator.cpp in Sources */,
|
||||
50ABBD9B1925AB4100A911A9 /* ccGLStateCache.cpp in Sources */,
|
||||
15AE188119AAD33D00C27E9E /* CCBReader.cpp in Sources */,
|
||||
|
@ -11227,12 +11567,15 @@
|
|||
B6CAB3811AF9AA1A00B9B856 /* btMinkowskiPenetrationDepthSolver.cpp in Sources */,
|
||||
B6CAB4AD1AF9AA1A00B9B856 /* SpuCollisionTaskProcess.cpp in Sources */,
|
||||
50ABBE9F1925AB6F00A911A9 /* CCScheduler.cpp in Sources */,
|
||||
B6DD2FC31B04825B00E47F5F /* DetourNavMesh.cpp in Sources */,
|
||||
B6DD2FCF1B04825B00E47F5F /* DetourNode.cpp in Sources */,
|
||||
15AE1C1119AAE2C600C27E9E /* CCPhysicsDebugNode.cpp in Sources */,
|
||||
B665E2521AA80A6500DDB1C5 /* CCPUDoAffectorEventHandler.cpp in Sources */,
|
||||
50ABC0151926664800A911A9 /* CCImage.cpp in Sources */,
|
||||
50ABBE231925AB6F00A911A9 /* base64.cpp in Sources */,
|
||||
B665E3AA1AA80A6500DDB1C5 /* CCPURandomiserTranslator.cpp in Sources */,
|
||||
15AE1B5D19AADA9900C27E9E /* UITextBMFont.cpp in Sources */,
|
||||
B6DD2FF51B04825B00E47F5F /* fastlz.c in Sources */,
|
||||
B665E3561AA80A6500DDB1C5 /* CCPUOnQuotaObserverTranslator.cpp in Sources */,
|
||||
382384361A259126002C4610 /* ProjectNodeReader.cpp in Sources */,
|
||||
B665E37A1AA80A6500DDB1C5 /* CCPUParticleSystem3D.cpp in Sources */,
|
||||
|
@ -11310,6 +11653,7 @@
|
|||
B665E38F1AA80A6500DDB1C5 /* CCPUPlaneCollider.cpp in Sources */,
|
||||
B665E21B1AA80A6500DDB1C5 /* CCPUBehaviour.cpp in Sources */,
|
||||
B6CAB2CA1AF9AA1A00B9B856 /* btMinkowskiSumShape.cpp in Sources */,
|
||||
B6DD2FE61B04825B00E47F5F /* DetourPathQueue.cpp in Sources */,
|
||||
B665E38B1AA80A6500DDB1C5 /* CCPUPlane.cpp in Sources */,
|
||||
B665E2731AA80A6500DDB1C5 /* CCPUDoPlacementParticleEventHandler.cpp in Sources */,
|
||||
15AE1C0519AAE01E00C27E9E /* CCTableViewCell.cpp in Sources */,
|
||||
|
@ -11332,6 +11676,7 @@
|
|||
B665E35B1AA80A6500DDB1C5 /* CCPUOnRandomObserver.cpp in Sources */,
|
||||
50ABC0161926664800A911A9 /* CCImage.cpp in Sources */,
|
||||
B665E3AB1AA80A6500DDB1C5 /* CCPURandomiserTranslator.cpp in Sources */,
|
||||
B6DD2FE21B04825B00E47F5F /* DetourPathCorridor.cpp in Sources */,
|
||||
1A01C6A518F58F7500EFE3A6 /* CCNotificationCenter.cpp in Sources */,
|
||||
292DB14E19B4574100A80320 /* UIEditBoxImpl-mac.mm in Sources */,
|
||||
B6CAB4BC1AF9AA1A00B9B856 /* SpuGatheringCollisionDispatcher.cpp in Sources */,
|
||||
|
@ -11353,11 +11698,13 @@
|
|||
50ABBE561925AB6F00A911A9 /* CCEventFocus.cpp in Sources */,
|
||||
382F7ADD1AB1292A002EBECF /* CCObjectExtensionData.cpp in Sources */,
|
||||
15AE183D19AAD2F700C27E9E /* CCSkeleton3D.cpp in Sources */,
|
||||
B6DD2FF21B04825B00E47F5F /* DetourTileCacheBuilder.cpp in Sources */,
|
||||
503DD8E11926736A00CD74DD /* CCApplication-ios.mm in Sources */,
|
||||
15AE1AAC19AAD40300C27E9E /* b2WorldCallbacks.cpp in Sources */,
|
||||
B6CAB20C1AF9AA1A00B9B856 /* btQuantizedBvh.cpp in Sources */,
|
||||
B6CAB3F21AF9AA1A00B9B856 /* btSimpleDynamicsWorld.cpp in Sources */,
|
||||
15AE18C719AAD33D00C27E9E /* CCMenuItemImageLoader.cpp in Sources */,
|
||||
B6DD2FF61B04825B00E47F5F /* fastlz.c in Sources */,
|
||||
50ABC01A1926664800A911A9 /* CCSAXParser.cpp in Sources */,
|
||||
B29A7E1C19EE1B7700872B35 /* SkeletonJson.c in Sources */,
|
||||
B2CC507C19776DD10041958E /* CCPhysicsJoint.cpp in Sources */,
|
||||
|
@ -11389,6 +11736,7 @@
|
|||
B29A7E0C19EE1B7700872B35 /* Atlas.c in Sources */,
|
||||
15AE185E19AAD31200C27E9E /* CocosDenshion.m in Sources */,
|
||||
B665E2071AA80A6500DDB1C5 /* CCPUBaseCollider.cpp in Sources */,
|
||||
B6DD2FB01B04825B00E47F5F /* RecastDebugDraw.cpp in Sources */,
|
||||
46A170FE1807CECB005B8026 /* CCPhysicsContact.cpp in Sources */,
|
||||
1A570062180BC5A10088DEC7 /* CCAction.cpp in Sources */,
|
||||
1A570066180BC5A10088DEC7 /* CCActionCamera.cpp in Sources */,
|
||||
|
@ -11487,6 +11835,7 @@
|
|||
50ABBE761925AB6F00A911A9 /* CCEventListenerTouch.cpp in Sources */,
|
||||
15AE1AD219AAD40300C27E9E /* b2RopeJoint.cpp in Sources */,
|
||||
B29A7DCC19EE1B7700872B35 /* Skeleton.c in Sources */,
|
||||
B6DD2FEE1B04825B00E47F5F /* DetourTileCache.cpp in Sources */,
|
||||
B6CAB2B41AF9AA1A00B9B856 /* btConvexShape.cpp in Sources */,
|
||||
15AE1A4919AAD3D500C27E9E /* b2CircleShape.cpp in Sources */,
|
||||
15AE184119AAD2F700C27E9E /* CCSprite3D.cpp in Sources */,
|
||||
|
@ -11508,6 +11857,7 @@
|
|||
15AE1A3E19AAD3D500C27E9E /* b2CollidePolygon.cpp in Sources */,
|
||||
15AE1AB219AAD40300C27E9E /* b2CircleContact.cpp in Sources */,
|
||||
B29A7E2619EE1B7700872B35 /* Attachment.c in Sources */,
|
||||
B6DD2FDA1B04825B00E47F5F /* DetourLocalBoundary.cpp in Sources */,
|
||||
15AE18C119AAD33D00C27E9E /* CCLayerColorLoader.cpp in Sources */,
|
||||
50ABBD551925AB0000A911A9 /* TransformUtils.cpp in Sources */,
|
||||
B665E2CF1AA80A6500DDB1C5 /* CCPUInterParticleCollider.cpp in Sources */,
|
||||
|
@ -11515,6 +11865,7 @@
|
|||
15AE193619AAD35100C27E9E /* CCArmature.cpp in Sources */,
|
||||
1A57007A180BC5A10088DEC7 /* CCActionInstant.cpp in Sources */,
|
||||
15AE1AC419AAD40300C27E9E /* b2FrictionJoint.cpp in Sources */,
|
||||
B6DD2FDE1B04825B00E47F5F /* DetourObstacleAvoidance.cpp in Sources */,
|
||||
15AE1BEC19AAE01E00C27E9E /* CCControlColourPicker.cpp in Sources */,
|
||||
B6CAB2361AF9AA1A00B9B856 /* btCompoundCollisionAlgorithm.cpp in Sources */,
|
||||
382383FD1A258FA7002C4610 /* idl_gen_text.cpp in Sources */,
|
||||
|
@ -11558,6 +11909,7 @@
|
|||
B6CAB3341AF9AA1A00B9B856 /* btGImpactShape.cpp in Sources */,
|
||||
B6CAB4C61AF9AA1A00B9B856 /* boxBoxDistance.cpp in Sources */,
|
||||
1A57008E180BC5A10088DEC7 /* CCActionTiledGrid.cpp in Sources */,
|
||||
B677B0CE1B18492D006762CB /* CCNavMeshAgent.cpp in Sources */,
|
||||
B6CAB2A01AF9AA1A00B9B856 /* btConvex2dShape.cpp in Sources */,
|
||||
1A570092180BC5A10088DEC7 /* CCActionTween.cpp in Sources */,
|
||||
1A570099180BC5C10088DEC7 /* CCAtlasNode.cpp in Sources */,
|
||||
|
@ -11565,6 +11917,7 @@
|
|||
B6CAAFF31AF9A9E100B9B856 /* CCPhysics3DObject.cpp in Sources */,
|
||||
B665E2931AA80A6500DDB1C5 /* CCPUEmitter.cpp in Sources */,
|
||||
50ABBD4D1925AB0000A911A9 /* MathUtil.cpp in Sources */,
|
||||
B6DD2FCC1B04825B00E47F5F /* DetourNavMeshQuery.cpp in Sources */,
|
||||
50ABBE3E1925AB6F00A911A9 /* CCDataVisitor.cpp in Sources */,
|
||||
B6CAB4B21AF9AA1A00B9B856 /* SpuContactManifoldCollisionAlgorithm.cpp in Sources */,
|
||||
1A57009F180BC5D20088DEC7 /* CCNode.cpp in Sources */,
|
||||
|
@ -11586,6 +11939,7 @@
|
|||
B6CAB3F81AF9AA1A00B9B856 /* btMultiBody.cpp in Sources */,
|
||||
503DD8E21926736A00CD74DD /* CCCommon-ios.mm in Sources */,
|
||||
292DB14A19B4574100A80320 /* UIEditBoxImpl-ios.mm in Sources */,
|
||||
B677B0D61B18492D006762CB /* CCNavMeshObstacle.cpp in Sources */,
|
||||
B6CAB2561AF9AA1A00B9B856 /* btGhostObject.cpp in Sources */,
|
||||
15AE1A9419AAD40300C27E9E /* b2BlockAllocator.cpp in Sources */,
|
||||
B29A7E3C19EE1B7700872B35 /* Animation.c in Sources */,
|
||||
|
@ -11607,6 +11961,7 @@
|
|||
1A5701A6180BCB590088DEC7 /* CCFontAtlasCache.cpp in Sources */,
|
||||
15AE192B19AAD35100C27E9E /* TriggerObj.cpp in Sources */,
|
||||
B6CAAFEB1AF9A9E100B9B856 /* CCPhysics3DConstraint.cpp in Sources */,
|
||||
B677B0D21B18492D006762CB /* CCNavMeshDebugDraw.cpp in Sources */,
|
||||
4D76BE3B1A4AAF0A00102962 /* CCActionTimelineNode.cpp in Sources */,
|
||||
15AE198519AAD36400C27E9E /* WidgetReader.cpp in Sources */,
|
||||
B665E36B1AA80A6500DDB1C5 /* CCPUOnVelocityObserver.cpp in Sources */,
|
||||
|
@ -11646,6 +12001,7 @@
|
|||
B665E3771AA80A6500DDB1C5 /* CCPUParticleFollowerTranslator.cpp in Sources */,
|
||||
B6CAB4CA1AF9AA1A00B9B856 /* SpuCollisionShapes.cpp in Sources */,
|
||||
15AE1B7C19AADA9A00C27E9E /* UISlider.cpp in Sources */,
|
||||
B6DD2FC41B04825B00E47F5F /* DetourNavMesh.cpp in Sources */,
|
||||
B6CAAFFB1AF9A9E100B9B856 /* CCPhysics3DWorld.cpp in Sources */,
|
||||
B665E3471AA80A6500DDB1C5 /* CCPUOnExpireObserverTranslator.cpp in Sources */,
|
||||
B6CAB2A41AF9AA1A00B9B856 /* btConvexHullShape.cpp in Sources */,
|
||||
|
@ -11718,6 +12074,7 @@
|
|||
503DD8ED1926736A00CD74DD /* CCGLViewImpl-ios.mm in Sources */,
|
||||
15AE197719AAD35700C27E9E /* CCActionTimeline.cpp in Sources */,
|
||||
15AE19B419AAD39700C27E9E /* TextAtlasReader.cpp in Sources */,
|
||||
B6DD2FA81B04825B00E47F5F /* DebugDraw.cpp in Sources */,
|
||||
B665E2A31AA80A6500DDB1C5 /* CCPUEventHandlerManager.cpp in Sources */,
|
||||
B6CAB3601AF9AA1A00B9B856 /* gim_tri_collision.cpp in Sources */,
|
||||
15AE194019AAD35100C27E9E /* CCBone.cpp in Sources */,
|
||||
|
@ -11744,9 +12101,11 @@
|
|||
B6CAB1FA1AF9AA1A00B9B856 /* btDbvtBroadphase.cpp in Sources */,
|
||||
15AE1A4319AAD3D500C27E9E /* b2DynamicTree.cpp in Sources */,
|
||||
15AE1A3A19AAD3D500C27E9E /* b2BroadPhase.cpp in Sources */,
|
||||
B6DD2FC81B04825B00E47F5F /* DetourNavMeshBuilder.cpp in Sources */,
|
||||
B665E42B1AA80A6600DDB1C5 /* CCPUVelocityMatchingAffector.cpp in Sources */,
|
||||
B665E3371AA80A6500DDB1C5 /* CCPUOnEmissionObserverTranslator.cpp in Sources */,
|
||||
15AE19B619AAD39700C27E9E /* TextBMFontReader.cpp in Sources */,
|
||||
B6DD2FBE1B04825B00E47F5F /* DetourCommon.cpp in Sources */,
|
||||
15AE1BFD19AAE01E00C27E9E /* CCInvocation.cpp in Sources */,
|
||||
B24AA98A195A675C007B4522 /* CCFastTMXTiledMap.cpp in Sources */,
|
||||
38F5263F1A48363B000DB7F7 /* ArmatureNodeReader.cpp in Sources */,
|
||||
|
@ -11842,6 +12201,7 @@
|
|||
1A5702F7180BCE750088DEC7 /* CCTMXTiledMap.cpp in Sources */,
|
||||
50ABBEC61925AB6F00A911A9 /* etc1.cpp in Sources */,
|
||||
50ABBE8C1925AB6F00A911A9 /* CCNS.cpp in Sources */,
|
||||
B6DD2FAC1B04825B00E47F5F /* DetourDebugDraw.cpp in Sources */,
|
||||
B29A7DE019EE1B7700872B35 /* IkConstraintData.c in Sources */,
|
||||
B6CAB40C1AF9AA1A00B9B856 /* btMultiBodyJointMotor.cpp in Sources */,
|
||||
B6CAB2D21AF9AA1A00B9B856 /* btMultiSphereShape.cpp in Sources */,
|
||||
|
@ -11932,9 +12292,11 @@
|
|||
B6CAB3821AF9AA1A00B9B856 /* btMinkowskiPenetrationDepthSolver.cpp in Sources */,
|
||||
B6CAB3641AF9AA1A00B9B856 /* btContinuousConvexCollision.cpp in Sources */,
|
||||
52B47A2F1A5349A3004E4C60 /* HttpAsynConnection.m in Sources */,
|
||||
B6DD2FB41B04825B00E47F5F /* RecastDump.cpp in Sources */,
|
||||
B665E23B1AA80A6500DDB1C5 /* CCPUCircleEmitter.cpp in Sources */,
|
||||
15AE1B8019AADA9A00C27E9E /* UITextAtlas.cpp in Sources */,
|
||||
15AE195919AAD35100C27E9E /* CCProcessBase.cpp in Sources */,
|
||||
B6DD2FB81B04825B00E47F5F /* DetourAlloc.cpp in Sources */,
|
||||
B665E3FF1AA80A6600DDB1C5 /* CCPUSphereCollider.cpp in Sources */,
|
||||
15AE18D319AAD33D00C27E9E /* CCParticleSystemQuadLoader.cpp in Sources */,
|
||||
B6CAB4CE1AF9AA1A00B9B856 /* SpuContactResult.cpp in Sources */,
|
||||
|
@ -11948,6 +12310,7 @@
|
|||
15AE195719AAD35100C27E9E /* CCInputDelegate.cpp in Sources */,
|
||||
B6CAB32A1AF9AA1A00B9B856 /* btGImpactCollisionAlgorithm.cpp in Sources */,
|
||||
15AE1B8A19AADA9A00C27E9E /* UIImageView.cpp in Sources */,
|
||||
B6DD2FD61B04825B00E47F5F /* DetourCrowd.cpp in Sources */,
|
||||
50ABBD391925AB0000A911A9 /* CCAffineTransform.cpp in Sources */,
|
||||
B6CAB5421AF9AA1A00B9B856 /* MiniCL.cpp in Sources */,
|
||||
B6CAB4AE1AF9AA1A00B9B856 /* SpuCollisionTaskProcess.cpp in Sources */,
|
||||
|
@ -12036,6 +12399,7 @@
|
|||
50ABBD5D1925AB0000A911A9 /* Vec3.cpp in Sources */,
|
||||
B6CAB2061AF9AA1A00B9B856 /* btOverlappingPairCache.cpp in Sources */,
|
||||
38B8E2D619E66581002D7CE7 /* CSLoader.cpp in Sources */,
|
||||
B677B0CA1B18492D006762CB /* CCNavMesh.cpp in Sources */,
|
||||
B665E3B31AA80A6500DDB1C5 /* CCPURendererTranslator.cpp in Sources */,
|
||||
B6CAAFE71AF9A9E100B9B856 /* CCPhysics3DComponent.cpp in Sources */,
|
||||
B6CAB2141AF9AA1A00B9B856 /* btActivatingCollisionAlgorithm.cpp in Sources */,
|
||||
|
@ -12066,6 +12430,7 @@
|
|||
D0FD034C1A3B51AA00825BB5 /* CCAllocatorDiagnostics.cpp in Sources */,
|
||||
B665E31F1AA80A6500DDB1C5 /* CCPUOnClearObserverTranslator.cpp in Sources */,
|
||||
B665E4331AA80A6600DDB1C5 /* CCPUVertexEmitter.cpp in Sources */,
|
||||
B677B0DA1B18492D006762CB /* CCNavMeshUtils.cpp in Sources */,
|
||||
B665E3C71AA80A6600DDB1C5 /* CCPUScaleVelocityAffector.cpp in Sources */,
|
||||
B6CAB26E1AF9AA1A00B9B856 /* btSphereSphereCollisionAlgorithm.cpp in Sources */,
|
||||
50ABBED01925AB6F00A911A9 /* TGAlib.cpp in Sources */,
|
||||
|
@ -12083,7 +12448,9 @@
|
|||
B6CAB3121AF9AA1A00B9B856 /* btUniformScalingShape.cpp in Sources */,
|
||||
1A1645B3191B726C008C7C7F /* ConvertUTFWrapper.cpp in Sources */,
|
||||
15B3708519EE414C00ABE682 /* Downloader.cpp in Sources */,
|
||||
B6DD2FEA1B04825B00E47F5F /* DetourProximityGrid.cpp in Sources */,
|
||||
1ABA68AF1888D700007D1BB4 /* CCFontCharMap.cpp in Sources */,
|
||||
B6DD2FD01B04825B00E47F5F /* DetourNode.cpp in Sources */,
|
||||
B6CAB2DE1AF9AA1A00B9B856 /* btScaledBvhTriangleMeshShape.cpp in Sources */,
|
||||
15AE180D19AAD2F700C27E9E /* CCAnimate3D.cpp in Sources */,
|
||||
B6CAB1EE1AF9AA1A00B9B856 /* btBroadphaseProxy.cpp in Sources */,
|
||||
|
|
|
@ -834,6 +834,8 @@
|
|||
B603F1B51AC8FBFB00A9579C /* TerrainTest in Resources */ = {isa = PBXBuildFile; fileRef = B603F1B31AC8FBFB00A9579C /* TerrainTest */; };
|
||||
B609E67319C18DAD003D0074 /* BillBoardTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B609E67119C18DAD003D0074 /* BillBoardTest.cpp */; };
|
||||
B609E67419C18DAD003D0074 /* BillBoardTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B609E67119C18DAD003D0074 /* BillBoardTest.cpp */; };
|
||||
B61E90CB1B12B74B00BE69EA /* NavMesh in Resources */ = {isa = PBXBuildFile; fileRef = B61E90CA1B12B74B00BE69EA /* NavMesh */; };
|
||||
B61E90CC1B12B74B00BE69EA /* NavMesh in Resources */ = {isa = PBXBuildFile; fileRef = B61E90CA1B12B74B00BE69EA /* NavMesh */; };
|
||||
B6337DF71ABA9B44005AEF24 /* PerformanceParticle3DTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6337DF51ABA9B44005AEF24 /* PerformanceParticle3DTest.cpp */; };
|
||||
B6337DF81ABA9B44005AEF24 /* PerformanceParticle3DTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6337DF51ABA9B44005AEF24 /* PerformanceParticle3DTest.cpp */; };
|
||||
B639932E1A490EC700B07923 /* Particle3DTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B639932C1A490EC700B07923 /* Particle3DTest.cpp */; };
|
||||
|
@ -844,6 +846,8 @@
|
|||
B6C039DA19C95D83007207DC /* LightTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6C039D719C95D83007207DC /* LightTest.cpp */; };
|
||||
B6CAB54E1AF9AA6C00B9B856 /* Physics3DTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6CAB54C1AF9AA6C00B9B856 /* Physics3DTest.cpp */; };
|
||||
B6CAB54F1AF9AA6C00B9B856 /* Physics3DTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6CAB54C1AF9AA6C00B9B856 /* Physics3DTest.cpp */; };
|
||||
B6DD2FFC1B04979C00E47F5F /* NavMeshTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2FFA1B04979C00E47F5F /* NavMeshTest.cpp */; };
|
||||
B6DD2FFD1B04979C00E47F5F /* NavMeshTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B6DD2FFA1B04979C00E47F5F /* NavMeshTest.cpp */; };
|
||||
C04F935A1941B05400E9FEAB /* TileMapTest2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C04F93581941B05400E9FEAB /* TileMapTest2.cpp */; };
|
||||
C04F935B1941B05400E9FEAB /* TileMapTest2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C04F93581941B05400E9FEAB /* TileMapTest2.cpp */; };
|
||||
C08689C118D370C90093E810 /* background.caf in Resources */ = {isa = PBXBuildFile; fileRef = C08689C018D370C90093E810 /* background.caf */; };
|
||||
|
@ -1784,6 +1788,7 @@
|
|||
B603F1B31AC8FBFB00A9579C /* TerrainTest */ = {isa = PBXFileReference; lastKnownFileType = folder; name = TerrainTest; path = "../tests/cpp-tests/Resources/TerrainTest"; sourceTree = "<group>"; };
|
||||
B609E67119C18DAD003D0074 /* BillBoardTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BillBoardTest.cpp; path = BillBoardTest/BillBoardTest.cpp; sourceTree = "<group>"; };
|
||||
B609E67219C18DAD003D0074 /* BillBoardTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BillBoardTest.h; path = BillBoardTest/BillBoardTest.h; sourceTree = "<group>"; };
|
||||
B61E90CA1B12B74B00BE69EA /* NavMesh */ = {isa = PBXFileReference; lastKnownFileType = folder; name = NavMesh; path = "../tests/cpp-tests/Resources/NavMesh"; sourceTree = "<group>"; };
|
||||
B6337DF51ABA9B44005AEF24 /* PerformanceParticle3DTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerformanceParticle3DTest.cpp; sourceTree = "<group>"; };
|
||||
B6337DF61ABA9B44005AEF24 /* PerformanceParticle3DTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerformanceParticle3DTest.h; sourceTree = "<group>"; };
|
||||
B639932C1A490EC700B07923 /* Particle3DTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Particle3DTest.cpp; path = Particle3DTest/Particle3DTest.cpp; sourceTree = "<group>"; };
|
||||
|
@ -1793,6 +1798,8 @@
|
|||
B6C039D819C95D83007207DC /* LightTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LightTest.h; path = LightTest/LightTest.h; sourceTree = "<group>"; };
|
||||
B6CAB54C1AF9AA6C00B9B856 /* Physics3DTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Physics3DTest.cpp; path = Physics3DTest/Physics3DTest.cpp; sourceTree = "<group>"; };
|
||||
B6CAB54D1AF9AA6C00B9B856 /* Physics3DTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Physics3DTest.h; path = Physics3DTest/Physics3DTest.h; sourceTree = "<group>"; };
|
||||
B6DD2FFA1B04979C00E47F5F /* NavMeshTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NavMeshTest.cpp; path = NavMeshTest/NavMeshTest.cpp; sourceTree = "<group>"; };
|
||||
B6DD2FFB1B04979C00E47F5F /* NavMeshTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NavMeshTest.h; path = NavMeshTest/NavMeshTest.h; sourceTree = "<group>"; };
|
||||
C04F93581941B05400E9FEAB /* TileMapTest2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TileMapTest2.cpp; sourceTree = "<group>"; };
|
||||
C04F93591941B05400E9FEAB /* TileMapTest2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileMapTest2.h; sourceTree = "<group>"; };
|
||||
C08689C018D370C90093E810 /* background.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = background.caf; path = "../tests/cpp-tests/Resources/background.caf"; sourceTree = "<group>"; };
|
||||
|
@ -2211,6 +2218,7 @@
|
|||
1AC3592418CECF0A00F37B72 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DD2FF91B04972B00E47F5F /* NavMeshTest */,
|
||||
B6CAB54B1AF9AA4B00B9B856 /* Physics3DTest */,
|
||||
5046AB471AF2A8D80060550B /* MaterialSystemTest */,
|
||||
6886696E1AE8E8A000C2CFD9 /* SpritePolygonTest */,
|
||||
|
@ -3253,6 +3261,7 @@
|
|||
1AC35CA818CED83500F37B72 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B61E90CA1B12B74B00BE69EA /* NavMesh */,
|
||||
5046AB5A1AF2C4180060550B /* Materials */,
|
||||
B603F1B31AC8FBFB00A9579C /* TerrainTest */,
|
||||
B63993301A49359F00B07923 /* Particle3D */,
|
||||
|
@ -4062,6 +4071,15 @@
|
|||
name = Physics3DTest;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DD2FF91B04972B00E47F5F /* NavMeshTest */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DD2FFA1B04979C00E47F5F /* NavMeshTest.cpp */,
|
||||
B6DD2FFB1B04979C00E47F5F /* NavMeshTest.h */,
|
||||
);
|
||||
name = NavMeshTest;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0FD03611A3B543700825BB5 /* AllocatorTest */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -4274,8 +4292,8 @@
|
|||
attributes = {
|
||||
LastUpgradeCheck = 0600;
|
||||
TargetAttributes = {
|
||||
A07A517F1783A1D20073F6A7 = {
|
||||
DevelopmentTeam = NQ596S94Q5;
|
||||
1D6058900D05DD3D006BFB54 = {
|
||||
DevelopmentTeam = U7E7529TA5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -4572,6 +4590,7 @@
|
|||
1AC35CDE18CED84500F37B72 /* components in Resources */,
|
||||
1AC35D0818CED84500F37B72 /* TileMaps in Resources */,
|
||||
1AC35CE218CED84500F37B72 /* effect1.raw in Resources */,
|
||||
B61E90CB1B12B74B00BE69EA /* NavMesh in Resources */,
|
||||
1AC35CF218CED84500F37B72 /* Hello.png in Resources */,
|
||||
1AC35CA518CECF1E00F37B72 /* Icon.icns in Resources */,
|
||||
5046AB5B1AF2C4180060550B /* Materials in Resources */,
|
||||
|
@ -4670,6 +4689,7 @@
|
|||
1AC35C8F18CECF1400F37B72 /* Icon-152.png in Resources */,
|
||||
1AC35CE718CED84500F37B72 /* effect2.ogg in Resources */,
|
||||
38FA2E77194AECF800FF2BE4 /* ActionTimeline in Resources */,
|
||||
B61E90CC1B12B74B00BE69EA /* NavMesh in Resources */,
|
||||
1AC35C9718CECF1400F37B72 /* Icon-80.png in Resources */,
|
||||
1AC35CEB18CED84500F37B72 /* fileLookup.plist in Resources */,
|
||||
527B1F3519EF9CF8000A1F82 /* Default-736h@3x.png in Resources */,
|
||||
|
@ -4962,6 +4982,7 @@
|
|||
1AC35BE718CECF0C00F37B72 /* CCControlScene.cpp in Sources */,
|
||||
B609E67319C18DAD003D0074 /* BillBoardTest.cpp in Sources */,
|
||||
292CF01419A1965E00E8E6A0 /* UIEditBoxTest.cpp in Sources */,
|
||||
B6DD2FFC1B04979C00E47F5F /* NavMeshTest.cpp in Sources */,
|
||||
D0FD03641A3B546400825BB5 /* AllocatorTest.cpp in Sources */,
|
||||
29080DBF191B595E0066F8DF /* UIPageViewTest_Editor.cpp in Sources */,
|
||||
1AC35B5F18CECF0C00F37B72 /* DataVisitorTest.cpp in Sources */,
|
||||
|
@ -5272,6 +5293,7 @@
|
|||
1AC35BFC18CECF0C00F37B72 /* NotificationCenterTest.cpp in Sources */,
|
||||
29FBBBFF196A9ECD00E65826 /* CocostudioParserJsonTest.cpp in Sources */,
|
||||
1AC35C3618CECF0C00F37B72 /* PerformanceSpriteTest.cpp in Sources */,
|
||||
B6DD2FFD1B04979C00E47F5F /* NavMeshTest.cpp in Sources */,
|
||||
B6C039DA19C95D83007207DC /* LightTest.cpp in Sources */,
|
||||
1AC35C3C18CECF0C00F37B72 /* PerformanceTouchesTest.cpp in Sources */,
|
||||
29080DA2191B595E0066F8DF /* GUIEditorTest.cpp in Sources */,
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "renderer/CCGLProgramCache.h"
|
||||
#include "renderer/ccGLStateCache.h"
|
||||
#include "renderer/CCFrameBuffer.h"
|
||||
#include "renderer/CCRenderState.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
|
@ -409,14 +410,22 @@ void Camera::clearBackground(float depth)
|
|||
{
|
||||
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
|
||||
glStencilMask(0);
|
||||
RenderState::StateBlock::_defaultState->setStencilWrite(0);
|
||||
|
||||
oldDepthTest = glIsEnabled(GL_DEPTH_TEST);
|
||||
glGetIntegerv(GL_DEPTH_FUNC, &oldDepthFunc);
|
||||
glGetBooleanv(GL_DEPTH_WRITEMASK, &oldDepthMask);
|
||||
|
||||
glDepthMask(GL_TRUE);
|
||||
RenderState::StateBlock::_defaultState->setDepthWrite(true);
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
RenderState::StateBlock::_defaultState->setDepthTest(true);
|
||||
|
||||
glDepthFunc(GL_ALWAYS);
|
||||
RenderState::StateBlock::_defaultState->setDepthFunction(RenderState::DEPTH_ALWAYS);
|
||||
}
|
||||
|
||||
|
||||
//draw
|
||||
static V3F_C4B_T2F_Quad quad;
|
||||
quad.bl.vertices = Vec3(-1,-1,0);
|
||||
|
@ -461,14 +470,18 @@ void Camera::clearBackground(float depth)
|
|||
if(GL_FALSE == oldDepthTest)
|
||||
{
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
RenderState::StateBlock::_defaultState->setDepthTest(false);
|
||||
}
|
||||
glDepthFunc(oldDepthFunc);
|
||||
if(GL_FALSE == oldDepthMask)
|
||||
{
|
||||
glDepthMask(GL_FALSE);
|
||||
RenderState::StateBlock::_defaultState->setDepthWrite(false);
|
||||
}
|
||||
|
||||
glStencilMask(0xFFFFF);
|
||||
RenderState::StateBlock::_defaultState->setStencilWrite(0xFFFFF);
|
||||
|
||||
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "renderer/CCGLProgramCache.h"
|
||||
#include "renderer/ccGLStateCache.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
#include "renderer/CCRenderState.h"
|
||||
#include "base/CCDirector.h"
|
||||
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
|
||||
|
@ -395,12 +396,15 @@ void ClippingNode::onBeforeVisit()
|
|||
|
||||
// enable stencil use
|
||||
glEnable(GL_STENCIL_TEST);
|
||||
RenderState::StateBlock::_defaultState->setStencilTest(true);
|
||||
|
||||
// check for OpenGL error while enabling stencil test
|
||||
CHECK_GL_ERROR_DEBUG();
|
||||
|
||||
// all bits on the stencil buffer are readonly, except the current layer bit,
|
||||
// this means that operation like glClear or glStencilOp will be masked with this value
|
||||
glStencilMask(mask_layer);
|
||||
RenderState::StateBlock::_defaultState->setStencilWrite(mask_layer);
|
||||
|
||||
// manually save the depth test state
|
||||
|
||||
|
@ -413,6 +417,7 @@ void ClippingNode::onBeforeVisit()
|
|||
// it should never prevent something else to be drawn,
|
||||
// only disabling depth buffer update should do
|
||||
glDepthMask(GL_FALSE);
|
||||
RenderState::StateBlock::_defaultState->setDepthWrite(false);
|
||||
|
||||
///////////////////////////////////
|
||||
// CLEAR STENCIL BUFFER
|
||||
|
@ -424,7 +429,13 @@ void ClippingNode::onBeforeVisit()
|
|||
// if not in inverted mode: set the current layer value to 0 in the stencil buffer
|
||||
// if in inverted mode: set the current layer value to 1 in the stencil buffer
|
||||
glStencilFunc(GL_NEVER, mask_layer, mask_layer);
|
||||
RenderState::StateBlock::_defaultState->setStencilFunction(RenderState::STENCIL_NEVER, mask_layer, mask_layer);
|
||||
|
||||
glStencilOp(!_inverted ? GL_ZERO : GL_REPLACE, GL_KEEP, GL_KEEP);
|
||||
RenderState::StateBlock::_defaultState->setStencilOperation(
|
||||
!_inverted ? RenderState::STENCIL_OP_ZERO : RenderState::STENCIL_OP_REPLACE,
|
||||
RenderState::STENCIL_OP_KEEP,
|
||||
RenderState::STENCIL_OP_KEEP);
|
||||
|
||||
// draw a fullscreen solid rectangle to clear the stencil buffer
|
||||
//ccDrawSolidRect(Vec2::ZERO, ccpFromSize([[Director sharedDirector] winSize]), Color4F(1, 1, 1, 1));
|
||||
|
@ -439,7 +450,14 @@ void ClippingNode::onBeforeVisit()
|
|||
// if not in inverted mode: set the current layer value to 1 in the stencil buffer
|
||||
// if in inverted mode: set the current layer value to 0 in the stencil buffer
|
||||
glStencilFunc(GL_NEVER, mask_layer, mask_layer);
|
||||
RenderState::StateBlock::_defaultState->setStencilFunction(RenderState::STENCIL_NEVER, mask_layer, mask_layer);
|
||||
|
||||
glStencilOp(!_inverted ? GL_REPLACE : GL_ZERO, GL_KEEP, GL_KEEP);
|
||||
RenderState::StateBlock::_defaultState->setStencilOperation(
|
||||
!_inverted ? RenderState::STENCIL_OP_REPLACE : RenderState::STENCIL_OP_ZERO,
|
||||
RenderState::STENCIL_OP_KEEP,
|
||||
RenderState::STENCIL_OP_KEEP);
|
||||
|
||||
|
||||
// enable alpha test only if the alpha threshold < 1,
|
||||
// indeed if alpha threshold == 1, every pixel will be drawn anyways
|
||||
|
@ -480,6 +498,8 @@ void ClippingNode::onAfterDrawStencil()
|
|||
|
||||
// restore the depth test state
|
||||
glDepthMask(_currentDepthWriteMask);
|
||||
RenderState::StateBlock::_defaultState->setDepthWrite(_currentDepthWriteMask);
|
||||
|
||||
//if (currentDepthTestEnabled) {
|
||||
// glEnable(GL_DEPTH_TEST);
|
||||
//}
|
||||
|
@ -494,7 +514,10 @@ void ClippingNode::onAfterDrawStencil()
|
|||
// else
|
||||
// do not draw the pixel but keep the current layer in the stencil buffer
|
||||
glStencilFunc(GL_EQUAL, _mask_layer_le, _mask_layer_le);
|
||||
RenderState::StateBlock::_defaultState->setStencilFunction(RenderState::STENCIL_EQUAL, _mask_layer_le, _mask_layer_le);
|
||||
|
||||
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
|
||||
RenderState::StateBlock::_defaultState->setStencilOperation(RenderState::STENCIL_OP_KEEP, RenderState::STENCIL_OP_KEEP, RenderState::STENCIL_OP_KEEP);
|
||||
|
||||
// draw (according to the stencil test func) this node and its childs
|
||||
}
|
||||
|
@ -507,11 +530,18 @@ void ClippingNode::onAfterVisit()
|
|||
|
||||
// manually restore the stencil state
|
||||
glStencilFunc(_currentStencilFunc, _currentStencilRef, _currentStencilValueMask);
|
||||
RenderState::StateBlock::_defaultState->setStencilFunction((RenderState::StencilFunction)_currentStencilFunc, _currentStencilRef, _currentStencilValueMask);
|
||||
|
||||
glStencilOp(_currentStencilFail, _currentStencilPassDepthFail, _currentStencilPassDepthPass);
|
||||
RenderState::StateBlock::_defaultState->setStencilOperation((RenderState::StencilOperation)_currentStencilFail,
|
||||
(RenderState::StencilOperation)_currentStencilPassDepthFail,
|
||||
(RenderState::StencilOperation)_currentStencilPassDepthPass);
|
||||
|
||||
glStencilMask(_currentStencilWriteMask);
|
||||
if (!_currentStencilEnabled)
|
||||
{
|
||||
glDisable(GL_STENCIL_TEST);
|
||||
RenderState::StateBlock::_defaultState->setStencilTest(false);
|
||||
}
|
||||
|
||||
// we are done using this layer, decrement
|
||||
|
|
|
@ -41,7 +41,7 @@ void ClippingRectangleNode::onBeforeVisitScissor()
|
|||
{
|
||||
if (_clippingEnabled) {
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
|
||||
|
||||
float scaleX = _scaleX;
|
||||
float scaleY = _scaleY;
|
||||
Node *parent = this->getParent();
|
||||
|
|
|
@ -42,8 +42,8 @@ FontCharMap * FontCharMap::create(const std::string& plistFile)
|
|||
|
||||
std::string textureFilename = relPathStr + dict["textureFilename"].asString();
|
||||
|
||||
unsigned int width = dict["itemWidth"].asInt() / CC_CONTENT_SCALE_FACTOR();
|
||||
unsigned int height = dict["itemHeight"].asInt() / CC_CONTENT_SCALE_FACTOR();
|
||||
unsigned int width = dict["itemWidth"].asInt();
|
||||
unsigned int height = dict["itemHeight"].asInt();
|
||||
unsigned int startChar = dict["firstChar"].asInt();
|
||||
|
||||
Texture2D *tempTexture = Director::getInstance()->getTextureCache()->addImage(textureFilename);
|
||||
|
@ -102,19 +102,16 @@ int * FontCharMap::getHorizontalKerningForTextUTF16(const std::u16string& text,
|
|||
{
|
||||
outNumLetters = static_cast<int>(text.length());
|
||||
|
||||
if (!outNumLetters)
|
||||
return 0;
|
||||
if (outNumLetters <= 0)
|
||||
return nullptr;
|
||||
|
||||
int *sizes = new int[outNumLetters];
|
||||
if (!sizes)
|
||||
return 0;
|
||||
auto kernings = new int[outNumLetters];
|
||||
if (!kernings)
|
||||
return nullptr;
|
||||
|
||||
for (int c = 0; c < outNumLetters; ++c)
|
||||
{
|
||||
sizes[c] = 0;
|
||||
}
|
||||
memset(kernings, 0, outNumLetters * sizeof(int));
|
||||
|
||||
return sizes;
|
||||
return kernings;
|
||||
}
|
||||
|
||||
FontAtlas * FontCharMap::createFontAtlas()
|
||||
|
@ -123,21 +120,22 @@ FontAtlas * FontCharMap::createFontAtlas()
|
|||
if (!tempAtlas)
|
||||
return nullptr;
|
||||
|
||||
Size s = _texture->getContentSize();
|
||||
|
||||
Size s = _texture->getContentSizeInPixels();
|
||||
int itemsPerColumn = (int)(s.height / _itemHeight);
|
||||
int itemsPerRow = (int)(s.width / _itemWidth);
|
||||
|
||||
tempAtlas->setCommonLineHeight(_itemHeight);
|
||||
|
||||
|
||||
auto contentScaleFactor = CC_CONTENT_SCALE_FACTOR();
|
||||
|
||||
FontLetterDefinition tempDefinition;
|
||||
tempDefinition.textureID = 0;
|
||||
tempDefinition.offsetX = 0.0f;
|
||||
tempDefinition.offsetY = 0.0f;
|
||||
tempDefinition.validDefinition = true;
|
||||
tempDefinition.width = _itemWidth;
|
||||
tempDefinition.height = _itemHeight;
|
||||
tempDefinition.xAdvance = _itemWidth * CC_CONTENT_SCALE_FACTOR();
|
||||
tempDefinition.width = _itemWidth / contentScaleFactor;
|
||||
tempDefinition.height = _itemHeight / contentScaleFactor;
|
||||
tempDefinition.xAdvance = _itemWidth;
|
||||
|
||||
int charId = _mapStartChar;
|
||||
for (int row = 0; row < itemsPerColumn; ++row)
|
||||
|
@ -146,8 +144,8 @@ FontAtlas * FontCharMap::createFontAtlas()
|
|||
{
|
||||
tempDefinition.letteCharUTF16 = charId;
|
||||
|
||||
tempDefinition.U = _itemWidth * col;
|
||||
tempDefinition.V = _itemHeight * row;
|
||||
tempDefinition.U = _itemWidth * col / contentScaleFactor;
|
||||
tempDefinition.V = _itemHeight * row / contentScaleFactor;
|
||||
|
||||
tempAtlas->addLetterDefinition(tempDefinition);
|
||||
charId++;
|
||||
|
|
|
@ -33,6 +33,7 @@ THE SOFTWARE.
|
|||
#include "renderer/CCGLProgramCache.h"
|
||||
#include "renderer/ccGLStateCache.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
#include "renderer/CCRenderState.h"
|
||||
#include "renderer/CCTexture2D.h"
|
||||
#include "platform/CCGL.h"
|
||||
#include "2d/CCCamera.h"
|
||||
|
@ -327,8 +328,12 @@ void Grid3D::beforeBlit()
|
|||
glGetBooleanv(GL_DEPTH_WRITEMASK, &depthWriteMask);
|
||||
_oldDepthWriteValue = depthWriteMask != GL_FALSE;
|
||||
CHECK_GL_ERROR_DEBUG();
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
RenderState::StateBlock::_defaultState->setDepthTest(true);
|
||||
|
||||
glDepthMask(true);
|
||||
RenderState::StateBlock::_defaultState->setDepthWrite(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -340,8 +345,10 @@ void Grid3D::afterBlit()
|
|||
glEnable(GL_DEPTH_TEST);
|
||||
else
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
|
||||
RenderState::StateBlock::_defaultState->setDepthTest(_oldDepthTestValue);
|
||||
|
||||
glDepthMask(_oldDepthWriteValue);
|
||||
RenderState::StateBlock::_defaultState->setDepthWrite(_oldDepthWriteValue);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -682,6 +682,16 @@ void Label::updateQuads()
|
|||
_reusedRect.size.width = letterDef.width;
|
||||
_reusedRect.origin.x = letterDef.U;
|
||||
_reusedRect.origin.y = letterDef.V;
|
||||
if (_lettersInfo[ctr].position.y > _contentSize.height)
|
||||
{
|
||||
auto clipTop = _lettersInfo[ctr].position.y - _contentSize.height;
|
||||
_reusedRect.origin.y += clipTop;
|
||||
_lettersInfo[ctr].position.y -= clipTop;
|
||||
}
|
||||
if (_lettersInfo[ctr].position.y - letterDef.height < 0.f)
|
||||
{
|
||||
_reusedRect.size.height = _lettersInfo[ctr].position.y;
|
||||
}
|
||||
_reusedLetter->setTextureRect(_reusedRect,false,_reusedRect.size);
|
||||
|
||||
_reusedLetter->setPosition(_lettersInfo[ctr].position);
|
||||
|
|
|
@ -316,7 +316,7 @@ bool LabelTextFormatter::createStringSprites(Label *theLabel)
|
|||
auto labelHeightPixel = theLabel->_labelHeight * contentScaleFactor;
|
||||
if (totalHeight > labelHeightPixel)
|
||||
{
|
||||
int numLines = labelHeightPixel / theLabel->_commonLineHeight;
|
||||
int numLines = MIN(ceil(labelHeightPixel / theLabel->_commonLineHeight), theLabel->_currNumLines);
|
||||
totalHeight = numLines * theLabel->_commonLineHeight;
|
||||
}
|
||||
switch (theLabel->_vAlignment)
|
||||
|
@ -379,7 +379,7 @@ bool LabelTextFormatter::createStringSprites(Label *theLabel)
|
|||
nextFontPositionY -= theLabel->_commonLineHeight;
|
||||
|
||||
theLabel->recordPlaceholderInfo(i);
|
||||
if(nextFontPositionY < theLabel->_commonLineHeight)
|
||||
if(nextFontPositionY < 0.f)
|
||||
break;
|
||||
|
||||
lineStart = true;
|
||||
|
|
|
@ -367,7 +367,7 @@ bool ParticleSystem::initWithDictionary(ValueMap& dictionary, const std::string&
|
|||
|
||||
Texture2D *tex = nullptr;
|
||||
|
||||
if (textureName.length() > 0)
|
||||
if (!textureName.empty())
|
||||
{
|
||||
// set not pop-up message box when load image failed
|
||||
bool notify = FileUtils::getInstance()->isPopupNotify();
|
||||
|
@ -404,7 +404,7 @@ bool ParticleSystem::initWithDictionary(ValueMap& dictionary, const std::string&
|
|||
CCASSERT(isOK, "CCParticleSystem: error init image with Data");
|
||||
CC_BREAK_IF(!isOK);
|
||||
|
||||
setTexture(Director::getInstance()->getTextureCache()->addImage(image, textureName.c_str()));
|
||||
setTexture(Director::getInstance()->getTextureCache()->addImage(image, _plistFile + textureName));
|
||||
|
||||
image->release();
|
||||
}
|
||||
|
|
|
@ -43,6 +43,10 @@ THE SOFTWARE.
|
|||
#include "physics3d/CCPhysics3DComponent.h"
|
||||
#endif
|
||||
|
||||
#if CC_USE_NAVMESH
|
||||
#include "navmesh/CCNavMesh.h"
|
||||
#endif
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
Scene::Scene()
|
||||
|
@ -53,6 +57,10 @@ Scene::Scene()
|
|||
#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
_physics3DWorld = nullptr;
|
||||
_physics3dDebugCamera = nullptr;
|
||||
#endif
|
||||
#if CC_USE_NAVMESH
|
||||
_navMesh = nullptr;
|
||||
_navMeshDebugCamera = nullptr;
|
||||
#endif
|
||||
_ignoreAnchorPointForPosition = true;
|
||||
setAnchorPoint(Vec2(0.5f, 0.5f));
|
||||
|
@ -75,11 +83,26 @@ Scene::~Scene()
|
|||
#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
CC_SAFE_RELEASE(_physics3DWorld);
|
||||
CC_SAFE_RELEASE(_physics3dDebugCamera);
|
||||
#endif
|
||||
#if CC_USE_NAVMESH
|
||||
CC_SAFE_RELEASE(_navMesh);
|
||||
#endif
|
||||
Director::getInstance()->getEventDispatcher()->removeEventListener(_event);
|
||||
CC_SAFE_RELEASE(_event);
|
||||
}
|
||||
|
||||
#if CC_USE_NAVMESH
|
||||
void Scene::setNavMesh(NavMesh* navMesh)
|
||||
{
|
||||
if (_navMesh != navMesh)
|
||||
{
|
||||
CC_SAFE_RETAIN(navMesh);
|
||||
CC_SAFE_RELEASE(_navMesh);
|
||||
_navMesh = navMesh;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
bool Scene::init()
|
||||
{
|
||||
auto size = Director::getInstance()->getWinSize();
|
||||
|
@ -169,6 +192,12 @@ void Scene::render(Renderer* renderer)
|
|||
camera->clearBackground(1.0);
|
||||
//visit the scene
|
||||
visit(renderer, transform, 0);
|
||||
#if CC_USE_NAVMESH
|
||||
if (_navMesh && _navMeshDebugCamera == camera)
|
||||
{
|
||||
_navMesh->debugDraw(renderer);
|
||||
}
|
||||
#endif
|
||||
|
||||
renderer->render();
|
||||
|
||||
|
@ -213,6 +242,16 @@ void Scene::setPhysics3DDebugCamera(Camera* camera)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if CC_USE_NAVMESH
|
||||
void Scene::setNavMeshDebugCamera(Camera *camera)
|
||||
{
|
||||
CC_SAFE_RETAIN(camera);
|
||||
CC_SAFE_RELEASE(_navMeshDebugCamera);
|
||||
_navMeshDebugCamera = camera;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if (CC_USE_PHYSICS || (CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION))
|
||||
void Scene::addChild(Node* child, int zOrder, int tag)
|
||||
{
|
||||
|
@ -298,4 +337,28 @@ void Scene::addChildToPhysicsWorld(Node* child)
|
|||
|
||||
#endif
|
||||
|
||||
#if (CC_USE_PHYSICS || (CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION) || CC_USE_NAVMESH)
|
||||
void Scene::stepPhysicsAndNavigation(float deltaTime)
|
||||
{
|
||||
#if CC_USE_PHYSICS
|
||||
if (_physicsWorld && _physicsWorld->isAutoStep())
|
||||
{
|
||||
_physicsWorld->update(deltaTime, false);
|
||||
}
|
||||
#endif
|
||||
#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
if (_physics3DWorld)
|
||||
{
|
||||
_physics3DWorld->stepSimulate(deltaTime);
|
||||
}
|
||||
#endif
|
||||
#if CC_USE_NAVMESH
|
||||
if (_navMesh)
|
||||
{
|
||||
_navMesh->update(deltaTime);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -44,6 +44,10 @@ class PhysicsWorld;
|
|||
#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
class Physics3DWorld;
|
||||
#endif
|
||||
#if CC_USE_NAVMESH
|
||||
class NavMesh;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @addtogroup _2d
|
||||
* @{
|
||||
|
@ -90,7 +94,7 @@ public:
|
|||
const std::vector<Camera*>& getCameras() const { return _cameras; }
|
||||
|
||||
/** Get the default camera.
|
||||
* @js NA
|
||||
* @js NA
|
||||
* @return The default camera of scene.
|
||||
*/
|
||||
Camera* getDefaultCamera() const { return _defaultCamera; }
|
||||
|
@ -186,6 +190,27 @@ protected:
|
|||
Camera* _physics3dDebugCamera; //
|
||||
#endif
|
||||
#endif // (CC_USE_PHYSICS || CC_USE_3D_PHYSICS)
|
||||
|
||||
#if CC_USE_NAVMESH
|
||||
public:
|
||||
/** set navigation mesh */
|
||||
void setNavMesh(NavMesh* navMesh);
|
||||
/** get navigation mesh */
|
||||
NavMesh* getNavMesh() const { return _navMesh; }
|
||||
/**
|
||||
* Set NavMesh debug draw camera.
|
||||
*/
|
||||
void setNavMeshDebugCamera(Camera *camera);
|
||||
|
||||
protected:
|
||||
NavMesh* _navMesh;
|
||||
Camera * _navMeshDebugCamera;
|
||||
#endif
|
||||
|
||||
#if (CC_USE_PHYSICS || (CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION) || CC_USE_NAVMESH)
|
||||
public:
|
||||
void stepPhysicsAndNavigation(float deltaTime);
|
||||
#endif
|
||||
};
|
||||
|
||||
// end of _2d group
|
||||
|
|
|
@ -338,7 +338,7 @@ void SpriteFrameCache::removeUnusedSpriteFrames()
|
|||
if( spriteFrame->getReferenceCount() == 1 )
|
||||
{
|
||||
toRemoveFrames.push_back(iter->first);
|
||||
spriteFrame->getTexture()->removeSpriteFrameCapInset(spriteFrame);
|
||||
spriteFrame->getTexture()->removeSpriteFrameCapInset(spriteFrame);
|
||||
CCLOG("cocos2d: SpriteFrameCache: removing unused frame: %s", iter->first.c_str());
|
||||
removed = true;
|
||||
}
|
||||
|
|
|
@ -565,6 +565,11 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\chipmunk\prebuilt\win32\release-lib\*.*
|
|||
<ClCompile Include="..\math\Vec2.cpp" />
|
||||
<ClCompile Include="..\math\Vec3.cpp" />
|
||||
<ClCompile Include="..\math\Vec4.cpp" />
|
||||
<ClCompile Include="..\navmesh\CCNavMesh.cpp" />
|
||||
<ClCompile Include="..\navmesh\CCNavMeshAgent.cpp" />
|
||||
<ClCompile Include="..\navmesh\CCNavMeshDebugDraw.cpp" />
|
||||
<ClCompile Include="..\navmesh\CCNavMeshObstacle.cpp" />
|
||||
<ClCompile Include="..\navmesh\CCNavMeshUtils.cpp" />
|
||||
<ClCompile Include="..\network\HttpClient.cpp" />
|
||||
<ClCompile Include="..\network\SocketIO.cpp" />
|
||||
<ClCompile Include="..\network\WebSocket.cpp" />
|
||||
|
@ -1153,6 +1158,11 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\chipmunk\prebuilt\win32\release-lib\*.*
|
|||
<ClInclude Include="..\math\Vec2.h" />
|
||||
<ClInclude Include="..\math\Vec3.h" />
|
||||
<ClInclude Include="..\math\Vec4.h" />
|
||||
<ClInclude Include="..\navmesh\CCNavMesh.h" />
|
||||
<ClInclude Include="..\navmesh\CCNavMeshAgent.h" />
|
||||
<ClInclude Include="..\navmesh\CCNavMeshDebugDraw.h" />
|
||||
<ClInclude Include="..\navmesh\CCNavMeshObstacle.h" />
|
||||
<ClInclude Include="..\navmesh\CCNavMeshUtils.h" />
|
||||
<ClInclude Include="..\network\HttpClient.h" />
|
||||
<ClInclude Include="..\network\HttpRequest.h" />
|
||||
<ClInclude Include="..\network\HttpResponse.h" />
|
||||
|
@ -1338,6 +1348,9 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\chipmunk\prebuilt\win32\release-lib\*.*
|
|||
<ProjectReference Include="..\..\external\bullet\proj.win32\libbullet.vcxproj">
|
||||
<Project>{012dff48-a13f-4f52-b07b-f8b9d21ce95b}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\external\recast\proj.win32\librecast.vcxproj">
|
||||
<Project>{41e34993-647e-4282-8384-4ab1ae31a452}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\editor-support\spine\proj.win32\libSpine.vcxproj">
|
||||
<Project>{b7c2a162-dec9-4418-972e-240ab3cbfcae}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -273,6 +273,8 @@
|
|||
</Filter>
|
||||
<Filter Include="external\clipper">
|
||||
<UniqueIdentifier>{ff65e340-b79d-4f87-9b4c-ed46bda5d20f}</UniqueIdentifier>
|
||||
<Filter Include="navmesh">
|
||||
<UniqueIdentifier>{0f3fa25d-9e2b-4a2e-a1df-834b796b3fb3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -1866,6 +1868,24 @@
|
|||
<ClCompile Include="..\renderer\CCVertexAttribBinding.cpp">
|
||||
<Filter>renderer</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\navmesh\CCNavMesh.cpp">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\navmesh\CCNavMeshAgent.cpp">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\navmesh\CCNavMeshDebugDraw.cpp">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\navmesh\CCNavMeshObstacle.cpp">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\navmesh\CCNavMeshUtils.cpp">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\base\CCNinePatchImageParser.cpp">
|
||||
<Filter>base</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\base\CCNinePatchImageParser.cpp" />
|
||||
<ClCompile Include="..\renderer\CCFrameBuffer.cpp">
|
||||
<Filter>renderer</Filter>
|
||||
|
@ -3657,6 +3677,24 @@
|
|||
<ClInclude Include="..\renderer\CCVertexAttribBinding.h">
|
||||
<Filter>renderer</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\navmesh\CCNavMesh.h">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\navmesh\CCNavMeshAgent.h">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\navmesh\CCNavMeshDebugDraw.h">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\navmesh\CCNavMeshObstacle.h">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\navmesh\CCNavMeshUtils.h">
|
||||
<Filter>navmesh</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\base\CCNinePatchImageParser.h">
|
||||
<Filter>base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\base\CCNinePatchImageParser.h" />
|
||||
<ClInclude Include="..\renderer\CCFrameBuffer.h">
|
||||
<Filter>renderer</Filter>
|
||||
|
|
|
@ -442,6 +442,11 @@
|
|||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\math\Vec2.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\math\Vec3.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\math\Vec4.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMesh.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshAgent.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshDebugDraw.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshObstacle.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshUtils.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\network\HttpClient.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\network\HttpRequest.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\network\HttpResponse.h" />
|
||||
|
@ -1034,6 +1039,11 @@
|
|||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\math\Vec2.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\math\Vec3.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\math\Vec4.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMesh.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshAgent.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshDebugDraw.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshObstacle.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshUtils.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\network\HttpClient.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\network\SocketIO.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\network\WebSocket.cpp" />
|
||||
|
|
|
@ -1783,6 +1783,16 @@
|
|||
<Filter>renderer</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\base\CCNinePatchImageParser.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMesh.h">
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshAgent.h">
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshDebugDraw.h">
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshObstacle.h">
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshUtils.h">
|
||||
</ClInclude>
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\audio\winrt\AudioCachePlayer.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\audio\winrt\AudioEngine-winrt.h" />
|
||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\audio\winrt\AudioSourceReader.h" />
|
||||
|
@ -3402,6 +3412,17 @@
|
|||
<Filter>renderer</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\base\CCNinePatchImageParser.cpp" />
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMesh.cpp">
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshAgent.cpp">
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshDebugDraw.cpp">
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshObstacle.cpp">
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\navmesh\CCNavMeshUtils.cpp">
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\audio\AudioEngine.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\audio\winrt\AudioCachePlayer.cpp" />
|
||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\audio\winrt\AudioEngine-winrt.cpp" />
|
||||
|
|
|
@ -33,6 +33,9 @@
|
|||
<ProjectReference Include="..\..\..\..\..\external\bullet\proj.win8.1-universal\libbullet.Windows\libbullet.Windows.vcxproj">
|
||||
<Project>{ec2b1292-2d8c-4feb-a84b-2550b32c1ae7}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\..\external\recast\proj.win8.1-universal\librecast.Windows\librecast.Windows.vcxproj">
|
||||
<Project>{19e35654-a3ec-48fa-bb21-082a2356c87c}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\editor-support\spine\proj.win8.1-universal\libSpine.Windows\libSpine.Windows.vcxproj">
|
||||
<Project>{f3550fe0-c795-44f6-8feb-093eb68143ae}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
<ProjectReference Include="..\..\..\..\..\external\bullet\proj.win8.1-universal\libbullet.WindowsPhone\libbullet.WindowsPhone.vcxproj">
|
||||
<Project>{e35634bd-b91b-4a6d-b957-96f56dd065f9}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\..\external\recast\proj.win8.1-universal\librecast.WindowsPhone\librecast.WindowsPhone.vcxproj">
|
||||
<Project>{d3bcfc1a-94bd-43b7-9c15-3f48ac6a9fac}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\editor-support\spine\proj.win8.1-universal\libSpine.WindowsPhone\libSpine.WindowsPhone.vcxproj">
|
||||
<Project>{cc1da216-a80d-4be4-b309-acb6af313aff}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -2123,14 +2123,36 @@ Reference* Bundle3D::seekToFirstType(unsigned int type, const std::string& id)
|
|||
std::vector<Vec3> Bundle3D::getTrianglesList(const std::string& path)
|
||||
{
|
||||
std::vector<Vec3> trianglesList;
|
||||
auto bundle = Bundle3D::createBundle();
|
||||
if (!bundle->load(path))
|
||||
{
|
||||
Bundle3D::destroyBundle(bundle);
|
||||
|
||||
if (path.length() <= 4)
|
||||
return trianglesList;
|
||||
}
|
||||
|
||||
auto bundle = Bundle3D::createBundle();
|
||||
std::string ext = path.substr(path.length() - 4, 4);
|
||||
std::transform(ext.begin(), ext.end(), ext.begin(), tolower);
|
||||
MeshDatas meshs;
|
||||
bundle->loadMeshDatas(meshs);
|
||||
if (ext == ".obj")
|
||||
{
|
||||
MaterialDatas materials;
|
||||
NodeDatas nodes;
|
||||
if (!Bundle3D::loadObj(meshs, materials, nodes, path))
|
||||
{
|
||||
Bundle3D::destroyBundle(bundle);
|
||||
return trianglesList;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!bundle->load(path))
|
||||
{
|
||||
Bundle3D::destroyBundle(bundle);
|
||||
return trianglesList;
|
||||
}
|
||||
|
||||
bundle->loadMeshDatas(meshs);
|
||||
|
||||
}
|
||||
|
||||
Bundle3D::destroyBundle(bundle);
|
||||
for (auto iter : meshs.meshDatas){
|
||||
int preVertexSize = iter->getPerVertexSize() / sizeof(float);
|
||||
|
@ -2140,6 +2162,7 @@ std::vector<Vec3> Bundle3D::getTrianglesList(const std::string& path)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return trianglesList;
|
||||
}
|
||||
|
||||
|
|
|
@ -273,6 +273,15 @@ void InitMaterial(ObjLoader::material_t& material)
|
|||
material.unknown_parameter.clear();
|
||||
}
|
||||
|
||||
static std::string& replacePathSeperator(std::string& path)
|
||||
{
|
||||
for (int i = 0; i < path.size(); i++) {
|
||||
if (path[i] == '\\')
|
||||
path[i] = '/';
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
std::string LoadMtl ( std::map<std::string, ObjLoader::material_t>& material_map, const char* filename, const char* mtl_basepath)
|
||||
{
|
||||
material_map.clear();
|
||||
|
@ -451,6 +460,7 @@ std::string LoadMtl ( std::map<std::string, ObjLoader::material_t>& material_map
|
|||
{
|
||||
token += 7;
|
||||
material.ambient_texname = trim(token);
|
||||
replacePathSeperator(material.ambient_texname);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -459,6 +469,7 @@ std::string LoadMtl ( std::map<std::string, ObjLoader::material_t>& material_map
|
|||
{
|
||||
token += 7;
|
||||
material.diffuse_texname = trim(token);
|
||||
replacePathSeperator(material.diffuse_texname);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -467,6 +478,7 @@ std::string LoadMtl ( std::map<std::string, ObjLoader::material_t>& material_map
|
|||
{
|
||||
token += 7;
|
||||
material.specular_texname = trim(token);
|
||||
replacePathSeperator(material.specular_texname);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -475,6 +487,7 @@ std::string LoadMtl ( std::map<std::string, ObjLoader::material_t>& material_map
|
|||
{
|
||||
token += 7;
|
||||
material.normal_texname = trim(token);
|
||||
replacePathSeperator(material.normal_texname);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "renderer/CCGLProgramCache.h"
|
||||
#include "renderer/CCGLProgramState.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
#include "renderer/CCRenderState.h"
|
||||
#include "3d/CCSkybox.h"
|
||||
#include "3d/CCTextureCube.h"
|
||||
|
||||
|
@ -183,14 +184,21 @@ void Skybox::onDraw(const Mat4& transform, uint32_t flags)
|
|||
glGetIntegerv(GL_DEPTH_FUNC, &depthFunc);
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
RenderState::StateBlock::_defaultState->setDepthTest(true);
|
||||
|
||||
glDepthFunc(GL_LEQUAL);
|
||||
RenderState::StateBlock::_defaultState->setDepthFunction(RenderState::DEPTH_LEQUAL);
|
||||
|
||||
|
||||
GLboolean cullFlag = glIsEnabled(GL_CULL_FACE);
|
||||
GLint cullMode;
|
||||
glGetIntegerv(GL_CULL_FACE_MODE, &cullMode);
|
||||
|
||||
glEnable(GL_CULL_FACE);
|
||||
RenderState::StateBlock::_defaultState->setCullFace(true);
|
||||
|
||||
glCullFace(GL_BACK);
|
||||
RenderState::StateBlock::_defaultState->setCullFaceSide(RenderState::CULL_FACE_SIDE_BACK);
|
||||
|
||||
if (Configuration::getInstance()->supportsShareableVAO())
|
||||
{
|
||||
|
|
|
@ -202,6 +202,11 @@ physics3d/CCPhysics3DObject.cpp \
|
|||
physics3d/CCPhysics3DShape.cpp \
|
||||
physics3d/CCPhysicsSprite3D.cpp \
|
||||
physics3d/CCPhysics3DConstraint.cpp \
|
||||
navmesh/CCNavMesh.cpp \
|
||||
navmesh/CCNavMeshAgent.cpp \
|
||||
navmesh/CCNavMeshDebugDraw.cpp \
|
||||
navmesh/CCNavMeshObstacle.cpp \
|
||||
navmesh/CCNavMeshUtils.cpp \
|
||||
../external/ConvertUTF/ConvertUTFWrapper.cpp \
|
||||
../external/ConvertUTF/ConvertUTF.c \
|
||||
../external/tinyxml2/tinyxml2.cpp \
|
||||
|
@ -260,6 +265,7 @@ LOCAL_STATIC_LIBRARIES += cocos_tiff_static
|
|||
LOCAL_STATIC_LIBRARIES += cocos_webp_static
|
||||
LOCAL_STATIC_LIBRARIES += cocos_chipmunk_static
|
||||
LOCAL_STATIC_LIBRARIES += cocos_zlib_static
|
||||
LOCAL_STATIC_LIBRARIES += recast_static
|
||||
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dxandroid_static
|
||||
|
||||
|
@ -307,6 +313,7 @@ $(call import-module,ui)
|
|||
$(call import-module,extensions)
|
||||
$(call import-module,Box2D)
|
||||
$(call import-module,bullet)
|
||||
$(call import-module,recast)
|
||||
$(call import-module,curl/prebuilt/android)
|
||||
$(call import-module,websockets/prebuilt/android)
|
||||
$(call import-module,flatbuffers)
|
||||
|
|
|
@ -37,6 +37,7 @@ include(platform/CMakeLists.txt)
|
|||
include(physics/CMakeLists.txt)
|
||||
include(physics3d/CMakeLists.txt)
|
||||
include(math/CMakeLists.txt)
|
||||
include(navmesh/CMakeLists.txt)
|
||||
include(renderer/CMakeLists.txt)
|
||||
include(base/CMakeLists.txt)
|
||||
include(deprecated/CMakeLists.txt)
|
||||
|
@ -70,6 +71,7 @@ set(COCOS_SRC cocos2d.cpp
|
|||
${COCOS_PHYSICS_SRC}
|
||||
${COCOS_PHYSICS3D_SRC}
|
||||
${COCOS_MATH_SRC}
|
||||
${COCOS_NAVMESH_SRC}
|
||||
${COCOS_RENDERER_SRC}
|
||||
${COCOS_BASE_SRC}
|
||||
${COCOS_AUDIO_SRC}
|
||||
|
@ -156,6 +158,10 @@ if(USE_BULLET)
|
|||
cocos_use_pkg(cocos2d BULLET)
|
||||
endif()
|
||||
|
||||
if(USE_RECAST)
|
||||
cocos_use_pkg(cocos2d RECAST)
|
||||
endif()
|
||||
|
||||
set_target_properties(cocos2d
|
||||
PROPERTIES
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#endif // ERROR
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup audio
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ THE SOFTWARE.
|
|||
#endif
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup audio
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -67,14 +67,6 @@ THE SOFTWARE.
|
|||
#include "CCScriptSupport.h"
|
||||
#endif
|
||||
|
||||
#if CC_USE_PHYSICS
|
||||
#include "physics/CCPhysicsWorld.h"
|
||||
#endif
|
||||
|
||||
#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
#include "physics3d/CCPhysics3DWorld.h"
|
||||
#endif
|
||||
|
||||
/**
|
||||
Position of the FPS
|
||||
|
||||
|
@ -292,19 +284,8 @@ void Director::drawScene()
|
|||
|
||||
if (_runningScene)
|
||||
{
|
||||
#if CC_USE_PHYSICS
|
||||
auto physicsWorld = _runningScene->getPhysicsWorld();
|
||||
if (physicsWorld && physicsWorld->isAutoStep())
|
||||
{
|
||||
physicsWorld->update(_deltaTime, false);
|
||||
}
|
||||
#endif
|
||||
#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
auto physics3DWorld = _runningScene->getPhysics3DWorld();
|
||||
if (physics3DWorld)
|
||||
{
|
||||
physics3DWorld->stepSimulate(_deltaTime);
|
||||
}
|
||||
#if (CC_USE_PHYSICS || (CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION) || CC_USE_NAVMESH)
|
||||
_runningScene->stepPhysicsAndNavigation(_deltaTime);
|
||||
#endif
|
||||
//clear draw stats
|
||||
_renderer->clearDrawStats();
|
||||
|
|
|
@ -260,6 +260,11 @@ THE SOFTWARE.
|
|||
#endif
|
||||
#endif
|
||||
|
||||
/** Use 3D navigation API */
|
||||
#ifndef CC_USE_NAVMESH
|
||||
#define CC_USE_NAVMESH 1
|
||||
#endif
|
||||
|
||||
/** Use culling or not. */
|
||||
#ifndef CC_USE_CULLING
|
||||
#define CC_USE_CULLING 1
|
||||
|
|
|
@ -929,6 +929,8 @@ namespace cocostudio
|
|||
Size contentSize(options->widgetOptions()->size()->width(), options->widgetOptions()->size()->height());
|
||||
button->setContentSize(contentSize);
|
||||
}
|
||||
|
||||
button->setBright(displaystate);
|
||||
}
|
||||
|
||||
Node* ButtonReader::createNodeWithFlatBuffers(const flatbuffers::Table *buttonOptions)
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#define SPINE_EXTENSION_H_
|
||||
|
||||
/* All allocation uses these. */
|
||||
#define MALLOC(TYPE,COUNT) ((TYPE*)_malloc(sizeof(TYPE) * COUNT, __FILE__, __LINE__))
|
||||
#define MALLOC(TYPE,COUNT) ((TYPE*)_malloc(sizeof(TYPE) * (COUNT), __FILE__, __LINE__))
|
||||
#define CALLOC(TYPE,COUNT) ((TYPE*)_calloc(COUNT, sizeof(TYPE), __FILE__, __LINE__))
|
||||
#define NEW(TYPE) CALLOC(TYPE,1)
|
||||
|
||||
|
|
|
@ -0,0 +1,637 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
#include "navmesh/CCNavMesh.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "platform/CCFileUtils.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
#include "recast/Detour/DetourCommon.h"
|
||||
#include "recast/DebugUtils/DetourDebugDraw.h"
|
||||
#include <sstream>
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
struct TileCacheSetHeader
|
||||
{
|
||||
int magic;
|
||||
int version;
|
||||
int numTiles;
|
||||
dtNavMeshParams meshParams;
|
||||
dtTileCacheParams cacheParams;
|
||||
};
|
||||
|
||||
struct TileCacheTileHeader
|
||||
{
|
||||
dtCompressedTileRef tileRef;
|
||||
int dataSize;
|
||||
};
|
||||
|
||||
static unsigned char* parseRow(unsigned char* buf, unsigned char* bufEnd, char* row, int len)
|
||||
{
|
||||
bool start = true;
|
||||
bool done = false;
|
||||
int n = 0;
|
||||
while (!done && buf < bufEnd)
|
||||
{
|
||||
char c = *buf;
|
||||
buf++;
|
||||
// multirow
|
||||
switch (c)
|
||||
{
|
||||
case '\n':
|
||||
if (start) break;
|
||||
done = true;
|
||||
break;
|
||||
case '\r':
|
||||
break;
|
||||
case '\t':
|
||||
case ' ':
|
||||
if (start) break;
|
||||
default:
|
||||
start = false;
|
||||
row[n++] = c;
|
||||
if (n >= len - 1)
|
||||
done = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
row[n] = '\0';
|
||||
return buf;
|
||||
}
|
||||
|
||||
static const int TILECACHESET_MAGIC = 'T' << 24 | 'S' << 16 | 'E' << 8 | 'T'; //'TSET';
|
||||
static const int TILECACHESET_VERSION = 1;
|
||||
static const int MAX_AGENTS = 128;
|
||||
|
||||
NavMesh* NavMesh::create(const std::string &navFilePath, const std::string &geomFilePath)
|
||||
{
|
||||
auto ref = new (std::nothrow) NavMesh();
|
||||
if (ref && ref->initWithFilePath(navFilePath, geomFilePath))
|
||||
{
|
||||
ref->autorelease();
|
||||
return ref;
|
||||
}
|
||||
CC_SAFE_DELETE(ref);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
NavMesh::NavMesh()
|
||||
: _navMesh(nullptr)
|
||||
, _navMeshQuery(nullptr)
|
||||
, _crowed(nullptr)
|
||||
, _tileCache(nullptr)
|
||||
, _allocator(nullptr)
|
||||
, _compressor(nullptr)
|
||||
, _meshProcess(nullptr)
|
||||
, _geomData(nullptr)
|
||||
, _isDebugDrawEnabled(false)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
NavMesh::~NavMesh()
|
||||
{
|
||||
dtFreeTileCache(_tileCache);
|
||||
dtFreeCrowd(_crowed);
|
||||
dtFreeNavMesh(_navMesh);
|
||||
dtFreeNavMeshQuery(_navMeshQuery);
|
||||
CC_SAFE_DELETE(_allocator);
|
||||
CC_SAFE_DELETE(_compressor);
|
||||
CC_SAFE_DELETE(_meshProcess);
|
||||
CC_SAFE_DELETE(_geomData);
|
||||
|
||||
for (auto iter : _agentList){
|
||||
CC_SAFE_RELEASE(iter);
|
||||
}
|
||||
_agentList.clear();
|
||||
|
||||
for (auto iter : _obstacleList){
|
||||
CC_SAFE_RELEASE(iter);
|
||||
}
|
||||
_obstacleList.clear();
|
||||
}
|
||||
|
||||
bool NavMesh::initWithFilePath(const std::string &navFilePath, const std::string &geomFilePath)
|
||||
{
|
||||
_navFilePath = navFilePath;
|
||||
_geomFilePath = geomFilePath;
|
||||
if (!read()) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool NavMesh::read()
|
||||
{
|
||||
if (!loadGeomFile()) return false;
|
||||
if (!loadNavMeshFile()) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool NavMesh::loadNavMeshFile()
|
||||
{
|
||||
auto data = FileUtils::getInstance()->getDataFromFile(_navFilePath);
|
||||
if (data.isNull()) return false;
|
||||
|
||||
// Read header.
|
||||
unsigned int offset = 0;
|
||||
TileCacheSetHeader header = *((TileCacheSetHeader*)(data.getBytes() + offset));
|
||||
offset += sizeof(TileCacheSetHeader);
|
||||
if (header.magic != TILECACHESET_MAGIC)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (header.version != TILECACHESET_VERSION)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
_navMesh = dtAllocNavMesh();
|
||||
if (!_navMesh)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
dtStatus status = _navMesh->init(&header.meshParams);
|
||||
if (dtStatusFailed(status))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
_tileCache = dtAllocTileCache();
|
||||
if (!_tileCache)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
_allocator = new LinearAllocator(32000);
|
||||
_compressor = new FastLZCompressor;
|
||||
_meshProcess = new MeshProcess(_geomData);
|
||||
status = _tileCache->init(&header.cacheParams, _allocator, _compressor, _meshProcess);
|
||||
|
||||
if (dtStatusFailed(status))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Read tiles.
|
||||
for (int i = 0; i < header.numTiles; ++i)
|
||||
{
|
||||
TileCacheTileHeader tileHeader = *((TileCacheTileHeader*)(data.getBytes() + offset));
|
||||
offset += sizeof(TileCacheTileHeader);
|
||||
if (!tileHeader.tileRef || !tileHeader.dataSize)
|
||||
break;
|
||||
|
||||
unsigned char* tileData = (unsigned char*)dtAlloc(tileHeader.dataSize, DT_ALLOC_PERM);
|
||||
if (!tileData) break;
|
||||
memcpy(tileData, (data.getBytes() + offset), tileHeader.dataSize);
|
||||
offset += tileHeader.dataSize;
|
||||
|
||||
dtCompressedTileRef tile = 0;
|
||||
_tileCache->addTile(tileData, tileHeader.dataSize, DT_COMPRESSEDTILE_FREE_DATA, &tile);
|
||||
|
||||
if (tile)
|
||||
_tileCache->buildNavMeshTile(tile, _navMesh);
|
||||
}
|
||||
|
||||
//create crowed
|
||||
_crowed = dtAllocCrowd();
|
||||
_crowed->init(MAX_AGENTS, header.cacheParams.walkableRadius, _navMesh);
|
||||
|
||||
//create NavMeshQuery
|
||||
_navMeshQuery = dtAllocNavMeshQuery();
|
||||
_navMeshQuery->init(_navMesh, 2048);
|
||||
|
||||
_agentList.assign(MAX_AGENTS, nullptr);
|
||||
_obstacleList.assign(header.cacheParams.maxObstacles, nullptr);
|
||||
//duDebugDrawNavMesh(&_debugDraw, *_navMesh, DU_DRAWNAVMESH_OFFMESHCONS);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool NavMesh::loadGeomFile()
|
||||
{
|
||||
unsigned char* buf = 0;
|
||||
auto data = FileUtils::getInstance()->getDataFromFile(_geomFilePath);
|
||||
if (data.isNull()) return false;
|
||||
buf = data.getBytes();
|
||||
_geomData = new GeomData;
|
||||
_geomData->offMeshConCount = 0;
|
||||
|
||||
unsigned char* src = buf;
|
||||
unsigned char* srcEnd = buf + data.getSize();
|
||||
char row[512];
|
||||
while (src < srcEnd)
|
||||
{
|
||||
// Parse one row
|
||||
row[0] = '\0';
|
||||
src = parseRow(src, srcEnd, row, sizeof(row) / sizeof(char));
|
||||
if (row[0] == 'c')
|
||||
{
|
||||
// Off-mesh connection
|
||||
if (_geomData->offMeshConCount < GeomData::MAX_OFFMESH_CONNECTIONS)
|
||||
{
|
||||
float* v = &_geomData->offMeshConVerts[_geomData->offMeshConCount * 3 * 2];
|
||||
int bidir, area = 0, flags = 0;
|
||||
float rad;
|
||||
sscanf(row + 1, "%f %f %f %f %f %f %f %d %d %d",
|
||||
&v[0], &v[1], &v[2], &v[3], &v[4], &v[5], &rad, &bidir, &area, &flags);
|
||||
_geomData->offMeshConRads[_geomData->offMeshConCount] = rad;
|
||||
_geomData->offMeshConDirs[_geomData->offMeshConCount] = (unsigned char)bidir;
|
||||
_geomData->offMeshConAreas[_geomData->offMeshConCount] = (unsigned char)area;
|
||||
_geomData->offMeshConFlags[_geomData->offMeshConCount] = (unsigned short)flags;
|
||||
_geomData->offMeshConCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void NavMesh::dtDraw()
|
||||
{
|
||||
drawObstacles();
|
||||
_debugDraw.depthMask(false);
|
||||
duDebugDrawNavMeshWithClosedList(&_debugDraw, *_navMesh, *_navMeshQuery, DU_DRAWNAVMESH_OFFMESHCONS | DU_DRAWNAVMESH_CLOSEDLIST/* | DU_DRAWNAVMESH_COLOR_TILES*/);
|
||||
drawAgents();
|
||||
drawOffMeshConnections();
|
||||
_debugDraw.depthMask(true);
|
||||
}
|
||||
|
||||
void cocos2d::NavMesh::drawOffMeshConnections()
|
||||
{
|
||||
unsigned int conColor = duRGBA(192, 0, 128, 192);
|
||||
unsigned int baseColor = duRGBA(0, 0, 0, 64);
|
||||
_debugDraw.begin(DU_DRAW_LINES, 2.0f);
|
||||
for (int i = 0; i < _geomData->offMeshConCount; ++i)
|
||||
{
|
||||
float* v = &_geomData->offMeshConVerts[i * 3 * 2];
|
||||
|
||||
_debugDraw.vertex(v[0], v[1], v[2], baseColor);
|
||||
_debugDraw.vertex(v[0], v[1] + 0.2f, v[2], baseColor);
|
||||
|
||||
_debugDraw.vertex(v[3], v[4], v[5], baseColor);
|
||||
_debugDraw.vertex(v[3], v[4] + 0.2f, v[5], baseColor);
|
||||
|
||||
duAppendCircle(&_debugDraw, v[0], v[1] + 0.1f, v[2], _geomData->offMeshConRads[i], baseColor);
|
||||
duAppendCircle(&_debugDraw, v[3], v[4] + 0.1f, v[5], _geomData->offMeshConRads[i], baseColor);
|
||||
|
||||
if (/*hilight*/true)
|
||||
{
|
||||
duAppendArc(&_debugDraw, v[0], v[1], v[2], v[3], v[4], v[5], 0.25f,
|
||||
(_geomData->offMeshConDirs[i] & 1) ? 0.6f : 0.0f, 0.6f, conColor);
|
||||
}
|
||||
}
|
||||
_debugDraw.end();
|
||||
}
|
||||
|
||||
void cocos2d::NavMesh::drawObstacles()
|
||||
{
|
||||
// Draw obstacles
|
||||
for (auto iter : _obstacleList)
|
||||
{
|
||||
if (iter){
|
||||
const dtTileCacheObstacle* ob = _tileCache->getObstacleByRef(iter->_obstacleID);
|
||||
if (ob->state == DT_OBSTACLE_EMPTY) continue;
|
||||
float bmin[3], bmax[3];
|
||||
_tileCache->getObstacleBounds(ob, bmin, bmax);
|
||||
|
||||
unsigned int col = 0;
|
||||
if (ob->state == DT_OBSTACLE_PROCESSING)
|
||||
col = duRGBA(255, 255, 0, 128);
|
||||
else if (ob->state == DT_OBSTACLE_PROCESSED)
|
||||
col = duRGBA(255, 192, 0, 192);
|
||||
else if (ob->state == DT_OBSTACLE_REMOVING)
|
||||
col = duRGBA(220, 0, 0, 128);
|
||||
|
||||
duDebugDrawCylinder(&_debugDraw, bmin[0], bmin[1], bmin[2], bmax[0], bmax[1], bmax[2], col);
|
||||
duDebugDrawCylinderWire(&_debugDraw, bmin[0], bmin[1], bmin[2], bmax[0], bmax[1], bmax[2], duDarkenCol(col), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cocos2d::NavMesh::drawAgents()
|
||||
{
|
||||
for (auto iter : _agentList)
|
||||
{
|
||||
if (iter){
|
||||
auto agent = _crowed->getAgent(iter->_agentID);
|
||||
float r = iter->getRadius();
|
||||
float h = iter->getHeight();
|
||||
|
||||
unsigned int col = duRGBA(0, 0, 0, 32);
|
||||
duDebugDrawCircle(&_debugDraw, agent->npos[0], agent->npos[1], agent->npos[2], r, col, 2.0f);
|
||||
|
||||
col = duRGBA(220, 220, 220, 128);
|
||||
if (agent->targetState == DT_CROWDAGENT_TARGET_REQUESTING || agent->targetState == DT_CROWDAGENT_TARGET_WAITING_FOR_QUEUE)
|
||||
col = duLerpCol(col, duRGBA(128, 0, 255, 128), 32);
|
||||
else if (agent->targetState == DT_CROWDAGENT_TARGET_WAITING_FOR_PATH)
|
||||
col = duLerpCol(col, duRGBA(128, 0, 255, 128), 128);
|
||||
else if (agent->targetState == DT_CROWDAGENT_TARGET_FAILED)
|
||||
col = duRGBA(255, 32, 16, 128);
|
||||
else if (agent->targetState == DT_CROWDAGENT_TARGET_VELOCITY)
|
||||
col = duLerpCol(col, duRGBA(64, 255, 0, 128), 128);
|
||||
|
||||
duDebugDrawCylinder(&_debugDraw, agent->npos[0] - r, agent->npos[1] + r*0.1f, agent->npos[2] - r,
|
||||
agent->npos[0] + r, agent->npos[1] + h, agent->npos[2] + r, col);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Velocity stuff.
|
||||
for (auto iter : _agentList)
|
||||
{
|
||||
if (iter){
|
||||
auto agent = _crowed->getAgent(iter->_agentID);
|
||||
|
||||
const float radius = agent->params.radius;
|
||||
const float height = agent->params.height;
|
||||
const float* pos = agent->npos;
|
||||
const float* vel = agent->vel;
|
||||
// const float* dvel = agent->dvel;
|
||||
|
||||
unsigned int col = duRGBA(220, 220, 220, 192);
|
||||
if (agent->targetState == DT_CROWDAGENT_TARGET_REQUESTING || agent->targetState == DT_CROWDAGENT_TARGET_WAITING_FOR_QUEUE)
|
||||
col = duLerpCol(col, duRGBA(128, 0, 255, 192), 32);
|
||||
else if (agent->targetState == DT_CROWDAGENT_TARGET_WAITING_FOR_PATH)
|
||||
col = duLerpCol(col, duRGBA(128, 0, 255, 192), 128);
|
||||
else if (agent->targetState == DT_CROWDAGENT_TARGET_FAILED)
|
||||
col = duRGBA(255, 32, 16, 192);
|
||||
else if (agent->targetState == DT_CROWDAGENT_TARGET_VELOCITY)
|
||||
col = duLerpCol(col, duRGBA(64, 255, 0, 192), 128);
|
||||
|
||||
duDebugDrawCircle(&_debugDraw, pos[0], pos[1] + height, pos[2], radius, col, 2.0f);
|
||||
|
||||
//duDebugDrawArrow(&_debugDraw, pos[0], pos[1] + height, pos[2],
|
||||
// pos[0] + dvel[0], pos[1] + height + dvel[1], pos[2] + dvel[2],
|
||||
// 0.0f, 0.4f, duRGBA(0, 192, 255, 192), 2.0f);
|
||||
|
||||
duDebugDrawArrow(&_debugDraw, pos[0], pos[1] + height, pos[2],
|
||||
pos[0] + vel[0], pos[1] + height + vel[1], pos[2] + vel[2],
|
||||
0.0f, 0.4f, duRGBA(0, 0, 0, 160), 2.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void NavMesh::removeNavMeshObstacle(NavMeshObstacle *obstacle)
|
||||
{
|
||||
auto iter = std::find(_obstacleList.begin(), _obstacleList.end(), obstacle);
|
||||
if (iter != _obstacleList.end()){
|
||||
obstacle->removeFrom(_tileCache);
|
||||
obstacle->release();
|
||||
_obstacleList[iter - _obstacleList.begin()] = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void NavMesh::addNavMeshObstacle(NavMeshObstacle *obstacle)
|
||||
{
|
||||
auto iter = std::find(_obstacleList.begin(), _obstacleList.end(), nullptr);
|
||||
if (iter != _obstacleList.end()){
|
||||
obstacle->addTo(_tileCache);
|
||||
obstacle->retain();
|
||||
_obstacleList[iter - _obstacleList.begin()] = obstacle;
|
||||
}
|
||||
}
|
||||
|
||||
void NavMesh::removeNavMeshAgent(NavMeshAgent *agent)
|
||||
{
|
||||
auto iter = std::find(_agentList.begin(), _agentList.end(), agent);
|
||||
if (iter != _agentList.end()){
|
||||
agent->removeFrom(_crowed);
|
||||
agent->setNavMeshQuery(nullptr);
|
||||
agent->release();
|
||||
_agentList[iter - _agentList.begin()] = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void NavMesh::addNavMeshAgent(NavMeshAgent *agent)
|
||||
{
|
||||
auto iter = std::find(_agentList.begin(), _agentList.end(), nullptr);
|
||||
if (iter != _agentList.end()){
|
||||
agent->addTo(_crowed);
|
||||
agent->setNavMeshQuery(_navMeshQuery);
|
||||
agent->retain();
|
||||
_agentList[iter - _agentList.begin()] = agent;
|
||||
}
|
||||
}
|
||||
|
||||
bool NavMesh::isDebugDrawEnabled() const
|
||||
{
|
||||
return _isDebugDrawEnabled;
|
||||
}
|
||||
|
||||
void NavMesh::setDebugDrawEnable(bool enable)
|
||||
{
|
||||
_isDebugDrawEnabled = enable;
|
||||
}
|
||||
|
||||
void NavMesh::debugDraw(Renderer* renderer)
|
||||
{
|
||||
if (_isDebugDrawEnabled){
|
||||
_debugDraw.clear();
|
||||
dtDraw();
|
||||
_debugDraw.draw(renderer);
|
||||
}
|
||||
}
|
||||
|
||||
void NavMesh::update(float dt)
|
||||
{
|
||||
for (auto iter : _agentList){
|
||||
if (iter)
|
||||
iter->preUpdate(dt);
|
||||
}
|
||||
|
||||
for (auto iter : _obstacleList){
|
||||
if (iter)
|
||||
iter->preUpdate(dt);
|
||||
}
|
||||
|
||||
if (_crowed)
|
||||
_crowed->update(dt, nullptr);
|
||||
|
||||
if (_tileCache)
|
||||
_tileCache->update(dt, _navMesh);
|
||||
|
||||
for (auto iter : _agentList){
|
||||
if (iter)
|
||||
iter->postUpdate(dt);
|
||||
}
|
||||
|
||||
for (auto iter : _obstacleList){
|
||||
if (iter)
|
||||
iter->postUpdate(dt);
|
||||
}
|
||||
}
|
||||
|
||||
void cocos2d::NavMesh::findPath(const Vec3 &start, const Vec3 &end, std::vector<Vec3> &pathPoints)
|
||||
{
|
||||
static const int MAX_POLYS = 256;
|
||||
static const int MAX_SMOOTH = 2048;
|
||||
int pathIterNum = 0;
|
||||
float ext[3];
|
||||
ext[0] = 2; ext[1] = 4; ext[2] = 2;
|
||||
dtQueryFilter filter;
|
||||
dtPolyRef startRef, endRef;
|
||||
dtPolyRef polys[MAX_POLYS];
|
||||
int npolys = 0;
|
||||
_navMeshQuery->findNearestPoly(&start.x, ext, &filter, &startRef, 0);
|
||||
_navMeshQuery->findNearestPoly(&end.x, ext, &filter, &endRef, 0);
|
||||
_navMeshQuery->findPath(startRef, endRef, &start.x, &end.x, &filter, polys, &npolys, MAX_POLYS);
|
||||
|
||||
if (npolys)
|
||||
{
|
||||
//// Iterate over the path to find smooth path on the detail mesh surface.
|
||||
//dtPolyRef polys[MAX_POLYS];
|
||||
//memcpy(polys, polys, sizeof(dtPolyRef)*npolys);
|
||||
//int npolys = npolys;
|
||||
|
||||
float iterPos[3], targetPos[3];
|
||||
_navMeshQuery->closestPointOnPoly(startRef, &start.x, iterPos, 0);
|
||||
_navMeshQuery->closestPointOnPoly(polys[npolys - 1], &end.x, targetPos, 0);
|
||||
|
||||
static const float STEP_SIZE = 0.5f;
|
||||
static const float SLOP = 0.01f;
|
||||
|
||||
int nsmoothPath = 0;
|
||||
//dtVcopy(&m_smoothPath[m_nsmoothPath * 3], iterPos);
|
||||
//m_nsmoothPath++;
|
||||
|
||||
pathPoints.push_back(Vec3(iterPos[0], iterPos[1], iterPos[2]));
|
||||
nsmoothPath++;
|
||||
|
||||
// Move towards target a small advancement at a time until target reached or
|
||||
// when ran out of memory to store the path.
|
||||
while (npolys && nsmoothPath < MAX_SMOOTH)
|
||||
{
|
||||
// Find location to steer towards.
|
||||
float steerPos[3];
|
||||
unsigned char steerPosFlag;
|
||||
dtPolyRef steerPosRef;
|
||||
|
||||
if (!getSteerTarget(_navMeshQuery, iterPos, targetPos, SLOP,
|
||||
polys, npolys, steerPos, steerPosFlag, steerPosRef))
|
||||
break;
|
||||
|
||||
bool endOfPath = (steerPosFlag & DT_STRAIGHTPATH_END) ? true : false;
|
||||
bool offMeshConnection = (steerPosFlag & DT_STRAIGHTPATH_OFFMESH_CONNECTION) ? true : false;
|
||||
|
||||
// Find movement delta.
|
||||
float delta[3], len;
|
||||
dtVsub(delta, steerPos, iterPos);
|
||||
len = dtMathSqrtf(dtVdot(delta, delta));
|
||||
// If the steer target is end of path or off-mesh link, do not move past the location.
|
||||
if ((endOfPath || offMeshConnection) && len < STEP_SIZE)
|
||||
len = 1;
|
||||
else
|
||||
len = STEP_SIZE / len;
|
||||
float moveTgt[3];
|
||||
dtVmad(moveTgt, iterPos, delta, len);
|
||||
|
||||
// Move
|
||||
float result[3];
|
||||
dtPolyRef visited[16];
|
||||
int nvisited = 0;
|
||||
_navMeshQuery->moveAlongSurface(polys[0], iterPos, moveTgt, &filter,
|
||||
result, visited, &nvisited, 16);
|
||||
|
||||
npolys = fixupCorridor(polys, npolys, MAX_POLYS, visited, nvisited);
|
||||
npolys = fixupShortcuts(polys, npolys, _navMeshQuery);
|
||||
|
||||
float h = 0;
|
||||
_navMeshQuery->getPolyHeight(polys[0], result, &h);
|
||||
result[1] = h;
|
||||
dtVcopy(iterPos, result);
|
||||
|
||||
// Handle end of path and off-mesh links when close enough.
|
||||
if (endOfPath && inRange(iterPos, steerPos, SLOP, 1.0f))
|
||||
{
|
||||
// Reached end of path.
|
||||
dtVcopy(iterPos, targetPos);
|
||||
if (nsmoothPath < MAX_SMOOTH)
|
||||
{
|
||||
//dtVcopy(&m_smoothPath[m_nsmoothPath * 3], iterPos);
|
||||
//m_nsmoothPath++;
|
||||
pathPoints.push_back(Vec3(iterPos[0], iterPos[1], iterPos[2]));
|
||||
nsmoothPath++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (offMeshConnection && inRange(iterPos, steerPos, SLOP, 1.0f))
|
||||
{
|
||||
// Reached off-mesh connection.
|
||||
float startPos[3], endPos[3];
|
||||
|
||||
// Advance the path up to and over the off-mesh connection.
|
||||
dtPolyRef prevRef = 0, polyRef = polys[0];
|
||||
int npos = 0;
|
||||
while (npos < npolys && polyRef != steerPosRef)
|
||||
{
|
||||
prevRef = polyRef;
|
||||
polyRef = polys[npos];
|
||||
npos++;
|
||||
}
|
||||
for (int i = npos; i < npolys; ++i)
|
||||
polys[i - npos] = polys[i];
|
||||
npolys -= npos;
|
||||
|
||||
// Handle the connection.
|
||||
dtStatus status = _navMesh->getOffMeshConnectionPolyEndPoints(prevRef, polyRef, startPos, endPos);
|
||||
if (dtStatusSucceed(status))
|
||||
{
|
||||
if (nsmoothPath < MAX_SMOOTH)
|
||||
{
|
||||
//dtVcopy(&m_smoothPath[m_nsmoothPath * 3], startPos);
|
||||
//m_nsmoothPath++;
|
||||
pathPoints.push_back(Vec3(startPos[0], startPos[1], startPos[2]));
|
||||
nsmoothPath++;
|
||||
// Hack to make the dotted path not visible during off-mesh connection.
|
||||
if (nsmoothPath & 1)
|
||||
{
|
||||
//dtVcopy(&m_smoothPath[m_nsmoothPath * 3], startPos);
|
||||
//m_nsmoothPath++;
|
||||
pathPoints.push_back(Vec3(startPos[0], startPos[1], startPos[2]));
|
||||
nsmoothPath++;
|
||||
}
|
||||
}
|
||||
// Move position at the other side of the off-mesh link.
|
||||
dtVcopy(iterPos, endPos);
|
||||
float eh = 0.0f;
|
||||
_navMeshQuery->getPolyHeight(polys[0], iterPos, &eh);
|
||||
iterPos[1] = eh;
|
||||
}
|
||||
}
|
||||
|
||||
// Store results.
|
||||
if (nsmoothPath < MAX_SMOOTH)
|
||||
{
|
||||
//dtVcopy(&m_smoothPath[m_nsmoothPath * 3], iterPos);
|
||||
//m_nsmoothPath++;
|
||||
|
||||
pathPoints.push_back(Vec3(iterPos[0], iterPos[1], iterPos[2]));
|
||||
nsmoothPath++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
|
@ -0,0 +1,139 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __CCNAV_MESH_H__
|
||||
#define __CCNAV_MESH_H__
|
||||
|
||||
#include "base/ccConfig.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "base/CCRef.h"
|
||||
#include "math/Vec3.h"
|
||||
#include "recast/Detour/DetourNavMesh.h"
|
||||
#include "recast/Detour/DetourNavMeshQuery.h"
|
||||
#include "recast/DetourCrowd/DetourCrowd.h"
|
||||
#include "recast/DetourTileCache/DetourTileCache.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "navmesh/CCNavMeshAgent.h"
|
||||
#include "navmesh/CCNavMeshDebugDraw.h"
|
||||
#include "navmesh/CCNavMeshObstacle.h"
|
||||
#include "navmesh/CCNavMeshUtils.h"
|
||||
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup 3d
|
||||
* @{
|
||||
*/
|
||||
class Renderer;
|
||||
/** @brief NavMesh: The NavMesh information container, include mesh, tileCache, and so on. */
|
||||
class CC_DLL NavMesh : public Ref
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
Create navmesh
|
||||
|
||||
@param navFilePath The NavMesh File path.
|
||||
@param geomFilePath The geometry File Path,include offmesh information,etc.
|
||||
*/
|
||||
static NavMesh* create(const std::string &navFilePath, const std::string &geomFilePath);
|
||||
|
||||
/** update navmesh. */
|
||||
void update(float dt);
|
||||
|
||||
/** Internal method, the updater of debug drawing, need called each frame. */
|
||||
void debugDraw(Renderer* renderer);
|
||||
|
||||
/** Enable debug draw or disable. */
|
||||
void setDebugDrawEnable(bool enable);
|
||||
|
||||
/** Check enabled debug draw. */
|
||||
bool isDebugDrawEnabled() const;
|
||||
|
||||
/** add a agent to navmesh. */
|
||||
void addNavMeshAgent(NavMeshAgent *agent);
|
||||
|
||||
/** remove a agent from navmesh. */
|
||||
void removeNavMeshAgent(NavMeshAgent *agent);
|
||||
|
||||
/** add a obstacle to navmesh. */
|
||||
void addNavMeshObstacle(NavMeshObstacle *obstacle);
|
||||
|
||||
/** remove a obstacle from navmesh. */
|
||||
void removeNavMeshObstacle(NavMeshObstacle *obstacle);
|
||||
|
||||
/**
|
||||
find a path on navmesh
|
||||
|
||||
@param start The start search position in world coordinate system.
|
||||
@param end The end search position in world coordinate system.
|
||||
@param pathPoints the key points of path.
|
||||
*/
|
||||
void findPath(const Vec3 &start, const Vec3 &end, std::vector<Vec3> &pathPoints);
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
NavMesh();
|
||||
virtual ~NavMesh();
|
||||
|
||||
protected:
|
||||
|
||||
bool initWithFilePath(const std::string &navFilePath, const std::string &geomFilePath);
|
||||
bool read();
|
||||
bool loadNavMeshFile();
|
||||
bool loadGeomFile();
|
||||
void dtDraw();
|
||||
void drawAgents();
|
||||
void drawObstacles();
|
||||
void drawOffMeshConnections();
|
||||
|
||||
protected:
|
||||
|
||||
dtNavMesh *_navMesh;
|
||||
dtNavMeshQuery *_navMeshQuery;
|
||||
dtCrowd *_crowed;
|
||||
dtTileCache *_tileCache;
|
||||
LinearAllocator *_allocator;
|
||||
FastLZCompressor *_compressor;
|
||||
MeshProcess *_meshProcess;
|
||||
GeomData *_geomData;
|
||||
|
||||
std::vector<NavMeshAgent*> _agentList;
|
||||
std::vector<NavMeshObstacle*> _obstacleList;
|
||||
NavMeshDebugDraw _debugDraw;
|
||||
std::string _navFilePath;
|
||||
std::string _geomFilePath;
|
||||
bool _isDebugDrawEnabled;
|
||||
};
|
||||
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
||||
|
||||
#endif // __CCNAV_MESH_H__
|
|
@ -0,0 +1,408 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include "navmesh/CCNavMeshAgent.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "navmesh/CCNavMesh.h"
|
||||
#include "recast/DetourCrowd/DetourCrowd.h"
|
||||
#include "2d/CCNode.h"
|
||||
#include "2d/CCScene.h"
|
||||
#include <algorithm>
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
NavMeshAgentParam::NavMeshAgentParam()
|
||||
: radius(0.6f)
|
||||
, height(2.0f)
|
||||
, maxAcceleration(8.0f)
|
||||
, maxSpeed(3.5f)
|
||||
, collisionQueryRange(radius * 12.0f)
|
||||
, pathOptimizationRange(radius * 30.0f)
|
||||
, updateFlags(DT_CROWD_ANTICIPATE_TURNS | DT_CROWD_OPTIMIZE_VIS | DT_CROWD_OPTIMIZE_TOPO | DT_CROWD_OBSTACLE_AVOIDANCE)
|
||||
, obstacleAvoidanceType(3)
|
||||
, separationWeight(2.0f)
|
||||
, queryFilterType(0)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
NavMeshAgent* NavMeshAgent::create(const NavMeshAgentParam ¶m)
|
||||
{
|
||||
auto ref = new (std::nothrow) NavMeshAgent();
|
||||
if (ref && ref->initWith(param))
|
||||
{
|
||||
ref->autorelease();
|
||||
return ref;
|
||||
}
|
||||
CC_SAFE_DELETE(ref);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const std::string& NavMeshAgent::getNavMeshAgentComponentName()
|
||||
{
|
||||
static std::string comName = "___NavMeshAgentComponent___";
|
||||
return comName;
|
||||
}
|
||||
|
||||
cocos2d::NavMeshAgent::NavMeshAgent()
|
||||
: _agentID(-1)
|
||||
, _needAutoOrientation(true)
|
||||
, _crowd(nullptr)
|
||||
, _needUpdateAgent(true)
|
||||
, _needMove(false)
|
||||
, _navMeshQuery(nullptr)
|
||||
, _rotRefAxes(Vec3::UNIT_Z)
|
||||
, _totalTimeAfterMove(0.0f)
|
||||
, _userData(nullptr)
|
||||
, _state(DT_CROWDAGENT_STATE_WALKING)
|
||||
, _syncFlag(NODE_AND_NODE)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
cocos2d::NavMeshAgent::~NavMeshAgent()
|
||||
{
|
||||
}
|
||||
|
||||
bool NavMeshAgent::initWith(const NavMeshAgentParam ¶m)
|
||||
{
|
||||
_param = param;
|
||||
setName(getNavMeshAgentComponentName());
|
||||
return true;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::setNavMeshQuery(dtNavMeshQuery *query)
|
||||
{
|
||||
_navMeshQuery = query;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::removeFrom(dtCrowd *crowed)
|
||||
{
|
||||
crowed->removeAgent(_agentID);
|
||||
_crowd = nullptr;
|
||||
_agentID = -1;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::addTo(dtCrowd *crowed)
|
||||
{
|
||||
_crowd = crowed;
|
||||
dtCrowdAgentParams ap;
|
||||
convertTodtAgentParam(_param, ap);
|
||||
Mat4 mat = _owner->getNodeToWorldTransform();
|
||||
_agentID = _crowd->addAgent(&mat.m[12], &ap);
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::convertTodtAgentParam(const NavMeshAgentParam &inParam, dtCrowdAgentParams &outParam)
|
||||
{
|
||||
memset(&outParam, 0, sizeof(outParam));
|
||||
outParam.collisionQueryRange = inParam.collisionQueryRange;
|
||||
outParam.height = inParam.height;
|
||||
outParam.maxAcceleration = inParam.maxAcceleration;
|
||||
outParam.maxSpeed = inParam.maxSpeed;
|
||||
outParam.obstacleAvoidanceType = inParam.obstacleAvoidanceType;
|
||||
outParam.pathOptimizationRange = inParam.pathOptimizationRange;
|
||||
outParam.queryFilterType = inParam.queryFilterType;
|
||||
outParam.radius = inParam.radius;
|
||||
outParam.separationWeight = inParam.separationWeight;
|
||||
outParam.updateFlags = inParam.updateFlags;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::onExit()
|
||||
{
|
||||
if (_agentID == -1) return;
|
||||
Component::onExit();
|
||||
|
||||
auto scene = _owner->getScene();
|
||||
if (scene && scene->getNavMesh()){
|
||||
scene->getNavMesh()->removeNavMeshAgent(this);
|
||||
}
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::onEnter()
|
||||
{
|
||||
if (_agentID != -1) return;
|
||||
Component::onEnter();
|
||||
auto scene = _owner->getScene();
|
||||
if (scene && scene->getNavMesh()){
|
||||
scene->getNavMesh()->addNavMeshAgent(this);
|
||||
}
|
||||
}
|
||||
|
||||
float NavMeshAgent::getMaxSpeed() const
|
||||
{
|
||||
return _param.maxSpeed;
|
||||
}
|
||||
|
||||
void NavMeshAgent::setSeparationWeight(float weight)
|
||||
{
|
||||
_param.separationWeight = weight;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
float NavMeshAgent::getSeparationWeight() const
|
||||
{
|
||||
return _param.separationWeight;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::setObstacleAvoidanceType(unsigned char type)
|
||||
{
|
||||
_param.obstacleAvoidanceType = type;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
unsigned char NavMeshAgent::getObstacleAvoidanceType() const
|
||||
{
|
||||
return _param.obstacleAvoidanceType;
|
||||
}
|
||||
|
||||
Vec3 NavMeshAgent::getCurrentVelocity() const
|
||||
{
|
||||
if (_crowd){
|
||||
auto agent = _crowd->getAgent(_agentID);
|
||||
if (agent){
|
||||
return Vec3(agent->vel[0], agent->vel[1], agent->vel[2]);
|
||||
}
|
||||
}
|
||||
return Vec3::ZERO;
|
||||
}
|
||||
|
||||
void NavMeshAgent::setMaxSpeed(float maxSpeed)
|
||||
{
|
||||
_param.maxSpeed = maxSpeed;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
float NavMeshAgent::getMaxAcceleration() const
|
||||
{
|
||||
return _param.maxAcceleration;
|
||||
}
|
||||
|
||||
void NavMeshAgent::setMaxAcceleration(float maxAcceleration)
|
||||
{
|
||||
_param.maxAcceleration = maxAcceleration;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
float NavMeshAgent::getHeight() const
|
||||
{
|
||||
return _param.height;
|
||||
}
|
||||
|
||||
void NavMeshAgent::setHeight(float height)
|
||||
{
|
||||
_param.height = height;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
float NavMeshAgent::getRadius() const
|
||||
{
|
||||
return _param.radius;
|
||||
}
|
||||
|
||||
void NavMeshAgent::setRadius(float radius)
|
||||
{
|
||||
_param.radius = radius;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
void NavMeshAgent::move(const Vec3 &destination, const MoveCallback &callback)
|
||||
{
|
||||
_destination = destination;
|
||||
_moveCallback = callback;
|
||||
_needMove = true;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
OffMeshLinkData NavMeshAgent::getCurrentOffMeshLinkData()
|
||||
{
|
||||
OffMeshLinkData data;
|
||||
if (_crowd && isOnOffMeshLink()){
|
||||
auto agentAnim = _crowd->getEditableAgentAnim(_agentID);
|
||||
if (agentAnim){
|
||||
Mat4 mat;
|
||||
if (_owner && _owner->getParent())
|
||||
mat = _owner->getParent()->getWorldToNodeTransform();
|
||||
mat.transformPoint(agentAnim->startPos, &data.startPosition);
|
||||
mat.transformPoint(agentAnim->endPos, &data.endPosition);
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
bool NavMeshAgent::isOnOffMeshLink()
|
||||
{
|
||||
return _state == DT_CROWDAGENT_STATE_OFFMESH;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::completeOffMeshLink()
|
||||
{
|
||||
if (_crowd && isOnOffMeshLink()){
|
||||
_state = DT_CROWDAGENT_STATE_WALKING;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
}
|
||||
|
||||
void NavMeshAgent::setAutoTraverseOffMeshLink(bool isAuto)
|
||||
{
|
||||
if (_crowd && isOnOffMeshLink()){
|
||||
auto agentAnim = _crowd->getEditableAgentAnim(_agentID);
|
||||
if (agentAnim){
|
||||
agentAnim->active = isAuto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void NavMeshAgent::stop()
|
||||
{
|
||||
if (_state != DT_CROWDAGENT_STATE_INVALID) return;
|
||||
_state = DT_CROWDAGENT_STATE_INVALID;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
void NavMeshAgent::setOrientationRefAxes(const Vec3 &rotRefAxes)
|
||||
{
|
||||
_rotRefAxes = rotRefAxes;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshAgent::setAutoOrientation(bool isAuto)
|
||||
{
|
||||
_needAutoOrientation = isAuto;
|
||||
}
|
||||
|
||||
void NavMeshAgent::resume()
|
||||
{
|
||||
if (_state != DT_CROWDAGENT_STATE_INVALID) return;
|
||||
_state = DT_CROWDAGENT_STATE_WALKING;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
void NavMeshAgent::pause()
|
||||
{
|
||||
if (_state == DT_CROWDAGENT_STATE_INVALID) return;
|
||||
_state = DT_CROWDAGENT_STATE_INVALID;
|
||||
_needUpdateAgent = true;
|
||||
}
|
||||
|
||||
void NavMeshAgent::preUpdate(float delta)
|
||||
{
|
||||
if (_state != DT_CROWDAGENT_STATE_INVALID)
|
||||
_totalTimeAfterMove += delta;
|
||||
if (_moveCallback && _state != DT_CROWDAGENT_STATE_INVALID)
|
||||
_moveCallback(this, _totalTimeAfterMove);
|
||||
|
||||
if ((_syncFlag & NODE_TO_AGENT) != 0)
|
||||
syncToAgent();
|
||||
|
||||
if (_needMove && _crowd && _navMeshQuery){
|
||||
if (_state == DT_CROWDAGENT_STATE_OFFMESH) return;
|
||||
_state = DT_CROWDAGENT_STATE_WALKING;
|
||||
_totalTimeAfterMove = 0.0f;
|
||||
dtPolyRef pRef = 0;
|
||||
float nearestPos[3];
|
||||
_navMeshQuery->findNearestPoly(&_destination.x, _crowd->getQueryExtents(), _crowd->getFilter(0), &pRef, nearestPos);
|
||||
_crowd->requestMoveTarget(_agentID, pRef, nearestPos);
|
||||
_needMove = false;
|
||||
}
|
||||
}
|
||||
|
||||
void NavMeshAgent::postUpdate(float delta)
|
||||
{
|
||||
if ((_syncFlag & AGENT_TO_NODE) != 0)
|
||||
syncToNode();
|
||||
}
|
||||
|
||||
void NavMeshAgent::syncToNode()
|
||||
{
|
||||
const dtCrowdAgent *agent = nullptr;
|
||||
if (_crowd){
|
||||
agent = _crowd->getAgent(_agentID);
|
||||
}
|
||||
|
||||
if (agent){
|
||||
Mat4 wtop;
|
||||
Vec3 pos;
|
||||
if (_owner->getParent())
|
||||
wtop = _owner->getParent()->getWorldToNodeTransform();
|
||||
wtop.transformPoint(Vec3(agent->npos[0], agent->npos[1], agent->npos[2]), &pos);
|
||||
_owner->setPosition3D(pos);
|
||||
_state = agent->state;
|
||||
if (_needAutoOrientation){
|
||||
if ( fabs(agent->vel[0]) > 0.3f || fabs(agent->vel[1]) > 0.3f || fabs(agent->vel[2]) > 0.3f)
|
||||
{
|
||||
Vec3 axes(_rotRefAxes);
|
||||
axes.normalize();
|
||||
Vec3 dir;
|
||||
wtop.transformVector(Vec3(agent->vel[0], agent->vel[1], agent->vel[2]), &dir);
|
||||
dir.normalize();
|
||||
float cosTheta = Vec3::dot(axes, dir);
|
||||
Vec3 rotAxes;
|
||||
Vec3::cross(axes, dir, &rotAxes);
|
||||
Quaternion rot = Quaternion(rotAxes, acosf(cosTheta));
|
||||
_owner->setRotationQuat(rot);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void NavMeshAgent::syncToAgent()
|
||||
{
|
||||
if (_crowd){
|
||||
auto agent = _crowd->getEditableAgent(_agentID);
|
||||
Mat4 mat = _owner->getNodeToWorldTransform();
|
||||
agent->npos[0] = mat.m[12];
|
||||
agent->npos[1] = mat.m[13];
|
||||
agent->npos[2] = mat.m[14];
|
||||
//if (_needAutoOrientation){
|
||||
// Vec3 vel = mat * _rotRefAxes;
|
||||
// agent->vel[0] = vel.x;
|
||||
// agent->vel[1] = vel.y;
|
||||
// agent->vel[2] = vel.z;
|
||||
//}
|
||||
if (_needUpdateAgent){
|
||||
dtCrowdAgentParams ap;
|
||||
convertTodtAgentParam(_param, ap);
|
||||
agent->params = ap;
|
||||
agent->state = _state;
|
||||
_needUpdateAgent = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Vec3 NavMeshAgent::getVelocity() const
|
||||
{
|
||||
const dtCrowdAgent *agent = nullptr;
|
||||
if (_crowd){
|
||||
agent = _crowd->getAgent(_agentID);
|
||||
}
|
||||
if (agent)
|
||||
{
|
||||
return Vec3(agent->vel[0], agent->vel[1], agent->vel[2]);
|
||||
}
|
||||
return Vec3::ZERO;
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
|
@ -0,0 +1,239 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __CCNAV_MESH_AGENT_H__
|
||||
#define __CCNAV_MESH_AGENT_H__
|
||||
|
||||
#include "base/ccConfig.h"
|
||||
#if CC_USE_NAVMESH
|
||||
#include "2d/CCComponent.h"
|
||||
|
||||
#include "base/CCRef.h"
|
||||
#include "math/Vec3.h"
|
||||
#include "recast/DetourCrowd/DetourCrowd.h"
|
||||
|
||||
class dtNavMeshQuery;
|
||||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup 3d
|
||||
* @{
|
||||
*/
|
||||
struct CC_DLL NavMeshAgentParam
|
||||
{
|
||||
NavMeshAgentParam();
|
||||
|
||||
float radius; ///< Agent radius. [Limit: >= 0]
|
||||
float height; ///< Agent height. [Limit: > 0]
|
||||
float maxAcceleration; ///< Maximum allowed acceleration. [Limit: >= 0]
|
||||
float maxSpeed; ///< Maximum allowed speed. [Limit: >= 0]
|
||||
|
||||
/// Defines how close a collision element must be before it is considered for steering behaviors. [Limits: > 0]
|
||||
float collisionQueryRange;
|
||||
|
||||
float pathOptimizationRange; ///< The path visibility optimization range. [Limit: > 0]
|
||||
|
||||
/// How aggresive the agent manager should be at avoiding collisions with this agent. [Limit: >= 0]
|
||||
float separationWeight;
|
||||
|
||||
/// Flags that impact steering behavior. (See: #UpdateFlags)
|
||||
unsigned char updateFlags;
|
||||
|
||||
/// The index of the avoidance configuration to use for the agent.
|
||||
/// [Limits: 0 <= value <= #DT_CROWD_MAX_OBSTAVOIDANCE_PARAMS]
|
||||
unsigned char obstacleAvoidanceType;
|
||||
|
||||
/// The index of the query filter used by this agent.
|
||||
unsigned char queryFilterType;
|
||||
};
|
||||
|
||||
struct CC_DLL OffMeshLinkData
|
||||
{
|
||||
Vec3 startPosition;//position in local coordinate system.
|
||||
Vec3 endPosition;//position in local coordinate system.
|
||||
};
|
||||
|
||||
/** @brief NavMeshAgent: The code wrapping of dtCrowdAgent, use component mode. */
|
||||
class CC_DLL NavMeshAgent : public Component
|
||||
{
|
||||
friend class NavMesh;
|
||||
public:
|
||||
|
||||
enum NavMeshAgentSyncFlag
|
||||
{
|
||||
NONE = 0,
|
||||
NODE_TO_AGENT = 1,
|
||||
AGENT_TO_NODE = 2,
|
||||
NODE_AND_NODE = NODE_TO_AGENT | AGENT_TO_NODE,
|
||||
};
|
||||
|
||||
typedef std::function<void(NavMeshAgent *agent, float totalTimeAfterMove)> MoveCallback;
|
||||
|
||||
/**
|
||||
Create agent
|
||||
|
||||
@param param The parameters of agent.
|
||||
*/
|
||||
static NavMeshAgent* create(const NavMeshAgentParam ¶m);
|
||||
static const std::string& getNavMeshAgentComponentName();
|
||||
|
||||
virtual void onEnter() override;
|
||||
virtual void onExit() override;
|
||||
|
||||
/** set agent radius */
|
||||
void setRadius(float radius);
|
||||
|
||||
/** get agent radius */
|
||||
float getRadius() const;
|
||||
|
||||
/** set agent height */
|
||||
void setHeight(float height);
|
||||
|
||||
/** get agent height */
|
||||
float getHeight() const;
|
||||
|
||||
/** set maximal acceleration of agent*/
|
||||
void setMaxAcceleration(float maxAcceleration);
|
||||
|
||||
/** get maximal acceleration of agent*/
|
||||
float getMaxAcceleration() const;
|
||||
|
||||
/** set maximal speed of agent */
|
||||
void setMaxSpeed(float maxSpeed);
|
||||
|
||||
/** get maximal speed of agent */
|
||||
float getMaxSpeed() const;
|
||||
|
||||
/** set separation weight */
|
||||
void setSeparationWeight(float weight);
|
||||
|
||||
/** get separation weight */
|
||||
float getSeparationWeight() const;
|
||||
|
||||
/** set obstacle avoidance type */
|
||||
void setObstacleAvoidanceType(unsigned char type);
|
||||
|
||||
/** get obstacle avoidance type */
|
||||
unsigned char getObstacleAvoidanceType() const;
|
||||
|
||||
/** get current velocity */
|
||||
Vec3 getCurrentVelocity() const;
|
||||
|
||||
/**
|
||||
Move agent to a destination
|
||||
|
||||
@param destination The position in world coordinate system.
|
||||
@param callback Use this function can catch movement state.
|
||||
*/
|
||||
void move(const Vec3 &destination, const MoveCallback &callback = nullptr);
|
||||
|
||||
/** puase movement */
|
||||
void pause();
|
||||
|
||||
/** resume movement */
|
||||
void resume();
|
||||
|
||||
/** stop movement */
|
||||
void stop();
|
||||
|
||||
/**
|
||||
Set the reference axes of agent's orientation
|
||||
|
||||
@param rotRefAxes The value of reference axes in local coordinate system.
|
||||
*/
|
||||
void setOrientationRefAxes(const Vec3 &rotRefAxes);
|
||||
|
||||
/**Set automatic Orientation */
|
||||
void setAutoOrientation(bool isAuto);
|
||||
|
||||
/**Set automatic Traverse OffMeshLink */
|
||||
void setAutoTraverseOffMeshLink(bool isAuto);
|
||||
|
||||
/**Check agent arrived OffMeshLink */
|
||||
bool isOnOffMeshLink();
|
||||
|
||||
/**Traverse OffMeshLink manually*/
|
||||
void completeOffMeshLink();
|
||||
|
||||
/**Get current OffMeshLink information*/
|
||||
OffMeshLinkData getCurrentOffMeshLinkData();
|
||||
|
||||
void setUserData(void *data) { _userData = data; };
|
||||
void* getUserData() const { return _userData; };
|
||||
|
||||
/**
|
||||
* synchronization between node and agent is time consuming, you can skip some synchronization using this function
|
||||
*/
|
||||
void setSyncFlag(const NavMeshAgentSyncFlag &flag) { _syncFlag = flag; }
|
||||
NavMeshAgentSyncFlag getSyncFlag() const { return _syncFlag; }
|
||||
|
||||
/** synchronize parameter to agent. */
|
||||
void syncToAgent();
|
||||
|
||||
/** synchronize parameter to node. */
|
||||
void syncToNode();
|
||||
|
||||
/** get current velocity */
|
||||
Vec3 getVelocity() const;
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
NavMeshAgent();
|
||||
virtual ~NavMeshAgent();
|
||||
|
||||
private:
|
||||
|
||||
bool initWith(const NavMeshAgentParam ¶m);
|
||||
void addTo(dtCrowd *crowed);
|
||||
void removeFrom(dtCrowd *crowed);
|
||||
void setNavMeshQuery(dtNavMeshQuery *query);
|
||||
void preUpdate(float delta);
|
||||
void postUpdate(float delta);
|
||||
static void convertTodtAgentParam(const NavMeshAgentParam &inParam, dtCrowdAgentParams &outParam);
|
||||
|
||||
private:
|
||||
|
||||
MoveCallback _moveCallback;
|
||||
NavMeshAgentParam _param;
|
||||
NavMeshAgentSyncFlag _syncFlag;
|
||||
Vec3 _origination;
|
||||
Vec3 _destination;
|
||||
Vec3 _rotRefAxes;
|
||||
unsigned char _state;
|
||||
bool _needAutoOrientation;
|
||||
int _agentID;
|
||||
bool _needUpdateAgent;
|
||||
bool _needMove;
|
||||
float _totalTimeAfterMove;
|
||||
void *_userData;
|
||||
dtCrowd *_crowd;
|
||||
dtNavMeshQuery *_navMeshQuery;
|
||||
};
|
||||
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
||||
|
||||
#endif // __CCNAV_MESH_AGENT_H__
|
|
@ -0,0 +1,183 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
#include "navmesh/CCNavMeshDebugDraw.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "renderer/CCGLProgramCache.h"
|
||||
#include "renderer/ccGLStateCache.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
#include "renderer/CCRenderState.h"
|
||||
#include "base/CCDirector.h"
|
||||
#include "base/ccMacros.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
NavMeshDebugDraw::NavMeshDebugDraw()
|
||||
: _primitiveType(GL_POINTS)
|
||||
, _dirtyBuffer(true)
|
||||
, _currentPrimitive(nullptr)
|
||||
, _currentDepthMask(true)
|
||||
{
|
||||
_stateBlock = RenderState::StateBlock::create();
|
||||
_stateBlock->setCullFace(true);
|
||||
_stateBlock->setCullFaceSide(RenderState::CullFaceSide::CULL_FACE_SIDE_BACK);
|
||||
_stateBlock->setDepthTest(true);
|
||||
_stateBlock->setBlend(true);
|
||||
_stateBlock->setBlendFunc(BlendFunc::ALPHA_NON_PREMULTIPLIED);
|
||||
CC_SAFE_RETAIN(_stateBlock);
|
||||
|
||||
_customCmd.set3D(true);
|
||||
_customCmd.setTransparent(true);
|
||||
_program = GLProgramCache::getInstance()->getGLProgram(GLProgram::SHADER_NAME_POSITION_COLOR);
|
||||
glGenBuffers(1, &_vbo);
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::vertex(const float x, const float y, const float z, unsigned int color, const float u, const float v)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::vertex(const float* pos, unsigned int color, const float* uv)
|
||||
{
|
||||
vertex(pos[0], pos[1], pos[2], color, uv[0], uv[1]);
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::vertex(const float x, const float y, const float z, unsigned int color)
|
||||
{
|
||||
if (!_currentPrimitive) return;
|
||||
V3F_C4F vertex = { Vec3(x, y, z), getColor(color) };
|
||||
_vertices.push_back(vertex);
|
||||
_dirtyBuffer = true;
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::vertex(const float* pos, unsigned int color)
|
||||
{
|
||||
vertex(pos[0], pos[1], pos[2], color);
|
||||
}
|
||||
|
||||
NavMeshDebugDraw::~NavMeshDebugDraw()
|
||||
{
|
||||
CC_SAFE_RELEASE(_stateBlock);
|
||||
for (auto iter : _primitiveList){
|
||||
delete iter;
|
||||
}
|
||||
glDeleteBuffers(1, &_vbo);
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::depthMask(bool state)
|
||||
{
|
||||
_currentDepthMask = state;
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::begin(duDebugDrawPrimitives prim, float size /*= 1.0f*/)
|
||||
{
|
||||
if (_currentPrimitive) return;
|
||||
_currentPrimitive = new Primitive;
|
||||
_currentPrimitive->type = getPrimitiveType(prim);
|
||||
_currentPrimitive->depthMask = _currentDepthMask;
|
||||
_currentPrimitive->start = _vertices.size();
|
||||
_currentPrimitive->size = size;
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::end()
|
||||
{
|
||||
if (!_currentPrimitive) return;
|
||||
_currentPrimitive->end = _vertices.size();
|
||||
_primitiveList.push_back(_currentPrimitive);
|
||||
_currentPrimitive = nullptr;
|
||||
}
|
||||
|
||||
Vec4 NavMeshDebugDraw::getColor(unsigned int col)
|
||||
{
|
||||
const unsigned int r = col & 0xff;
|
||||
const unsigned int g = (col >> 8) & 0xff;
|
||||
const unsigned int b = (col >> 16) & 0xff;
|
||||
const unsigned int a = (col >> 24) & 0xff;
|
||||
|
||||
float factor = 1.0f / 255.0f;
|
||||
return Vec4(r, g, b, a) * factor;
|
||||
}
|
||||
|
||||
GLenum NavMeshDebugDraw::getPrimitiveType(duDebugDrawPrimitives prim)
|
||||
{
|
||||
switch (prim)
|
||||
{
|
||||
case DU_DRAW_POINTS:
|
||||
return GL_POINTS;
|
||||
case DU_DRAW_LINES:
|
||||
return GL_LINES;
|
||||
case DU_DRAW_TRIS:
|
||||
return GL_TRIANGLES;
|
||||
default:
|
||||
return GL_POINTS;
|
||||
}
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::drawImplement(const cocos2d::Mat4& transform, uint32_t flags)
|
||||
{
|
||||
_program->use();
|
||||
_program->setUniformsForBuiltins(transform);
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, _vbo);
|
||||
GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POSITION | GL::VERTEX_ATTRIB_FLAG_COLOR);
|
||||
glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 3, GL_FLOAT, GL_FALSE, sizeof(V3F_C4F), (GLvoid *)offsetof(V3F_C4F, position));
|
||||
glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(V3F_C4F), (GLvoid *)offsetof(V3F_C4F, color));
|
||||
if (_dirtyBuffer){
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(V3F_C4F)* _vertices.size(), &_vertices[0], GL_STATIC_DRAW);
|
||||
_dirtyBuffer = false;
|
||||
}
|
||||
for (auto &iter : _primitiveList){
|
||||
_stateBlock->setDepthWrite(iter->depthMask);
|
||||
if (iter->type == GL_POINTS){
|
||||
//glPointSize(iter->size);
|
||||
}
|
||||
else if (iter->type == GL_LINES){
|
||||
glLineWidth(iter->size);
|
||||
}
|
||||
_stateBlock->bind();
|
||||
glDrawArrays(iter->type, iter->start, iter->end - iter->start);
|
||||
CC_INCREMENT_GL_DRAWN_BATCHES_AND_VERTICES(1, iter->end - iter->start);
|
||||
}
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::draw(Renderer* renderer)
|
||||
{
|
||||
_customCmd.init(0, Mat4::IDENTITY, Node::FLAGS_RENDER_AS_3D);
|
||||
_customCmd.func = CC_CALLBACK_0(NavMeshDebugDraw::drawImplement, this, Mat4::IDENTITY, 0);
|
||||
renderer->addCommand(&_customCmd);
|
||||
}
|
||||
|
||||
void NavMeshDebugDraw::clear()
|
||||
{
|
||||
_vertices.clear();
|
||||
for (auto iter : _primitiveList){
|
||||
delete iter;
|
||||
}
|
||||
_primitiveList.clear();
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
|
@ -0,0 +1,109 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __CCNAV_MESH_DEBUG_DRAW_H__
|
||||
#define __CCNAV_MESH_DEBUG_DRAW_H__
|
||||
|
||||
#include "base/ccConfig.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "renderer/CCGLProgram.h"
|
||||
#include "renderer/CCCustomCommand.h"
|
||||
#include "renderer/CCRenderState.h"
|
||||
#include "math/Vec3.h"
|
||||
#include "recast/DebugUtils/DebugDraw.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup 3d
|
||||
* @{
|
||||
*/
|
||||
class Renderer;
|
||||
class NavMeshDebugDraw : public duDebugDraw
|
||||
{
|
||||
public:
|
||||
NavMeshDebugDraw();
|
||||
virtual ~NavMeshDebugDraw();
|
||||
|
||||
virtual void depthMask(bool state);
|
||||
virtual void texture(bool state){};
|
||||
virtual void begin(duDebugDrawPrimitives prim, float size = 1.0f) override;
|
||||
|
||||
virtual void vertex(const float* pos, unsigned int color) override;
|
||||
virtual void vertex(const float x, const float y, const float z, unsigned int color) override;
|
||||
|
||||
virtual void vertex(const float* pos, unsigned int color, const float* uv) override;
|
||||
virtual void vertex(const float x, const float y, const float z, unsigned int color, const float u, const float v) override;
|
||||
|
||||
virtual void end() override;
|
||||
|
||||
void draw(Renderer* renderer);
|
||||
|
||||
void clear();
|
||||
|
||||
private:
|
||||
|
||||
GLenum getPrimitiveType(duDebugDrawPrimitives prim);
|
||||
void drawImplement(const cocos2d::Mat4& transform, uint32_t flags);
|
||||
static Vec4 getColor(unsigned int col);
|
||||
|
||||
private:
|
||||
|
||||
struct V3F_C4F
|
||||
{
|
||||
Vec3 position;
|
||||
Vec4 color;
|
||||
};
|
||||
|
||||
struct Primitive
|
||||
{
|
||||
GLenum type;
|
||||
bool depthMask;
|
||||
unsigned short start;
|
||||
unsigned short end;
|
||||
float size;
|
||||
};
|
||||
|
||||
std::vector<V3F_C4F> _vertices;
|
||||
std::vector<Primitive*> _primitiveList;
|
||||
Primitive *_currentPrimitive;
|
||||
GLProgram *_program;
|
||||
CustomCommand _customCmd;
|
||||
RenderState::StateBlock* _stateBlock;
|
||||
GLenum _primitiveType;
|
||||
bool _currentDepthMask;
|
||||
GLuint _vbo;
|
||||
bool _dirtyBuffer;
|
||||
};
|
||||
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
||||
|
||||
#endif // __CCNAV_MESH_DEBUG_DRAW_H__
|
|
@ -0,0 +1,166 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include "navmesh/CCNavMeshObstacle.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "navmesh/CCNavMesh.h"
|
||||
#include "2d/CCNode.h"
|
||||
#include "2d/CCScene.h"
|
||||
#include "recast/DetourTileCache/DetourTileCache.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
NavMeshObstacle* NavMeshObstacle::create(float radius, float height)
|
||||
{
|
||||
auto ref = new (std::nothrow) NavMeshObstacle();
|
||||
if (ref && ref->initWith(radius, height))
|
||||
{
|
||||
ref->autorelease();
|
||||
return ref;
|
||||
}
|
||||
CC_SAFE_DELETE(ref);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const std::string& NavMeshObstacle::getNavMeshObstacleComponentName()
|
||||
{
|
||||
static std::string comName = "___NavMeshObstacleComponent___";
|
||||
return comName;
|
||||
}
|
||||
|
||||
NavMeshObstacle::NavMeshObstacle()
|
||||
: _radius(0.0f)
|
||||
, _height(0.0f)
|
||||
, _tileCache(nullptr)
|
||||
, _obstacleID(-1)
|
||||
, _syncFlag(NODE_AND_NODE)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
cocos2d::NavMeshObstacle::~NavMeshObstacle()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool NavMeshObstacle::initWith(float radius, float height)
|
||||
{
|
||||
_radius = radius;
|
||||
_height = height;
|
||||
setName(getNavMeshObstacleComponentName());
|
||||
return true;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshObstacle::removeFrom(dtTileCache *tileCache)
|
||||
{
|
||||
_tileCache->removeObstacle(_obstacleID);
|
||||
_tileCache = nullptr;
|
||||
_obstacleID = -1;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshObstacle::addTo(dtTileCache *tileCache)
|
||||
{
|
||||
_tileCache = tileCache;
|
||||
Mat4 mat = _owner->getNodeToWorldTransform();
|
||||
_tileCache->addObstacle(&mat.m[12], _radius, _height, &_obstacleID);
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshObstacle::onExit()
|
||||
{
|
||||
if (_obstacleID == -1) return;
|
||||
Component::onExit();
|
||||
auto scene = _owner->getScene();
|
||||
if (scene && scene->getNavMesh()){
|
||||
scene->getNavMesh()->removeNavMeshObstacle(this);
|
||||
}
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshObstacle::onEnter()
|
||||
{
|
||||
if (_obstacleID != -1) return;
|
||||
Component::onEnter();
|
||||
auto scene = _owner->getScene();
|
||||
if (scene && scene->getNavMesh()){
|
||||
scene->getNavMesh()->addNavMeshObstacle(this);
|
||||
}
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshObstacle::postUpdate(float delta)
|
||||
{
|
||||
if ((_syncFlag & OBSTACLE_TO_NODE) != 0)
|
||||
syncToNode();
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshObstacle::preUpdate(float delta)
|
||||
{
|
||||
if ((_syncFlag & NODE_TO_OBSTACLE) != 0)
|
||||
syncToObstacle();
|
||||
}
|
||||
|
||||
void NavMeshObstacle::syncToNode()
|
||||
{
|
||||
if (_tileCache){
|
||||
auto obstacle = _tileCache->getObstacleByRef(_obstacleID);
|
||||
if (obstacle){
|
||||
Vec3 localPos = Vec3(obstacle->pos[0], obstacle->pos[1], obstacle->pos[2]);
|
||||
if (_owner->getParent())
|
||||
_owner->getParent()->getWorldToNodeTransform().transformPoint(localPos, &localPos);
|
||||
_owner->setPosition3D(localPos);
|
||||
_radius = obstacle->radius;
|
||||
_height = obstacle->height;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshObstacle::setRadius(float radius)
|
||||
{
|
||||
_radius = radius;
|
||||
}
|
||||
|
||||
void cocos2d::NavMeshObstacle::setHeight(float height)
|
||||
{
|
||||
_height = height;
|
||||
}
|
||||
|
||||
void NavMeshObstacle::syncToObstacle()
|
||||
{
|
||||
if (_tileCache){
|
||||
auto obstacle = _tileCache->getObstacleByRef(_obstacleID);
|
||||
if (obstacle){
|
||||
Vec3 worldPos = Vec3(obstacle->pos[0], obstacle->pos[1], obstacle->pos[2]);
|
||||
Mat4 mat = _owner->getNodeToWorldTransform();
|
||||
if ((mat.m[12] != obstacle->pos[0] && mat.m[13] != obstacle->pos[1] && mat.m[14] != obstacle->pos[2])
|
||||
|| obstacle->radius != _radius
|
||||
|| obstacle->height != _height){
|
||||
_tileCache->removeObstacle(_obstacleID);
|
||||
_tileCache->addObstacle(&mat.m[12], _radius, _height, &_obstacleID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
|
@ -0,0 +1,123 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __CCNAV_MESH_OBSTACLE_H__
|
||||
#define __CCNAV_MESH_OBSTACLE_H__
|
||||
|
||||
#include "base/ccConfig.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "2d/CCComponent.h"
|
||||
|
||||
#include "base/CCRef.h"
|
||||
#include "math/Vec3.h"
|
||||
#include "recast/Detour/DetourNavMesh.h"
|
||||
#include "recast/DetourTileCache/DetourTileCache.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup 3d
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @brief NavMeshObstacle: The code wrapping of dtTileCacheObstacle, use component mode. */
|
||||
class CC_DLL NavMeshObstacle : public Component
|
||||
{
|
||||
friend class NavMesh;
|
||||
public:
|
||||
|
||||
enum NavMeshObstacleSyncFlag
|
||||
{
|
||||
NONE = 0,
|
||||
NODE_TO_OBSTACLE = 1,
|
||||
OBSTACLE_TO_NODE = 2,
|
||||
NODE_AND_NODE = NODE_TO_OBSTACLE | OBSTACLE_TO_NODE,
|
||||
};
|
||||
|
||||
/**
|
||||
Create obstacle, shape is cylinder
|
||||
|
||||
@param radius The radius of obstacle.
|
||||
@param height The height of obstacle.
|
||||
*/
|
||||
static NavMeshObstacle* create(float radius, float height);
|
||||
static const std::string& getNavMeshObstacleComponentName();
|
||||
|
||||
virtual void onEnter() override;
|
||||
virtual void onExit() override;
|
||||
|
||||
/** Set radius of obstacle */
|
||||
void setRadius(float radius);
|
||||
|
||||
/** Get radius of obstacle */
|
||||
float getRadius() const { return _radius; }
|
||||
|
||||
/** Set height of obstacle */
|
||||
void setHeight(float height);
|
||||
|
||||
/** Get height of obstacle */
|
||||
float getHeight() const { return _height; }
|
||||
|
||||
/**
|
||||
* synchronization between node and obstacle is time consuming, you can skip some synchronization using this function
|
||||
*/
|
||||
void setSyncFlag(const NavMeshObstacleSyncFlag &flag) { _syncFlag = flag; }
|
||||
NavMeshObstacleSyncFlag getSyncFlag() const { return _syncFlag; }
|
||||
|
||||
/** synchronize parameter to obstacle. */
|
||||
void syncToObstacle();
|
||||
|
||||
/** synchronize parameter to node. */
|
||||
void syncToNode();
|
||||
|
||||
CC_CONSTRUCTOR_ACCESS:
|
||||
NavMeshObstacle();
|
||||
virtual ~NavMeshObstacle();
|
||||
|
||||
bool initWith(float radius, float height);
|
||||
|
||||
private:
|
||||
|
||||
void addTo(dtTileCache *tileCache);
|
||||
void removeFrom(dtTileCache *tileCache);
|
||||
void preUpdate(float delta);
|
||||
void postUpdate(float delta);
|
||||
|
||||
private:
|
||||
|
||||
float _radius;
|
||||
float _height;
|
||||
NavMeshObstacleSyncFlag _syncFlag;
|
||||
dtObstacleRef _obstacleID;
|
||||
dtTileCache *_tileCache;
|
||||
};
|
||||
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
||||
|
||||
#endif // __CCNAV_MESH_OBSTACLE_H__
|
|
@ -0,0 +1,289 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
#include "navmesh/CCNavMeshUtils.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "recast/Detour/DetourCommon.h"
|
||||
#include "recast/Detour/DetourNavMeshBuilder.h"
|
||||
#include "recast/fastlz/fastlz.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
LinearAllocator::LinearAllocator(const int cap)
|
||||
: buffer(0)
|
||||
, capacity(0)
|
||||
, top(0)
|
||||
, high(0)
|
||||
{
|
||||
resize(cap);
|
||||
}
|
||||
|
||||
LinearAllocator::~LinearAllocator()
|
||||
{
|
||||
dtFree(buffer);
|
||||
}
|
||||
|
||||
void LinearAllocator::free(void* /*ptr*/)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void* LinearAllocator::alloc(const int size)
|
||||
{
|
||||
if (!buffer)
|
||||
return 0;
|
||||
if (top + size > capacity)
|
||||
return 0;
|
||||
unsigned char* mem = &buffer[top];
|
||||
top += size;
|
||||
return mem;
|
||||
}
|
||||
|
||||
void LinearAllocator::reset()
|
||||
{
|
||||
high = dtMax(high, top);
|
||||
top = 0;
|
||||
}
|
||||
|
||||
void LinearAllocator::resize(const int cap)
|
||||
{
|
||||
if (buffer) dtFree(buffer);
|
||||
buffer = (unsigned char*)dtAlloc(cap, DT_ALLOC_PERM);
|
||||
capacity = cap;
|
||||
}
|
||||
|
||||
int FastLZCompressor::maxCompressedSize(const int bufferSize)
|
||||
{
|
||||
return (int)(bufferSize* 1.05f);
|
||||
}
|
||||
|
||||
dtStatus cocos2d::FastLZCompressor::decompress(const unsigned char* compressed, const int compressedSize
|
||||
, unsigned char* buffer, const int maxBufferSize, int* bufferSize)
|
||||
{
|
||||
*bufferSize = fastlz_decompress(compressed, compressedSize, buffer, maxBufferSize);
|
||||
return *bufferSize < 0 ? DT_FAILURE : DT_SUCCESS;
|
||||
}
|
||||
|
||||
dtStatus cocos2d::FastLZCompressor::compress(const unsigned char* buffer, const int bufferSize
|
||||
, unsigned char* compressed, const int /*maxCompressedSize*/, int* compressedSize)
|
||||
{
|
||||
*compressedSize = fastlz_compress((const void *const)buffer, bufferSize, compressed);
|
||||
return DT_SUCCESS;
|
||||
}
|
||||
|
||||
MeshProcess::MeshProcess(const GeomData *geom)
|
||||
: data(geom)
|
||||
{
|
||||
}
|
||||
|
||||
MeshProcess::~MeshProcess()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MeshProcess::process(struct dtNavMeshCreateParams* params
|
||||
, unsigned char* polyAreas, unsigned short* polyFlags)
|
||||
{
|
||||
// Update poly flags from areas.
|
||||
for (int i = 0; i < params->polyCount; ++i)
|
||||
{
|
||||
if (polyAreas[i] == DT_TILECACHE_WALKABLE_AREA)
|
||||
polyAreas[i] = 0;
|
||||
|
||||
if (polyAreas[i] == 0)
|
||||
polyFlags[i] = 1;
|
||||
|
||||
//if (polyAreas[i] == SAMPLE_POLYAREA_GROUND ||
|
||||
// polyAreas[i] == SAMPLE_POLYAREA_GRASS ||
|
||||
// polyAreas[i] == SAMPLE_POLYAREA_ROAD)
|
||||
//{
|
||||
// polyFlags[i] = SAMPLE_POLYFLAGS_WALK;
|
||||
//}
|
||||
//else if (polyAreas[i] == SAMPLE_POLYAREA_WATER)
|
||||
//{
|
||||
// polyFlags[i] = SAMPLE_POLYFLAGS_SWIM;
|
||||
//}
|
||||
//else if (polyAreas[i] == SAMPLE_POLYAREA_DOOR)
|
||||
//{
|
||||
// polyFlags[i] = SAMPLE_POLYFLAGS_WALK | SAMPLE_POLYFLAGS_DOOR;
|
||||
//}
|
||||
}
|
||||
|
||||
// Pass in off-mesh connections.
|
||||
params->offMeshConVerts = data->offMeshConVerts;
|
||||
params->offMeshConRad = data->offMeshConRads;
|
||||
params->offMeshConDir = data->offMeshConDirs;
|
||||
params->offMeshConAreas = data->offMeshConAreas;
|
||||
params->offMeshConFlags = data->offMeshConFlags;
|
||||
params->offMeshConUserID = data->offMeshConId;
|
||||
params->offMeshConCount = data->offMeshConCount;
|
||||
}
|
||||
|
||||
bool getSteerTarget(dtNavMeshQuery* navQuery, const float* startPos, const float* endPos, const float minTargetDist, const dtPolyRef* path, const int pathSize, float* steerPos, unsigned char& steerPosFlag, dtPolyRef& steerPosRef, float* outPoints /*= 0*/, int* outPointCount /*= 0*/)
|
||||
{
|
||||
// Find steer target.
|
||||
static const int MAX_STEER_POINTS = 3;
|
||||
float steerPath[MAX_STEER_POINTS * 3];
|
||||
unsigned char steerPathFlags[MAX_STEER_POINTS];
|
||||
dtPolyRef steerPathPolys[MAX_STEER_POINTS];
|
||||
int nsteerPath = 0;
|
||||
navQuery->findStraightPath(startPos, endPos, path, pathSize,
|
||||
steerPath, steerPathFlags, steerPathPolys, &nsteerPath, MAX_STEER_POINTS);
|
||||
if (!nsteerPath)
|
||||
return false;
|
||||
|
||||
if (outPoints && outPointCount)
|
||||
{
|
||||
*outPointCount = nsteerPath;
|
||||
for (int i = 0; i < nsteerPath; ++i)
|
||||
dtVcopy(&outPoints[i * 3], &steerPath[i * 3]);
|
||||
}
|
||||
|
||||
|
||||
// Find vertex far enough to steer to.
|
||||
int ns = 0;
|
||||
while (ns < nsteerPath)
|
||||
{
|
||||
// Stop at Off-Mesh link or when point is further than slop away.
|
||||
if ((steerPathFlags[ns] & DT_STRAIGHTPATH_OFFMESH_CONNECTION) ||
|
||||
!inRange(&steerPath[ns * 3], startPos, minTargetDist, 1000.0f))
|
||||
break;
|
||||
ns++;
|
||||
}
|
||||
// Failed to find good point to steer to.
|
||||
if (ns >= nsteerPath)
|
||||
return false;
|
||||
|
||||
dtVcopy(steerPos, &steerPath[ns * 3]);
|
||||
steerPos[1] = startPos[1];
|
||||
steerPosFlag = steerPathFlags[ns];
|
||||
steerPosRef = steerPathPolys[ns];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int fixupShortcuts(dtPolyRef* path, int npath, dtNavMeshQuery* navQuery)
|
||||
{
|
||||
if (npath < 3)
|
||||
return npath;
|
||||
|
||||
// Get connected polygons
|
||||
static const int maxNeis = 16;
|
||||
dtPolyRef neis[maxNeis];
|
||||
int nneis = 0;
|
||||
|
||||
const dtMeshTile* tile = 0;
|
||||
const dtPoly* poly = 0;
|
||||
if (dtStatusFailed(navQuery->getAttachedNavMesh()->getTileAndPolyByRef(path[0], &tile, &poly)))
|
||||
return npath;
|
||||
|
||||
for (unsigned int k = poly->firstLink; k != DT_NULL_LINK; k = tile->links[k].next)
|
||||
{
|
||||
const dtLink* link = &tile->links[k];
|
||||
if (link->ref != 0)
|
||||
{
|
||||
if (nneis < maxNeis)
|
||||
neis[nneis++] = link->ref;
|
||||
}
|
||||
}
|
||||
|
||||
// If any of the neighbour polygons is within the next few polygons
|
||||
// in the path, short cut to that polygon directly.
|
||||
static const int maxLookAhead = 6;
|
||||
int cut = 0;
|
||||
for (int i = dtMin(maxLookAhead, npath) - 1; i > 1 && cut == 0; i--) {
|
||||
for (int j = 0; j < nneis; j++)
|
||||
{
|
||||
if (path[i] == neis[j]) {
|
||||
cut = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cut > 1)
|
||||
{
|
||||
int offset = cut - 1;
|
||||
npath -= offset;
|
||||
for (int i = 1; i < npath; i++)
|
||||
path[i] = path[i + offset];
|
||||
}
|
||||
|
||||
return npath;
|
||||
}
|
||||
|
||||
int fixupCorridor(dtPolyRef* path, const int npath, const int maxPath, const dtPolyRef* visited, const int nvisited)
|
||||
{
|
||||
int furthestPath = -1;
|
||||
int furthestVisited = -1;
|
||||
|
||||
// Find furthest common polygon.
|
||||
for (int i = npath - 1; i >= 0; --i)
|
||||
{
|
||||
bool found = false;
|
||||
for (int j = nvisited - 1; j >= 0; --j)
|
||||
{
|
||||
if (path[i] == visited[j])
|
||||
{
|
||||
furthestPath = i;
|
||||
furthestVisited = j;
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
if (found)
|
||||
break;
|
||||
}
|
||||
|
||||
// If no intersection found just return current path.
|
||||
if (furthestPath == -1 || furthestVisited == -1)
|
||||
return npath;
|
||||
|
||||
// Concatenate paths.
|
||||
|
||||
// Adjust beginning of the buffer to include the visited.
|
||||
const int req = nvisited - furthestVisited;
|
||||
const int orig = dtMin(furthestPath + 1, npath);
|
||||
int size = dtMax(0, npath - orig);
|
||||
if (req + size > maxPath)
|
||||
size = maxPath - req;
|
||||
if (size)
|
||||
memmove(path + req, path + orig, size*sizeof(dtPolyRef));
|
||||
|
||||
// Store visited
|
||||
for (int i = 0; i < req; ++i)
|
||||
path[i] = visited[(nvisited - 1) - i];
|
||||
|
||||
return req + size;
|
||||
}
|
||||
|
||||
bool inRange(const float* v1, const float* v2, const float r, const float h)
|
||||
{
|
||||
const float dx = v2[0] - v1[0];
|
||||
const float dy = v2[1] - v1[1];
|
||||
const float dz = v2[2] - v1[2];
|
||||
return (dx*dx + dz*dz) < r*r && fabsf(dy) < h;
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
|
@ -0,0 +1,135 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2015 Chukong Technologies Inc.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __CCNAV_MESH_TOOL_H__
|
||||
#define __CCNAV_MESH_TOOL_H__
|
||||
|
||||
#include "base/ccConfig.h"
|
||||
#if CC_USE_NAVMESH
|
||||
|
||||
#include "platform/CCPlatformMacros.h"
|
||||
#include "math/CCMath.h"
|
||||
|
||||
#include "recast/Detour/DetourCommon.h"
|
||||
#include "recast/Detour/DetourNavMesh.h"
|
||||
#include "recast/Detour/DetourNavMeshQuery.h"
|
||||
#include "recast/DetourTileCache/DetourTileCache.h"
|
||||
#include "recast/DetourTileCache/DetourTileCacheBuilder.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup 3d
|
||||
* @{
|
||||
*/
|
||||
|
||||
struct LinearAllocator : public dtTileCacheAlloc
|
||||
{
|
||||
unsigned char* buffer;
|
||||
int capacity;
|
||||
int top;
|
||||
int high;
|
||||
|
||||
LinearAllocator(const int cap);
|
||||
|
||||
~LinearAllocator();
|
||||
|
||||
void resize(const int cap);
|
||||
|
||||
virtual void reset();
|
||||
|
||||
virtual void* alloc(const int size);
|
||||
|
||||
virtual void free(void* /*ptr*/);
|
||||
};
|
||||
|
||||
struct FastLZCompressor : public dtTileCacheCompressor
|
||||
{
|
||||
virtual int maxCompressedSize(const int bufferSize);
|
||||
|
||||
virtual dtStatus compress(const unsigned char* buffer, const int bufferSize,
|
||||
unsigned char* compressed, const int /*maxCompressedSize*/, int* compressedSize);
|
||||
|
||||
virtual dtStatus decompress(const unsigned char* compressed, const int compressedSize,
|
||||
unsigned char* buffer, const int maxBufferSize, int* bufferSize);
|
||||
};
|
||||
|
||||
struct GeomData
|
||||
{
|
||||
static const int MAX_OFFMESH_CONNECTIONS = 256;
|
||||
float offMeshConVerts[MAX_OFFMESH_CONNECTIONS * 3 * 2];
|
||||
float offMeshConRads[MAX_OFFMESH_CONNECTIONS];
|
||||
unsigned char offMeshConDirs[MAX_OFFMESH_CONNECTIONS];
|
||||
unsigned char offMeshConAreas[MAX_OFFMESH_CONNECTIONS];
|
||||
unsigned short offMeshConFlags[MAX_OFFMESH_CONNECTIONS];
|
||||
unsigned int offMeshConId[MAX_OFFMESH_CONNECTIONS];
|
||||
int offMeshConCount;
|
||||
};
|
||||
|
||||
struct MeshProcess : public dtTileCacheMeshProcess
|
||||
{
|
||||
const GeomData *data;
|
||||
|
||||
MeshProcess(const GeomData *geom);
|
||||
virtual ~MeshProcess();
|
||||
|
||||
//void init(InputGeom* geom)
|
||||
//{
|
||||
// m_geom = geom;
|
||||
//}
|
||||
|
||||
virtual void process(struct dtNavMeshCreateParams* params,
|
||||
unsigned char* polyAreas, unsigned short* polyFlags) override;
|
||||
};
|
||||
|
||||
bool inRange(const float* v1, const float* v2, const float r, const float h);
|
||||
|
||||
int fixupCorridor(dtPolyRef* path, const int npath, const int maxPath,
|
||||
const dtPolyRef* visited, const int nvisited);
|
||||
|
||||
// This function checks if the path has a small U-turn, that is,
|
||||
// a polygon further in the path is adjacent to the first polygon
|
||||
// in the path. If that happens, a shortcut is taken.
|
||||
// This can happen if the target (T) location is at tile boundary,
|
||||
// and we're (S) approaching it parallel to the tile edge.
|
||||
// The choice at the vertex can be arbitrary,
|
||||
// +---+---+
|
||||
// |:::|:::|
|
||||
// +-S-+-T-+
|
||||
// |:::| | <-- the step can end up in here, resulting U-turn path.
|
||||
// +---+---+
|
||||
int fixupShortcuts(dtPolyRef* path, int npath, dtNavMeshQuery* navQuery);
|
||||
|
||||
bool getSteerTarget(dtNavMeshQuery* navQuery, const float* startPos, const float* endPos,
|
||||
const float minTargetDist,
|
||||
const dtPolyRef* path, const int pathSize,
|
||||
float* steerPos, unsigned char& steerPosFlag, dtPolyRef& steerPosRef,
|
||||
float* outPoints = 0, int* outPointCount = 0);
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif //CC_USE_NAVMESH
|
||||
|
||||
#endif // __CCNAV_MESH_H__
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
set(COCOS_NAVMESH_SRC
|
||||
|
||||
navmesh/CCNavMesh.cpp
|
||||
navmesh/CCNavMeshAgent.cpp
|
||||
navmesh/CCNavMeshDebugDraw.cpp
|
||||
navmesh/CCNavMeshObstacle.cpp
|
||||
navmesh/CCNavMeshUtils.cpp
|
||||
)
|
|
@ -36,7 +36,7 @@
|
|||
#include "network/HttpCookie.h"
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup network
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include "base/ccMacros.h"
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup network
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "network/HttpRequest.h"
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup network
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ in the onClose method the pointer should be set to NULL or used to connect to a
|
|||
#include <string>
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup network
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ struct libwebsocket_context;
|
|||
struct libwebsocket_protocols;
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup network
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -48,7 +48,9 @@ typedef Vec2 Vect;
|
|||
const PhysicsMaterial PHYSICSBODY_MATERIAL_DEFAULT(0.1f, 0.5f, 0.5f);
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup physics
|
||||
* @{
|
||||
* @addtogroup physics_2d
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
@ -560,6 +562,8 @@ protected:
|
|||
};
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
||||
|
||||
|
||||
NS_CC_END
|
||||
|
||||
|
|
|
@ -55,7 +55,9 @@ typedef struct CC_DLL PhysicsContactData
|
|||
}PhysicsContactData;
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup physics
|
||||
* @{
|
||||
* @addtogroup physics_2d
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
@ -307,6 +309,7 @@ protected:
|
|||
virtual ~EventListenerPhysicsContactWithGroup();
|
||||
};
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -35,7 +35,9 @@
|
|||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup physics
|
||||
* @{
|
||||
* @addtogroup physics_2d
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
@ -108,6 +110,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -40,7 +40,9 @@ class PhysicsBody;
|
|||
class PhysicsWorld;
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup physics
|
||||
* @{
|
||||
* @addtogroup physics_2d
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
@ -567,6 +569,8 @@ protected:
|
|||
};
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
||||
|
||||
|
||||
NS_CC_END
|
||||
|
||||
|
|
|
@ -59,8 +59,11 @@ typedef struct CC_DLL PhysicsMaterial
|
|||
const PhysicsMaterial PHYSICSSHAPE_MATERIAL_DEFAULT;
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup physics
|
||||
* @{
|
||||
* @addtogroup physics_2d
|
||||
* @{
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -718,6 +721,7 @@ protected:
|
|||
friend class PhysicsBody;
|
||||
};
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -80,7 +80,9 @@ typedef std::function<bool(PhysicsWorld&, PhysicsShape&, void*)> PhysicsQueryRec
|
|||
typedef PhysicsQueryRectCallbackFunc PhysicsQueryPointCallbackFunc;
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup physics
|
||||
* @{
|
||||
* @addtogroup physics_2d
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
@ -415,6 +417,8 @@ protected:
|
|||
extern const float CC_DLL PHYSICS_INFINITY;
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#endif // CC_USE_PHYSICS
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "base/CCDirector.h"
|
||||
#include "renderer/CCGLProgram.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
#include "renderer/CCRenderState.h"
|
||||
#include "renderer/ccGLStateCache.h"
|
||||
#include "renderer/CCGLProgramCache.h"
|
||||
|
||||
|
@ -131,6 +132,8 @@ void Physics3DDebugDrawer::drawImplementation( const Mat4 &transform, uint32_t f
|
|||
_program->use();
|
||||
_program->setUniformsForBuiltins(transform);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
RenderState::StateBlock::_defaultState->setDepthTest(true);
|
||||
|
||||
GL::blendFunc(_blendFunc.src, _blendFunc.dst);
|
||||
|
||||
if (_dirty)
|
||||
|
@ -158,7 +161,9 @@ void Physics3DDebugDrawer::drawImplementation( const Mat4 &transform, uint32_t f
|
|||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
|
||||
CC_INCREMENT_GL_DRAWN_BATCHES_AND_VERTICES(1,_bufferCount);
|
||||
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
RenderState::StateBlock::_defaultState->setDepthTest(false);
|
||||
}
|
||||
|
||||
void Physics3DDebugDrawer::init()
|
||||
|
|
|
@ -33,7 +33,7 @@ THE SOFTWARE.
|
|||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup platform
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ NS_CC_BEGIN
|
|||
struct FontDefinition;
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup platform
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ THE SOFTWARE.
|
|||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup platform
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ struct GLContextAttrs
|
|||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup core
|
||||
* @addtogroup platform
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
|
|
|
@ -12,6 +12,7 @@ android {
|
|||
}
|
||||
|
||||
sourceSets.main {
|
||||
aidl.srcDir "../java/src"
|
||||
java.srcDirs = ['../java/src','../ControllerManualAdapter/src']
|
||||
manifest.srcFile "AndroidManifest.xml"
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ android {
|
|||
}
|
||||
|
||||
sourceSets.main {
|
||||
aidl.srcDir "../java/src"
|
||||
java.srcDir "../java/src"
|
||||
manifest.srcFile "AndroidManifest.xml"
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include "renderer/CCRenderCommand.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "renderer/CCRenderCommand.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ THE SOFTWARE.
|
|||
#include "math/CCMath.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ THE SOFTWARE.
|
|||
#include "base/CCRef.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ THE SOFTWARE.
|
|||
#include "math/Vec4.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ THE SOFTWARE.
|
|||
#include "math/Vec4.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#include "CCRenderCommand.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include "renderer/CCVertexIndexData.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "renderer/CCRenderCommand.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "renderer/CCGLProgramState.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include "base/ccTypes.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -37,25 +37,6 @@ NS_CC_BEGIN
|
|||
|
||||
RenderState::StateBlock* RenderState::StateBlock::_defaultState = nullptr;
|
||||
|
||||
// Render state override bits
|
||||
enum
|
||||
{
|
||||
RS_BLEND = (1 << 0),
|
||||
RS_BLEND_FUNC = (1 << 1),
|
||||
RS_CULL_FACE = (1 << 2),
|
||||
RS_DEPTH_TEST = (1 << 3),
|
||||
RS_DEPTH_WRITE = (1 << 4),
|
||||
RS_DEPTH_FUNC = (1 << 5),
|
||||
RS_CULL_FACE_SIDE = (1 << 6),
|
||||
RS_STENCIL_TEST = (1 << 7),
|
||||
RS_STENCIL_WRITE = (1 << 8),
|
||||
RS_STENCIL_FUNC = (1 << 9),
|
||||
RS_STENCIL_OP = (1 << 10),
|
||||
RS_FRONT_FACE = (1 << 11),
|
||||
|
||||
RS_ALL_ONES = 0xFFFFFFFF,
|
||||
};
|
||||
|
||||
|
||||
RenderState::RenderState()
|
||||
: _texture(nullptr)
|
||||
|
@ -731,6 +712,14 @@ uint32_t RenderState::StateBlock::getHash() const
|
|||
return 0x12345678;
|
||||
}
|
||||
|
||||
void RenderState::StateBlock::invalidate(long stateBits)
|
||||
{
|
||||
CCASSERT(_defaultState, "_default state not created yet. Cannot be invalidated");
|
||||
|
||||
_defaultState->_bits = stateBits;
|
||||
_defaultState->restore(0);
|
||||
}
|
||||
|
||||
void RenderState::StateBlock::setBlend(bool enabled)
|
||||
{
|
||||
_blendEnabled = enabled;
|
||||
|
|
|
@ -188,7 +188,7 @@ public:
|
|||
* Defines a block of fixed-function render states that can be applied to a
|
||||
* RenderState object.
|
||||
*/
|
||||
class StateBlock : public Ref
|
||||
class CC_DLL StateBlock : public Ref
|
||||
{
|
||||
friend class RenderState;
|
||||
friend class Pass;
|
||||
|
@ -349,6 +349,37 @@ public:
|
|||
uint32_t getHash() const;
|
||||
bool isDirty() const;
|
||||
|
||||
/** StateBlock bits to be used with invalidate */
|
||||
enum
|
||||
{
|
||||
RS_BLEND = (1 << 0),
|
||||
RS_BLEND_FUNC = (1 << 1),
|
||||
RS_CULL_FACE = (1 << 2),
|
||||
RS_DEPTH_TEST = (1 << 3),
|
||||
RS_DEPTH_WRITE = (1 << 4),
|
||||
RS_DEPTH_FUNC = (1 << 5),
|
||||
RS_CULL_FACE_SIDE = (1 << 6),
|
||||
RS_STENCIL_TEST = (1 << 7),
|
||||
RS_STENCIL_WRITE = (1 << 8),
|
||||
RS_STENCIL_FUNC = (1 << 9),
|
||||
RS_STENCIL_OP = (1 << 10),
|
||||
RS_FRONT_FACE = (1 << 11),
|
||||
|
||||
RS_ALL_ONES = 0xFFFFFFFF,
|
||||
};
|
||||
|
||||
/**
|
||||
* Invalidates the default StateBlock.
|
||||
*
|
||||
* Only call it if you are calling GL calls directly. Invoke this function
|
||||
* at the end of your custom draw call.
|
||||
* This function restores the default render state its defaults values.
|
||||
* Since this function might call GL calls, it must be called in a GL context is present.
|
||||
*
|
||||
* @param stateBits Bitwise-OR of the states that needs to be invalidated
|
||||
*/
|
||||
static void invalidate(long stateBits);
|
||||
|
||||
static StateBlock* _defaultState;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#include "platform/CCGL.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "renderer/CCGLProgramState.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#include "platform/CCGL.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include <map>
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ THE SOFTWARE.
|
|||
NS_CC_BEGIN
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ THE SOFTWARE.
|
|||
#include "platform/CCPlatformMacros.h"
|
||||
|
||||
/**
|
||||
* @addtogroup support
|
||||
* @addtogroup renderer
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -2025,6 +2025,16 @@ renderer
|
|||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* @method stepPhysicsAndNavigation
|
||||
* @param {float} arg0
|
||||
*/
|
||||
stepPhysicsAndNavigation : function (
|
||||
float
|
||||
)
|
||||
{
|
||||
},
|
||||
|
||||
/**
|
||||
* @method onProjectionChanged
|
||||
* @param {cc.EventCustom} arg0
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "base/ccConfig.h"
|
||||
#ifndef __cocos2dx_3d_h__
|
||||
#define __cocos2dx_3d_h__
|
||||
|
||||
|
@ -241,5 +242,5 @@ bool js_cocos2dx_3d_Bundle3D_createBundle(JSContext *cx, uint32_t argc, jsval *v
|
|||
bool js_cocos2dx_3d_Bundle3D_destroyBundle(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_3d_Bundle3D_loadObj(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_3d_Bundle3D_Bundle3D(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_3d_h__
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "base/ccConfig.h"
|
||||
#ifndef __cocos2dx_3d_extension_h__
|
||||
#define __cocos2dx_3d_extension_h__
|
||||
|
||||
|
@ -70,5 +71,5 @@ bool js_cocos2dx_3d_extension_PUParticleSystem3D_removeAllListener(JSContext *cx
|
|||
bool js_cocos2dx_3d_extension_PUParticleSystem3D_setDefaultDepth(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_3d_extension_PUParticleSystem3D_create(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_3d_extension_PUParticleSystem3D_PUParticleSystem3D(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_3d_extension_h__
|
||||
|
|
|
@ -5205,6 +5205,26 @@ bool js_cocos2dx_Scene_render(JSContext *cx, uint32_t argc, jsval *vp)
|
|||
JS_ReportError(cx, "js_cocos2dx_Scene_render : wrong number of arguments: %d, was expecting %d", argc, 1);
|
||||
return false;
|
||||
}
|
||||
bool js_cocos2dx_Scene_stepPhysicsAndNavigation(JSContext *cx, uint32_t argc, jsval *vp)
|
||||
{
|
||||
JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
|
||||
bool ok = true;
|
||||
JS::RootedObject obj(cx, args.thisv().toObjectOrNull());
|
||||
js_proxy_t *proxy = jsb_get_js_proxy(obj);
|
||||
cocos2d::Scene* cobj = (cocos2d::Scene *)(proxy ? proxy->ptr : NULL);
|
||||
JSB_PRECONDITION2( cobj, cx, false, "js_cocos2dx_Scene_stepPhysicsAndNavigation : Invalid Native Object");
|
||||
if (argc == 1) {
|
||||
double arg0;
|
||||
ok &= JS::ToNumber( cx, args.get(0), &arg0) && !isnan(arg0);
|
||||
JSB_PRECONDITION2(ok, cx, false, "js_cocos2dx_Scene_stepPhysicsAndNavigation : Error processing arguments");
|
||||
cobj->stepPhysicsAndNavigation(arg0);
|
||||
args.rval().setUndefined();
|
||||
return true;
|
||||
}
|
||||
|
||||
JS_ReportError(cx, "js_cocos2dx_Scene_stepPhysicsAndNavigation : wrong number of arguments: %d, was expecting %d", argc, 1);
|
||||
return false;
|
||||
}
|
||||
bool js_cocos2dx_Scene_onProjectionChanged(JSContext *cx, uint32_t argc, jsval *vp)
|
||||
{
|
||||
JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
|
||||
|
@ -5399,6 +5419,7 @@ void js_register_cocos2dx_Scene(JSContext *cx, JS::HandleObject global) {
|
|||
static JSFunctionSpec funcs[] = {
|
||||
JS_FN("setCameraOrderDirty", js_cocos2dx_Scene_setCameraOrderDirty, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
|
||||
JS_FN("render", js_cocos2dx_Scene_render, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
|
||||
JS_FN("stepPhysicsAndNavigation", js_cocos2dx_Scene_stepPhysicsAndNavigation, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
|
||||
JS_FN("onProjectionChanged", js_cocos2dx_Scene_onProjectionChanged, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
|
||||
JS_FN("initWithSize", js_cocos2dx_Scene_initWithSize, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
|
||||
JS_FN("getDefaultCamera", js_cocos2dx_Scene_getDefaultCamera, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "base/ccConfig.h"
|
||||
#ifndef __cocos2dx_h__
|
||||
#define __cocos2dx_h__
|
||||
|
||||
|
@ -251,6 +252,7 @@ void js_register_cocos2dx_Scene(JSContext *cx, JS::HandleObject global);
|
|||
void register_all_cocos2dx(JSContext* cx, JS::HandleObject obj);
|
||||
bool js_cocos2dx_Scene_setCameraOrderDirty(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_Scene_render(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_Scene_stepPhysicsAndNavigation(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_Scene_onProjectionChanged(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_Scene_initWithSize(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_Scene_getDefaultCamera(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
|
@ -3994,5 +3996,5 @@ bool js_cocos2dx_SpritePolygonCache_removeSpritePolygonCache(JSContext *cx, uint
|
|||
bool js_cocos2dx_SpritePolygonCache_destroyInstance(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_SpritePolygonCache_printInfo(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_SpritePolygonCache_getInstance(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_h__
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "base/ccConfig.h"
|
||||
#ifndef __cocos2dx_builder_h__
|
||||
#define __cocos2dx_builder_h__
|
||||
|
||||
|
@ -78,5 +79,5 @@ bool js_cocos2dx_builder_CCBReader_getAnimationManagersForNodes(JSContext *cx, u
|
|||
bool js_cocos2dx_builder_CCBReader_getNodesWithAnimationManagers(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_builder_CCBReader_setResolutionScale(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_builder_CCBReader_CCBReader(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_builder_h__
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "base/ccConfig.h"
|
||||
#ifndef __cocos2dx_experimental_h__
|
||||
#define __cocos2dx_experimental_h__
|
||||
|
||||
|
@ -20,5 +21,5 @@ bool js_cocos2dx_experimental_SpritePolygon_getArea(JSContext *cx, uint32_t argc
|
|||
bool js_cocos2dx_experimental_SpritePolygon_initWithMarching(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_experimental_SpritePolygon_getVertCount(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_experimental_SpritePolygon_getTrianglesCount(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_experimental_h__
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "jsb_cocos2dx_experimental_video_auto.hpp"
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
||||
#include "cocos2d_specifics.hpp"
|
||||
#include "UIVideoPlayer.h"
|
||||
|
||||
|
@ -453,3 +454,4 @@ void register_all_cocos2dx_experimental_video(JSContext* cx, JS::HandleObject ob
|
|||
js_register_cocos2dx_experimental_video_VideoPlayer(cx, ns);
|
||||
}
|
||||
|
||||
#endif //#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include "base/ccConfig.h"
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
||||
#ifndef __cocos2dx_experimental_video_h__
|
||||
#define __cocos2dx_experimental_video_h__
|
||||
|
||||
|
@ -29,5 +31,6 @@ bool js_cocos2dx_experimental_video_VideoPlayer_isPlaying(JSContext *cx, uint32_
|
|||
bool js_cocos2dx_experimental_video_VideoPlayer_seekTo(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_experimental_video_VideoPlayer_create(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_experimental_video_VideoPlayer_VideoPlayer(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_experimental_video_h__
|
||||
#endif //#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "jsb_cocos2dx_experimental_webView_auto.hpp"
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
||||
#include "cocos2d_specifics.hpp"
|
||||
#include "UIWebView.h"
|
||||
|
||||
|
@ -482,3 +483,4 @@ void register_all_cocos2dx_experimental_webView(JSContext* cx, JS::HandleObject
|
|||
js_register_cocos2dx_experimental_webView_WebView(cx, ns);
|
||||
}
|
||||
|
||||
#endif //#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include "base/ccConfig.h"
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
||||
#ifndef __cocos2dx_experimental_webView_h__
|
||||
#define __cocos2dx_experimental_webView_h__
|
||||
|
||||
|
@ -30,5 +32,6 @@ bool js_cocos2dx_experimental_webView_WebView_setJavascriptInterfaceScheme(JSCon
|
|||
bool js_cocos2dx_experimental_webView_WebView_getOnDidFinishLoading(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_experimental_webView_WebView_create(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_experimental_webView_WebView_WebView(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_experimental_webView_h__
|
||||
#endif //#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "base/ccConfig.h"
|
||||
#ifndef __cocos2dx_extension_h__
|
||||
#define __cocos2dx_extension_h__
|
||||
|
||||
|
@ -368,5 +369,5 @@ void register_all_cocos2dx_extension(JSContext* cx, JS::HandleObject obj);
|
|||
bool js_cocos2dx_extension_EventListenerAssetsManagerEx_init(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_extension_EventListenerAssetsManagerEx_create(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_extension_EventListenerAssetsManagerEx_EventListenerAssetsManagerEx(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_extension_h__
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "jsb_cocos2dx_physics3d_auto.hpp"
|
||||
#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
#include "cocos2d_specifics.hpp"
|
||||
#include "CCPhysics3D.h"
|
||||
|
||||
|
@ -6796,3 +6797,4 @@ void register_all_cocos2dx_physics3d(JSContext* cx, JS::HandleObject obj) {
|
|||
js_register_cocos2dx_physics3d_Physics3DShape(cx, ns);
|
||||
}
|
||||
|
||||
#endif //#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include "base/ccConfig.h"
|
||||
#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
#ifndef __cocos2dx_physics3d_h__
|
||||
#define __cocos2dx_physics3d_h__
|
||||
|
||||
|
@ -341,5 +343,6 @@ bool js_cocos2dx_physics3d_Physics3D6DofConstraint_getAngularLowerLimit(JSContex
|
|||
bool js_cocos2dx_physics3d_Physics3D6DofConstraint_setAngularUpperLimit(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_physics3d_Physics3D6DofConstraint_create(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_physics3d_Physics3D6DofConstraint_Physics3D6DofConstraint(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_physics3d_h__
|
||||
#endif //#if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "base/ccConfig.h"
|
||||
#ifndef __cocos2dx_spine_h__
|
||||
#define __cocos2dx_spine_h__
|
||||
|
||||
|
@ -61,5 +62,5 @@ bool js_cocos2dx_spine_SkeletonAnimation_clearTrack(JSContext *cx, uint32_t argc
|
|||
bool js_cocos2dx_spine_SkeletonAnimation_onAnimationStateEvent(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_spine_SkeletonAnimation_createWithFile(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_spine_SkeletonAnimation_SkeletonAnimation(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_spine_h__
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "base/ccConfig.h"
|
||||
#ifndef __cocos2dx_studio_h__
|
||||
#define __cocos2dx_studio_h__
|
||||
|
||||
|
@ -754,5 +755,5 @@ bool js_cocos2dx_studio_ObjectExtensionData_getCustomProperty(JSContext *cx, uin
|
|||
bool js_cocos2dx_studio_ObjectExtensionData_getActionTag(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_studio_ObjectExtensionData_create(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
bool js_cocos2dx_studio_ObjectExtensionData_ObjectExtensionData(JSContext *cx, uint32_t argc, jsval *vp);
|
||||
#endif
|
||||
|
||||
#endif // __cocos2dx_studio_h__
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue