Commit graph

68 commits

Author SHA1 Message Date
marauder2k7 30b9502e90 navmesh
cache tiles data if keep intermediate is on
(we only need to cache the results of recast)

fix tile generation (again)

Add !m_geo check so that buildTile can regen the geometry needed to build the tile again.
2025-07-23 21:02:44 +01:00
marauder2k7 1f21efc9e8 Update tileTool.cpp
fix linux
2025-07-23 16:05:15 +01:00
marauder2k7 80473e10b5 added first tool
Added the tileTool with the ability to select tiles
Abstraction layer for navmesh tools created.
2025-07-23 15:08:29 +01:00
marauder2k7 ab83ecb591 make sure tilesize is in world units
tilesize now stays the same size as the world units provided
2025-07-23 05:55:05 +01:00
marauder2k7 d4d552e8e0 recast update
Added chunkytrimesh - this class splits up the geometry the navmesh is interested in into kdtree for fast traversal, makes the actual navmesh generation work with smaller chunks.

Now only 1 RecastPolylist per navmesh this can be saved out in a future commit.

This is a history commit, all functionality works same as it did before but it matches recasts recommended setup more closely. Future additions may break backwards compatibility.
2025-07-22 14:39:36 +01:00
marauder2k7 26ebdd093b test commit to fix debug draw
pass all draws through duDebugDraw instead of calling our class directly.
2025-07-20 16:10:27 +01:00
AzaezelX 9e2666ed09 nav editor compliance 2025-04-28 14:35:26 -05:00
AzaezelX 32d95d3b8b put AIPlayer support back, and it as the default class to spawn 2025-04-20 15:29:26 -05:00
AzaezelX 3210325f3f elevated mAicontroller to shapebase
aiwheeleedveiclecontrollerdata resolvespeed now only touches throttle
objects assigned aicontrollers now reflect that by thier objecttype
basic flocking
2025-04-19 04:25:36 -05:00
AzaezelX f84bf058c9 navigation: setPathdestination now takes a replace bool to preserve the goal
also killed a few now extraneous  clearfollow calls
2025-04-17 17:51:31 -05:00
AzaezelX 4fb92f02a3 completed list of roughly ported over scripthooks.
todo: need to figure out why followobject is only hitting the first path node. likely  amixup with goal handling
2025-04-17 01:27:08 -05:00
AzaezelX f633ef3a3d fill in the validated variables 2025-03-09 11:53:23 -05:00
marauder2k7 b1e7b817d2 Update duDebugDrawTorque.cpp 2024-07-22 21:40:57 +01:00
marauder2k7 6807abc8b6 ID10T error
no default does not need case -_- id10t error, few other fixes
2024-07-22 21:12:48 +01:00
marauder2k7 a621cc5100 various warnings
warnings cleanup
2024-07-22 20:59:48 +01:00
marauder2k7 2b295fb7f0 rest of virtuals removed
virtuals removed and replaced with override where necessary on the rest of the code base, clang-tidy to the rescue.
2024-03-18 18:40:22 +00:00
marauder2k7 efbe5e90f5 virtuals removed
virtuals removed and replaced with override where necessary, clang-tidy to the rescue.
2024-03-18 18:13:00 +00:00
AzaezelX fbcfe02098 clean up "Add" menubar categoes on the 3d object side via the following:
SceneObject now defaults to a category of "misc"
getCategoryOfClass now checks parent classes for what categories they hold so that variants can inherit
categories are in one of a few rough groups and subgroups depending on actual mapper needs/usages
2023-11-08 20:42:47 -06:00
AzaezelX aa02e48c8d add safeties for enum math across define boundaries 2023-04-26 22:27:35 -05:00
AzaezelX f5a34308f9 add a docsURL; macro to link a given set of script config vars to git or similar storage urls via clicking on the inspector 2023-01-27 01:13:15 -06:00
JeffR 305e4851e0 Fixes issue with using Edit Asset in RMB menu in AB on datablocks where it wouldn't correctly recognize the datablock
Fixes issue where the local sfxProfile in a sfxEmitter would share pointer reference to the utilized shapeAsset's sound buffer, so when it's deleted it would nuke the soundAsset's buffer, causing reference exceptions
Adds includes to torqueConfig.h in several files that are blocked out with TORQUE_TOOLS to ensure that if the flag is on in the config file, the files are loaded/compiled as expected
Add sanity check to AssetManager::unloadAsset to ensure that the assetDef being unloaded was actually correctly loaded/registered into the console in the first place
2022-07-02 23:27:18 -05:00
AzaezelX 4a7104e5ea fix TORQUE_TOOLS = off compilation 2022-06-13 12:38:08 -05:00
Robert MacGregor 1b6b803a20 * BugFix: Clear a lot of warnings and correct a few actual programming errors along the way. 2021-10-04 20:04:21 -04:00
OTHGMars 46b0aee637 NavMesh loading from zip file. 2021-01-11 04:51:21 -05:00
Lukas Aldershaab c999baf7ed Moves from using dStrCmp to the new String::compare static functions. Keeps things cleaner, consistent, and works with intellisense. 2020-10-03 14:37:55 +02:00
AzaezelX a46bf3d7e5 uninitialized variables-navigation 2020-05-11 15:08:57 -05:00
Azaezel f00323c5b9 the buildtiles method does not in fact build tiles right then and there, but instead queues tiles to update themselves over time. as such, simply disabling then enabling collision no longer functions (and how it did before so before is frankly likely due to exploiting a bug someplace upstream). as such, we set the same flag for NavMeshUpdateAll as we do for NavMeshIgnore to filter something as hidden from navmesh generation or not on a permanent, instead of a temporary basis via removing from the physics sim since it's likely to still be generating by the time it's put back. 2019-03-06 18:14:36 -06:00
Areloch 6cf0c9e360 Merge branch 'development' into EngineAPI-Refactor 2018-12-09 14:48:50 -06:00
Lukas Joergensen 0fff33869c Eliminate unnecessary uses of ConsoleMethod 2018-04-17 22:36:32 +02:00
Lukas Joergensen e718841467 Eliminate DefineConsoleFunction 2018-04-17 20:54:08 +02:00
Azaezel f0c29172ca gui shadowvar cleanups 2018-03-15 14:50:54 -05:00
Azaezel d0e47ee1ee davmesh debug draw membervar cleanup 2018-03-14 15:13:44 -05:00
Azaezel 83aa47da1a profiling blocks for navmesh subsystem analysis 2017-04-05 13:04:25 -05:00
Thomas "elfprince13" Dickerson 27e2871b01 Replaced StringTable->insert("") with StringTable->EmptyString() 2017-01-11 23:36:04 -05:00
Thomas "elfprince13" Dickerson bcc5459818 whitespace 2017-01-11 23:34:46 -05:00
Azaezel dd071484da Merge branch 'development' of https://github.com/GarageGames/Torque3D into andOrMaybe
Conflicts:
	Engine/source/T3D/staticShape.cpp
2016-12-20 22:50:28 -06:00
Francisco Montañés García 87fb2d827b I's not working because onNavMeshUpdate string comparation will never succeed.
DefineEngineMethod(NavPath, onNavMeshUpdate, void, (const char *data),,
   "@brief Callback when this path's NavMesh is loaded or rebuilt.")
{
   if(object->mMesh && !dStrcmp(data, object->mMesh->getIdString()))
      object->plan();
}
2016-11-24 19:09:00 +01:00
Azaezel 1ee127b753 more unused variable cleanups 2016-10-16 14:41:34 -05:00
Azaezel c57b1a8b70 clang reports: unclear || + && and &+| mixes. 2016-10-14 17:26:13 -05:00
Francisco Montañés García 800b7d1fd4 Write Links only when mLinkIDs.size() > 0 2016-09-14 13:08:20 +02:00
Azaezel 6a5820d3a2 navmesh file load error-fix
don't try to read 0 length buffers
2016-08-01 17:22:19 -05:00
John3 060649dbad typo "tomove" to "to move" 2016-06-12 14:34:26 -05:00
Azaezel bac14875f4 allows navmeshes to generate for most scene objects, and adds a NavMeshIgnore method for object-instances to filter them out. 2016-04-04 09:38:24 -05:00
Azaezel 554a871df9 Merge branch 'development' into navMess2
Conflicts:
	Engine/source/navigation/navMesh.cpp
2016-02-21 15:27:12 -06:00
Azaezel 612d932372 Revert "Update navMesh.cpp"
This reverts commit f3ff199554.
2016-02-19 17:34:27 -06:00
Anis f3ff199554 Update navMesh.cpp 2016-02-13 18:50:11 +01:00
Azaezel f06db00255 dynamic_cast check for regeneration for paranoias sake + an alias method. 2015-12-03 18:34:53 -06:00
Azaezel 45055f8f3e formatting 2015-11-27 18:18:21 -06:00
Azaezel e63c0a78a3 NavMeshUpdateAll leak suppression (not 100% preventative)
1) Reset the build when adding potential dirties to the list to ensure it isn't trying to kill off a dirty entry that it's passed by.
2) mSaveIntermediates = true; causes leakage even with all this. still tracking that end.
3) Need to remove a dead tile whether there's new data to replace it with or not. Empty tiles are an entirely possible case. Even a probable one if you have high verticality in a level.
4) Likewise you don't want to re-feed the same geometry list for a given tile in case the conditions have changed.
5) If no vertcount then clear all geometry entries. (that one might be paranoia)
2015-11-27 17:43:08 -06:00
Azaezel b0b39b5f83 mDirtyTiles changed from std::queue to a vector
allows us to leverage  .push_back_unique(&foo); and .clear();
2015-11-27 16:17:30 -06:00