Commit graph

50 commits

Author SHA1 Message Date
marauder2k7 b5d6601b96 add cover tool
add cover tool
some more cleanup
navmeshselecttool needs to use collideBox
duDebugDrawTorque now has the transparent blending option
2025-07-28 08:24:20 +01:00
marauder2k7 f730d0bf1c added spawning
Tile test tool now spawns classes and data
Test avoidance added to aicontroller and ainavigation
2025-07-27 12:43:19 +01:00
marauder2k7 6d36e17d91 added navmesh tester tool
Added ground work for tester tool
tester tool works but needs to fill out list of acceptable datablocks and spawnclasses
navpaths now share 1 navmeshquery
AIControllerData now has a vector of area costs for different polyareas
General cleanup
2025-07-26 10:34:19 +01:00
marauder2k7 edf4d47be0 handle water verts
now we correctly mark water verts as water area and add the swim flag to them
2025-07-25 12:41:59 +01:00
marauder2k7 5c2ed84b24 duDebugDrawTorque add override
added an override flag to stop detour from setting our depth mask state. This was causing navmesh to draw through other objects when it wasnt meant to

Reset our bounds box for each draw cache
2025-07-25 11:11:58 +01:00
marauder2k7 496e427d76 add radius controls
update the scripts for the offmeshcontool
radius controlled by slider ctrl
2025-07-25 09:44:49 +01:00
marauder2k7 2df2cb5c15 off mesh connection tool
Adds off mesh connection tool
upgrade functionality to allow setting the direction to be bi-directional
added immediate draw to duDebugDrawtorque so we can draw offmesh connections
2025-07-24 23:43:35 +01:00
marauder2k7 de1642c33e remove depth changes
changing depth between draw modes is a bit confusing to the viewer could revist

PolyAreas must start with 1, 0 = null area in recast.
2025-07-24 15:01:28 +01:00
marauder2k7 d1771756c2 updated drawmodes and rendering
DebugDraw for recast now caches the results
We now have a drawmode dropdown selector
drawmode changes come from the gui itself no longer from console values
all recast drawmodes are supported with the exception of drawmodes that add abilities like navqueries until the nav tester tool is imlpemented.
2025-07-24 14:25:02 +01:00
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 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 f633ef3a3d fill in the validated variables 2025-03-09 11:53:23 -05: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
OTHGMars 46b0aee637 NavMesh loading from zip file. 2021-01-11 04:51:21 -05: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 e718841467 Eliminate DefineConsoleFunction 2018-04-17 20:54:08 +02: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 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
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
Areloch 527c3790d6 Issue found with PVS-Studio:
Many instances where we would create a object via a new call, and then check that it was non-null.

This is redundant, as if we ever were in a situation where new failed, we'd be crashing left and right already, so the additional check is wasted processing.
2015-07-21 23:22:21 -05:00
Areloch 11398bb04e Issue found with PVS-Studio:
A lot of instances where some function args are not actually modified in any way, meaning that it is better for performance to convert them into const references. This prevents an additional copy, which can help performance.
2015-07-16 22:02:18 -05:00
Ben Payne b721288d6b Use the wonderful empty() member instead of abusing size() 2015-02-20 18:42:31 -05:00
Daniel Buckmaster 0d1f1aeeb9 Base navmesh size 1x1x1. 2015-01-29 22:23:26 +11:00
Daniel Buckmaster cb047bd7f0 Rename all instances of Walkabout. 2015-01-29 21:09:32 +11:00
Daniel Buckmaster 199d98d096 Made navmesh links render over the top of the mesh. 2014-11-29 11:59:00 +11:00
Daniel Buckmaster 86a9417cfd Removed another demo block. 2014-11-28 20:47:11 +11:00
Daniel Buckmaster f42e12940c Navmesh load/save now uses builtin file abstraction. 2014-11-28 20:24:11 +11:00
Daniel Buckmaster f4c940f4fe Added basic Walkabout with #define renamed and no editor. 2014-11-28 19:42:10 +11:00
Andy Maloney 396a7064dc Minor cleanups
- remove redundant conditional
 - remove unused vars
 - remove extra ags to printf
 - reduce scope of decl
2013-12-04 16:45:09 -05:00
Daniel Buckmaster df2abed2c4 Added navmesh wrapper code and module. 2013-07-04 17:27:48 +10:00