Commit Graph

249 Commits

Author SHA1 Message Date
Zi Ye
db194f06e1 Replaced some distance checks with square distance checks in NavMap, wherever the purpose is only to find the nearest element. 2024-10-15 22:06:35 -05:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00
Thaddeus Crews
b37fc1014a
Style: Apply new clang-format changes 2024-09-20 08:09:48 -05:00
Rémi Verschelde
b6906b9677
Merge pull request #96389 from kitbdev/extract-main-screen
Extract EditorMainScreen from EditorNode
2024-09-11 12:34:46 +02:00
smix8
287fdb16d5 Add navigation region point and segment queries
Adds point and segment queries for regions, e.g. closet point, point normal, or segment intersection.
2024-09-10 01:38:46 +02:00
kit
5e1c9d68aa Extract editor main screen 2024-09-09 11:06:18 -04:00
smix8
a4cfc77dc0 Move NavigationServer mesh queries to dedicated file
Moves all the navigation mesh query related functions from NavMap and NavRegion to a dedicated file and makes them static.
2024-09-03 13:16:35 +02:00
Rémi Verschelde
e004ae7bbe
Merge pull request #85965 from ershn/use_heap_in_astar_path_finding
Improve pathfinding performance by using a heap to store traversable polygons
2024-09-03 11:42:48 +02:00
Ershn
c3ee32f106 Use a heap to store traversable polygons for pathfinding 2024-09-01 11:24:14 +09:00
A Thousand Ships
e33fdb4296
Use MutexLock in more places 2024-08-29 14:12:59 +02:00
Pawel Lampe
c3f1bfd5cb Extract navigation-related defaults to separate header 2024-08-27 20:12:10 +02:00
Rémi Verschelde
0274508647
Merge pull request #93498 from smix8/connection_relocation
Move NavRegion connections to NavMap
2024-08-19 16:05:05 +02:00
Rémi Verschelde
da57bab169
Merge pull request #92560 from smix8/navmesh2d_bake_partition
Add triangulation partition option to 2D navigation mesh baking
2024-08-19 16:04:49 +02:00
Rémi Verschelde
dbf4be308c
Merge pull request #93583 from smix8/obstacle_monitor
Add navigation obstacles to performance monitor stats
2024-08-16 23:45:10 +02:00
kobewi
065dd099dd Remove empty bind_methods() 2024-08-15 08:24:32 +02:00
smix8
110b2dc61a Add triangulation partition option to 2D navigation mesh baking
Adds triangulation partition option to 2D navigation mesh baking as an alternative to the existing convex partition option.
2024-08-05 00:08:46 +02:00
Artem
b8fc6b4979
NavigationServer3D.map_get_closest_point_to_segment - add an additional shortest distance check
For a case when shortest distance is between some point located on a face's
edge and some point located on a line segment.
2024-06-29 19:50:10 +02:00
smix8
f9876d3a88 Add navigation obstacles to performance monitor stats
Adds navigation obstacle count to navigation performance monitor.
2024-06-25 05:17:27 +02:00
smix8
83bd8fa396 Move NavRegion connections to NavMap
Moves bookkeeping for connections from region to map where connections are actually made.
2024-06-23 14:49:35 +02:00
smix8
40fc299aa3 Remove unused navigation polygon properties
Removes unused navigation polygon properties, a leftover from the old Godot 3 days that used polygon center to polygon center distance for (rather inaccurate) pathfinding cost calculation.
2024-06-22 21:55:48 +02:00
smix8
eba3acadac Fix thread-use causing navigation polygon data corruption
Fixes navigation polygon  data corruption caused by thread-use that changed vertices or polygons while the navigation polygon was processed, e.g. by server region sync, navmesh baking or user thread updates.
2024-06-21 12:58:03 +02:00
Rémi Verschelde
04a530f91f
Merge pull request #93407 from smix8/lock_this_geometry_up
Fix thread-use causing navigation source geometry data corruption
2024-06-21 10:14:38 +02:00
smix8
fd727ab994 Fix thread use causing navigation mesh data corruption
Fixes navigation mesh data corruption caused by thread use that changed vertices or polygons while the navigation mesh was processed, e.g. by server sync or baking.
2024-06-21 09:39:16 +02:00
smix8
d4722b9e1f Fix thread-use causing navigation source geometry data corruption
Fixes navigation source geometry data corruption caused by thread-use that changed vertices or indices while the source geometry data was used in a parsing process or read from by the navmesh baking.
2024-06-21 08:06:14 +02:00
Artem
4ed747e255 Fixed closest edge and face check in NavigationServer3D.map_get_closest_point_to_segment 2024-06-17 15:34:46 +04:00
Per Melin
9b191f669c Fix NavigationServer3D.get_closest_point_to_segment() with use_collision 2024-06-07 14:24:39 +02:00
Gilles Roudière
1a380db62a Fix crash when baking TileMap navigation 2024-05-27 10:46:54 +02:00
smix8
4128c7b311 Remove duplicated vertices after 3D NavigationMesh bake
Removes duplicated vertices that may exist on shared polygon corners after a ReCast navigation mesh bake.
2024-05-21 14:18:32 +02:00
A Thousand Ships
ee79386f7b
[Scene] Add SceneStringNames::pressed 2024-05-14 15:51:28 +02:00
A Thousand Ships
86de59d60a
[Core] Add LocalVector::has for convenience 2024-05-06 18:03:37 +02:00
Gilles Roudière
23b9a9f2de Fix TileMapLayer navmesh baking 2024-05-02 18:06:23 +02:00
Aaron Franke
1bcbbe96c4
Organize existing code for editor plugins 2024-04-27 11:59:58 -07:00
smix8
6a4d8d4b5c Change 2D navigation mesh baking to use floating point coordinates
Replaces internal uses of Clipper2 integer structs to their floating point equivalents.
2024-04-23 10:28:43 +02:00
smix8
58593d1bb7 Add navigation source geometry parser callbacks
Adds navigation source geometry parser callbacks so that externals can hook their own geometry into the navigation mesh baking process.
2024-04-19 12:10:57 +02:00
Aaron Franke
77e35cf781
Move NavigationMeshSourceGeometryData(2D/3D) to the 2D/3D subfolders 2024-04-15 18:40:43 -07:00
smix8
8a0f1f1995 Use fmod for navigation mesh border size warning
Uses fmod for checking that navigation mesh border size matches the cell size as a multiple of cell size is also valid.
2024-04-13 03:39:53 +02:00
Rémi Verschelde
4a4d6df04e
Merge pull request #90508 from smix8/thread_bake
Use threads for baking navigation mesh inside editor
2024-04-12 11:16:50 +02:00
smix8
1c134f4a3d Add navigation path simplification
Adds navigation path simplification for NavigationServer and NavigationAgent.
2024-04-11 12:32:21 +02:00
smix8
2bc2b52bd1 Use threads for baking navigation mesh inside editor
Enables threaded navigation mesh baking inside the editor.
2024-04-11 03:53:26 +02:00
smix8
d6ddeec0fd Make 2D navigation mesh baking parse all TileMapLayers
Makes 2D navigation mesh baking parse all TileMapLayers.
2024-04-04 10:45:53 +02:00
Pawel Lampe
64fc9e2156 Add navigation baking crash prevention mechanism 2024-03-23 22:20:00 +01:00
smix8
5d5e85fe07 Add NavigationObstacle options to affect and carve navigation mesh
Adds NavigationObstacle options to affect and carve navigation mesh.
2024-03-15 01:45:44 +01:00
Aaron Franke
6aac3e4a16 Disable all 3D nodes, physics, and resources when compiling without 3D 2024-03-11 01:00:55 -07:00
Jakub Marcowski
973448ec4c
clipper2: Update to 1.3.0 2024-03-01 11:12:59 +01:00
blackbird806
e2f1af8742
Remove self includes in some files 2024-02-27 17:10:54 +01:00
smix8
35dafc9fa8 Split monolithic physics class files
Splits monolithic physics class files.
2024-02-27 11:18:16 +01:00
Aaron Franke
c399424db9
Move 3D-only resources to their own folder 2024-02-26 05:23:04 -06:00
Aaron Franke
1cb531ddb6
Move 2D-only resources to their own folder 2024-02-26 05:22:45 -06:00
Aaron Franke
138180fe01
Move 3D-only navigation code to its own subfolder 2024-02-26 04:19:12 -06:00
Aaron Franke
fd582dca62
Move 2D-only navigation code to its own subfolder 2024-02-26 04:18:13 -06:00