diff --git a/editor/scene/2d/tiles/tile_atlas_view.cpp b/editor/scene/2d/tiles/tile_atlas_view.cpp index 859fcd636c75..c57a8542145a 100644 --- a/editor/scene/2d/tiles/tile_atlas_view.cpp +++ b/editor/scene/2d/tiles/tile_atlas_view.cpp @@ -39,6 +39,7 @@ #include "scene/gui/label.h" #include "scene/gui/panel.h" #include "scene/gui/view_panner.h" +#include "scene/resources/material.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" diff --git a/editor/scene/2d/tiles/tile_data_editors.cpp b/editor/scene/2d/tiles/tile_data_editors.cpp index adc5541f9495..a744e9f3535d 100644 --- a/editor/scene/2d/tiles/tile_data_editors.cpp +++ b/editor/scene/2d/tiles/tile_data_editors.cpp @@ -49,6 +49,7 @@ #include "scene/gui/separator.h" #include "scene/gui/spin_box.h" #include "scene/main/scene_tree.h" +#include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" #include "servers/rendering/rendering_server.h" diff --git a/editor/scene/2d/tiles/tile_set_atlas_source_editor.cpp b/editor/scene/2d/tiles/tile_set_atlas_source_editor.cpp index 8860f63e4141..8aad56ed96d1 100644 --- a/editor/scene/2d/tiles/tile_set_atlas_source_editor.cpp +++ b/editor/scene/2d/tiles/tile_set_atlas_source_editor.cpp @@ -47,6 +47,7 @@ #include "scene/gui/box_container.h" #include "scene/gui/button.h" #include "scene/gui/control.h" +#include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" void TileSetAtlasSourceEditor::TileSetAtlasSourceProxyObject::set_id(int p_id) { diff --git a/editor/scene/3d/mesh_instance_3d_editor_plugin.cpp b/editor/scene/3d/mesh_instance_3d_editor_plugin.cpp index e49841fb3c35..0fecedf9cd20 100644 --- a/editor/scene/3d/mesh_instance_3d_editor_plugin.cpp +++ b/editor/scene/3d/mesh_instance_3d_editor_plugin.cpp @@ -53,6 +53,7 @@ #include "scene/resources/3d/cylinder_shape_3d.h" #include "scene/resources/3d/primitive_meshes.h" #include "scene/resources/3d/sphere_shape_3d.h" +#include "scene/resources/navigation_mesh.h" void MeshInstance3DEditor::_node_removed(Node *p_node) { if (p_node == node) { diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp index 914937ab37c2..74b38a63ac1a 100644 --- a/modules/csg/csg_shape.cpp +++ b/modules/csg/csg_shape.cpp @@ -36,6 +36,7 @@ #include "core/object/class_db.h" #include "scene/main/scene_tree.h" #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" +#include "scene/resources/mesh.h" #include "scene/resources/navigation_mesh.h" #include "servers/rendering/rendering_server.h" diff --git a/modules/navigation_2d/2d/godot_navigation_server_2d.cpp b/modules/navigation_2d/2d/godot_navigation_server_2d.cpp index 8ab4bfba201b..effae6507fba 100644 --- a/modules/navigation_2d/2d/godot_navigation_server_2d.cpp +++ b/modules/navigation_2d/2d/godot_navigation_server_2d.cpp @@ -30,15 +30,17 @@ #include "godot_navigation_server_2d.h" +#ifdef CLIPPER2_ENABLED +#include "nav_mesh_generator_2d.h" +#endif // CLIPPER2_ENABLED + #include "core/os/mutex.h" #include "scene/main/node.h" +#include "servers/navigation_2d/navigation_path_query_parameters_2d.h" +#include "servers/navigation_2d/navigation_path_query_result_2d.h" #include -#ifdef CLIPPER2_ENABLED -#include "nav_mesh_generator_2d.h" -#endif // CLIPPER2_ENABLED - #define COMMAND_1(F_NAME, T_0, D_0) \ struct MERGE(F_NAME, _command_2d) : public SetCommand2D { \ T_0 d_0; \ diff --git a/modules/navigation_2d/2d/godot_navigation_server_2d.h b/modules/navigation_2d/2d/godot_navigation_server_2d.h index 21055920fbcb..16616bc1b5fd 100644 --- a/modules/navigation_2d/2d/godot_navigation_server_2d.h +++ b/modules/navigation_2d/2d/godot_navigation_server_2d.h @@ -39,10 +39,14 @@ #include "core/templates/local_vector.h" #include "core/templates/rid.h" #include "core/templates/rid_owner.h" -#include "servers/navigation_2d/navigation_path_query_parameters_2d.h" -#include "servers/navigation_2d/navigation_path_query_result_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" +class GodotNavigationServer2D; + +#ifdef CLIPPER2_ENABLED +class NavMeshGenerator2D; +#endif // CLIPPER2_ENABLED + /// The commands are functions executed during the `sync` phase. #define MERGE_INTERNAL(A, B) A##B @@ -56,11 +60,6 @@ virtual void F_NAME(T_0 D_0, T_1 D_1) override; \ void MERGE(_cmd_, F_NAME)(T_0 D_0, T_1 D_1) -class GodotNavigationServer2D; -#ifdef CLIPPER2_ENABLED -class NavMeshGenerator2D; -#endif // CLIPPER2_ENABLED - struct SetCommand2D { virtual ~SetCommand2D() {} virtual void exec(GodotNavigationServer2D *p_server) = 0; diff --git a/modules/navigation_2d/2d/nav_mesh_generator_2d.cpp b/modules/navigation_2d/2d/nav_mesh_generator_2d.cpp index 8f1aebf0f878..1b154c7b5dac 100644 --- a/modules/navigation_2d/2d/nav_mesh_generator_2d.cpp +++ b/modules/navigation_2d/2d/nav_mesh_generator_2d.cpp @@ -36,8 +36,7 @@ #include "scene/2d/node_2d.h" #include "scene/main/node.h" #include "scene/main/scene_tree.h" -#include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" -#include "scene/resources/2d/navigation_polygon.h" +#include "servers/navigation_2d/navigation_server_2d.h" #include #include diff --git a/modules/navigation_2d/2d/nav_mesh_generator_2d.h b/modules/navigation_2d/2d/nav_mesh_generator_2d.h index 17df03976071..f6ded3d63846 100644 --- a/modules/navigation_2d/2d/nav_mesh_generator_2d.h +++ b/modules/navigation_2d/2d/nav_mesh_generator_2d.h @@ -34,11 +34,11 @@ #include "core/object/object.h" #include "core/object/worker_thread_pool.h" -#include "servers/navigation_2d/navigation_server_2d.h" +#include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" +#include "scene/resources/2d/navigation_polygon.h" class Node; -class NavigationPolygon; -class NavigationMeshSourceGeometryData2D; +struct NavMeshGeometryParser2D; class NavMeshGenerator2D : public Object { GDSOFTCLASS(NavMeshGenerator2D, Object); diff --git a/modules/navigation_2d/editor/navigation_link_2d_editor_plugin.cpp b/modules/navigation_2d/editor/navigation_link_2d_editor_plugin.cpp index 63b79981db48..db4f1c7ed850 100644 --- a/modules/navigation_2d/editor/navigation_link_2d_editor_plugin.cpp +++ b/modules/navigation_2d/editor/navigation_link_2d_editor_plugin.cpp @@ -35,6 +35,7 @@ #include "editor/editor_undo_redo_manager.h" #include "editor/scene/canvas_item_editor_plugin.h" #include "editor/settings/editor_settings.h" +#include "scene/2d/navigation/navigation_link_2d.h" #include "scene/main/scene_tree.h" #include "scene/main/viewport.h" diff --git a/modules/navigation_2d/editor/navigation_link_2d_editor_plugin.h b/modules/navigation_2d/editor/navigation_link_2d_editor_plugin.h index 2a4e003277b4..4a19bd0a8477 100644 --- a/modules/navigation_2d/editor/navigation_link_2d_editor_plugin.h +++ b/modules/navigation_2d/editor/navigation_link_2d_editor_plugin.h @@ -31,9 +31,10 @@ #pragma once #include "editor/plugins/editor_plugin.h" -#include "scene/2d/navigation/navigation_link_2d.h" +#include "scene/gui/control.h" class CanvasItemEditor; +class NavigationLink2D; class NavigationLink2DEditor : public Control { GDCLASS(NavigationLink2DEditor, Control); diff --git a/modules/navigation_2d/editor/navigation_obstacle_2d_editor_plugin.cpp b/modules/navigation_2d/editor/navigation_obstacle_2d_editor_plugin.cpp index 3d04b76652ad..af511e91392b 100644 --- a/modules/navigation_2d/editor/navigation_obstacle_2d_editor_plugin.cpp +++ b/modules/navigation_2d/editor/navigation_obstacle_2d_editor_plugin.cpp @@ -31,6 +31,7 @@ #include "navigation_obstacle_2d_editor_plugin.h" #include "editor/editor_undo_redo_manager.h" +#include "scene/2d/navigation/navigation_obstacle_2d.h" Node2D *NavigationObstacle2DEditor::_get_node() const { return node; diff --git a/modules/navigation_2d/editor/navigation_obstacle_2d_editor_plugin.h b/modules/navigation_2d/editor/navigation_obstacle_2d_editor_plugin.h index 2cd55af49d7e..6ce3f2f9e7b8 100644 --- a/modules/navigation_2d/editor/navigation_obstacle_2d_editor_plugin.h +++ b/modules/navigation_2d/editor/navigation_obstacle_2d_editor_plugin.h @@ -31,7 +31,8 @@ #pragma once #include "editor/scene/2d/abstract_polygon_2d_editor.h" -#include "scene/2d/navigation/navigation_obstacle_2d.h" + +class NavigationObstacle2D; class NavigationObstacle2DEditor : public AbstractPolygon2DEditor { GDCLASS(NavigationObstacle2DEditor, AbstractPolygon2DEditor); diff --git a/modules/navigation_2d/editor/navigation_region_2d_editor_plugin.cpp b/modules/navigation_2d/editor/navigation_region_2d_editor_plugin.cpp index 928d69980ee9..d30cd737f619 100644 --- a/modules/navigation_2d/editor/navigation_region_2d_editor_plugin.cpp +++ b/modules/navigation_2d/editor/navigation_region_2d_editor_plugin.cpp @@ -37,6 +37,7 @@ #include "scene/2d/navigation/navigation_region_2d.h" #include "scene/gui/dialogs.h" #include "scene/main/timer.h" +#include "scene/resources/2d/navigation_polygon.h" Ref NavigationRegion2DEditor::_ensure_navpoly() const { Ref navpoly = node->get_navigation_polygon(); diff --git a/modules/navigation_2d/editor/navigation_region_2d_editor_plugin.h b/modules/navigation_2d/editor/navigation_region_2d_editor_plugin.h index ecbc9c5673df..d81b7d901177 100644 --- a/modules/navigation_2d/editor/navigation_region_2d_editor_plugin.h +++ b/modules/navigation_2d/editor/navigation_region_2d_editor_plugin.h @@ -30,7 +30,6 @@ #pragma once -#include "editor/plugins/editor_plugin.h" #include "editor/scene/2d/abstract_polygon_2d_editor.h" class AcceptDialog; diff --git a/modules/navigation_2d/nav_link_2d.h b/modules/navigation_2d/nav_link_2d.h index 27292a9a7ac9..2372326852c3 100644 --- a/modules/navigation_2d/nav_link_2d.h +++ b/modules/navigation_2d/nav_link_2d.h @@ -32,9 +32,9 @@ #include "2d/nav_base_iteration_2d.h" #include "nav_base_2d.h" -#include "nav_utils_2d.h" #include "core/os/rw_lock.h" +#include "core/templates/self_list.h" class NavLinkIteration2D : public NavBaseIteration2D { GDCLASS(NavLinkIteration2D, NavBaseIteration2D); @@ -54,8 +54,6 @@ class NavLinkIteration2D : public NavBaseIteration2D { } }; -#include "core/templates/self_list.h" - class NavLink2D : public NavBase2D { NavMap2D *map = nullptr; bool bidirectional = true; diff --git a/modules/navigation_2d/nav_map_2d.cpp b/modules/navigation_2d/nav_map_2d.cpp index 51c429336fb0..b29f99da0675 100644 --- a/modules/navigation_2d/nav_map_2d.cpp +++ b/modules/navigation_2d/nav_map_2d.cpp @@ -31,7 +31,6 @@ #include "nav_map_2d.h" #include "2d/nav_map_builder_2d.h" -#include "2d/nav_mesh_queries_2d.h" #include "2d/nav_region_iteration_2d.h" #include "nav_agent_2d.h" #include "nav_link_2d.h" @@ -43,6 +42,7 @@ #include "core/os/os.h" #include "servers/navigation_2d/navigation_server_2d.h" +#include #include using namespace Nav2D; diff --git a/modules/navigation_2d/nav_map_2d.h b/modules/navigation_2d/nav_map_2d.h index b58be55979d8..0ffdf99526e0 100644 --- a/modules/navigation_2d/nav_map_2d.h +++ b/modules/navigation_2d/nav_map_2d.h @@ -40,7 +40,6 @@ #include "core/os/rw_lock.h" #include "servers/navigation_2d/navigation_constants_2d.h" -#include #include class NavLink2D; diff --git a/modules/navigation_2d/nav_region_2d.cpp b/modules/navigation_2d/nav_region_2d.cpp index 3b59082c5a4e..a3814734afd9 100644 --- a/modules/navigation_2d/nav_region_2d.cpp +++ b/modules/navigation_2d/nav_region_2d.cpp @@ -32,7 +32,6 @@ #include "2d/nav_mesh_queries_2d.h" #include "2d/nav_region_builder_2d.h" -#include "2d/nav_region_iteration_2d.h" #include "nav_map_2d.h" #include "core/config/project_settings.h" diff --git a/modules/navigation_2d/nav_region_2d.h b/modules/navigation_2d/nav_region_2d.h index 88a93a3754ef..7dd419109269 100644 --- a/modules/navigation_2d/nav_region_2d.h +++ b/modules/navigation_2d/nav_region_2d.h @@ -34,6 +34,7 @@ #include "nav_base_2d.h" #include "nav_utils_2d.h" +#include "core/object/worker_thread_pool.h" #include "core/os/rw_lock.h" #include "scene/resources/2d/navigation_polygon.h" diff --git a/modules/navigation_3d/3d/godot_navigation_server_3d.cpp b/modules/navigation_3d/3d/godot_navigation_server_3d.cpp index c2186d89f8c8..49ea6ee7a2f8 100644 --- a/modules/navigation_3d/3d/godot_navigation_server_3d.cpp +++ b/modules/navigation_3d/3d/godot_navigation_server_3d.cpp @@ -34,6 +34,9 @@ #include "core/os/mutex.h" #include "scene/main/node.h" +#include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" +#include "servers/navigation_3d/navigation_path_query_parameters_3d.h" +#include "servers/navigation_3d/navigation_path_query_result_3d.h" using namespace NavigationDefaults3D; diff --git a/modules/navigation_3d/3d/godot_navigation_server_3d.h b/modules/navigation_3d/3d/godot_navigation_server_3d.h index a6ba9b549e0a..1df257b3bb23 100644 --- a/modules/navigation_3d/3d/godot_navigation_server_3d.h +++ b/modules/navigation_3d/3d/godot_navigation_server_3d.h @@ -39,10 +39,11 @@ #include "core/templates/local_vector.h" #include "core/templates/rid.h" #include "core/templates/rid_owner.h" -#include "servers/navigation_3d/navigation_path_query_parameters_3d.h" -#include "servers/navigation_3d/navigation_path_query_result_3d.h" #include "servers/navigation_3d/navigation_server_3d.h" +class GodotNavigationServer3D; +class NavMeshGenerator3D; + /// The commands are functions executed during the `sync` phase. #define MERGE_INTERNAL(A, B) A##B @@ -56,9 +57,6 @@ virtual void F_NAME(T_0 D_0, T_1 D_1) override; \ void MERGE(_cmd_, F_NAME)(T_0 D_0, T_1 D_1) -class GodotNavigationServer3D; -class NavMeshGenerator3D; - struct SetCommand3D { virtual ~SetCommand3D() {} virtual void exec(GodotNavigationServer3D *server) = 0; diff --git a/modules/navigation_3d/3d/nav_mesh_generator_3d.cpp b/modules/navigation_3d/3d/nav_mesh_generator_3d.cpp index 200794df1677..96e1effc6b5c 100644 --- a/modules/navigation_3d/3d/nav_mesh_generator_3d.cpp +++ b/modules/navigation_3d/3d/nav_mesh_generator_3d.cpp @@ -34,8 +34,7 @@ #include "core/os/thread.h" #include "scene/3d/node_3d.h" #include "scene/main/scene_tree.h" -#include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" -#include "scene/resources/navigation_mesh.h" +#include "servers/navigation_3d/navigation_server_3d.h" #include diff --git a/modules/navigation_3d/3d/nav_mesh_generator_3d.h b/modules/navigation_3d/3d/nav_mesh_generator_3d.h index 47570ea17f8c..2a9a9f42578e 100644 --- a/modules/navigation_3d/3d/nav_mesh_generator_3d.h +++ b/modules/navigation_3d/3d/nav_mesh_generator_3d.h @@ -32,11 +32,12 @@ #include "core/object/object.h" #include "core/object/worker_thread_pool.h" -#include "servers/navigation_3d/navigation_server_3d.h" +#include "core/os/rw_lock.h" +#include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" +#include "scene/resources/navigation_mesh.h" class Node; -class NavigationMesh; -class NavigationMeshSourceGeometryData3D; +struct NavMeshGeometryParser3D; class NavMeshGenerator3D : public Object { GDSOFTCLASS(NavMeshGenerator3D, Object); diff --git a/modules/navigation_3d/3d/navigation_mesh_generator.cpp b/modules/navigation_3d/3d/navigation_mesh_generator.cpp index 21024f41162b..6a625922d2f5 100644 --- a/modules/navigation_3d/3d/navigation_mesh_generator.cpp +++ b/modules/navigation_3d/3d/navigation_mesh_generator.cpp @@ -33,6 +33,7 @@ #include "core/object/class_db.h" #include "scene/main/node.h" #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" +#include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" NavigationMeshGenerator *NavigationMeshGenerator::singleton = nullptr; diff --git a/modules/navigation_3d/3d/navigation_mesh_generator.h b/modules/navigation_3d/3d/navigation_mesh_generator.h index 22b0a5f6915e..82edcc1ade00 100644 --- a/modules/navigation_3d/3d/navigation_mesh_generator.h +++ b/modules/navigation_3d/3d/navigation_mesh_generator.h @@ -30,9 +30,11 @@ #pragma once -#include "scene/resources/navigation_mesh.h" +#include "core/object/object.h" +class NavigationMesh; class NavigationMeshSourceGeometryData3D; +class Node; class NavigationMeshGenerator : public Object { GDCLASS(NavigationMeshGenerator, Object); diff --git a/modules/navigation_3d/editor/navigation_link_3d_editor_plugin.h b/modules/navigation_3d/editor/navigation_link_3d_editor_plugin.h index da912c78ace9..e6697d1f5327 100644 --- a/modules/navigation_3d/editor/navigation_link_3d_editor_plugin.h +++ b/modules/navigation_3d/editor/navigation_link_3d_editor_plugin.h @@ -34,6 +34,8 @@ #include "editor/plugins/editor_plugin.h" +class NavigationLink3DGizmoPlugin; + class NavigationLink3DEditorPlugin : public EditorPlugin { GDCLASS(NavigationLink3DEditorPlugin, EditorPlugin); diff --git a/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.cpp b/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.cpp index 59542c2c6e15..397bcace7ed7 100644 --- a/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.cpp +++ b/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.cpp @@ -39,6 +39,7 @@ #include "editor/scene/3d/node_3d_editor_plugin.h" #include "editor/settings/editor_settings.h" #include "scene/3d/navigation/navigation_obstacle_3d.h" +#include "scene/gui/box_container.h" #include "scene/gui/button.h" #include "scene/gui/dialogs.h" #include "scene/main/scene_tree.h" diff --git a/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.h b/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.h index c80c31886496..2a01e56ccf7c 100644 --- a/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.h +++ b/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.h @@ -32,10 +32,10 @@ #include "editor/plugins/editor_plugin.h" #include "editor/scene/3d/node_3d_editor_gizmos.h" -#include "scene/gui/box_container.h" class Button; class ConfirmationDialog; +class HBoxContainer; class NavigationObstacle3D; class NavigationObstacle3DGizmoPlugin : public EditorNode3DGizmoPlugin { diff --git a/modules/navigation_3d/editor/navigation_region_3d_editor_plugin.cpp b/modules/navigation_3d/editor/navigation_region_3d_editor_plugin.cpp index 6c8468192227..62807a2610cc 100644 --- a/modules/navigation_3d/editor/navigation_region_3d_editor_plugin.cpp +++ b/modules/navigation_3d/editor/navigation_region_3d_editor_plugin.cpp @@ -41,6 +41,7 @@ #include "scene/gui/dialogs.h" #include "scene/gui/label.h" #include "scene/main/scene_tree.h" +#include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" void NavigationRegion3DEditor::_node_removed(Node *p_node) { diff --git a/modules/navigation_3d/editor/navigation_region_3d_editor_plugin.h b/modules/navigation_3d/editor/navigation_region_3d_editor_plugin.h index 78a2661106e7..ae205e357146 100644 --- a/modules/navigation_3d/editor/navigation_region_3d_editor_plugin.h +++ b/modules/navigation_3d/editor/navigation_region_3d_editor_plugin.h @@ -33,6 +33,7 @@ #include "navigation_region_3d_gizmo_plugin.h" #include "editor/plugins/editor_plugin.h" +#include "scene/gui/control.h" class AcceptDialog; class Button; diff --git a/modules/navigation_3d/editor/navigation_region_3d_gizmo_plugin.cpp b/modules/navigation_3d/editor/navigation_region_3d_gizmo_plugin.cpp index 52b92199f778..0247e4c1fe1d 100644 --- a/modules/navigation_3d/editor/navigation_region_3d_gizmo_plugin.cpp +++ b/modules/navigation_3d/editor/navigation_region_3d_gizmo_plugin.cpp @@ -32,6 +32,7 @@ #include "core/math/random_pcg.h" #include "scene/3d/navigation/navigation_region_3d.h" +#include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" NavigationRegion3DGizmoPlugin::NavigationRegion3DGizmoPlugin() { diff --git a/modules/navigation_3d/nav_region_3d.h b/modules/navigation_3d/nav_region_3d.h index 1490f30230bd..a9da756cd9b4 100644 --- a/modules/navigation_3d/nav_region_3d.h +++ b/modules/navigation_3d/nav_region_3d.h @@ -34,6 +34,7 @@ #include "nav_base_3d.h" #include "nav_utils_3d.h" +#include "core/object/worker_thread_pool.h" #include "core/os/rw_lock.h" #include "scene/resources/navigation_mesh.h" diff --git a/scene/2d/navigation/navigation_obstacle_2d.cpp b/scene/2d/navigation/navigation_obstacle_2d.cpp index f20e5e7e5a32..6c1a836c9207 100644 --- a/scene/2d/navigation/navigation_obstacle_2d.cpp +++ b/scene/2d/navigation/navigation_obstacle_2d.cpp @@ -37,6 +37,7 @@ #include "scene/main/scene_tree.h" #include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" #include "scene/resources/2d/navigation_polygon.h" +#include "scene/resources/mesh.h" #include "scene/resources/world_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/2d/navigation/navigation_region_2d.cpp b/scene/2d/navigation/navigation_region_2d.cpp index 91a1ddea7c09..91b3e10288a4 100644 --- a/scene/2d/navigation/navigation_region_2d.cpp +++ b/scene/2d/navigation/navigation_region_2d.cpp @@ -35,6 +35,9 @@ #include "core/object/callable_mp.h" #include "core/object/class_db.h" #include "scene/main/scene_tree.h" +#include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" +#include "scene/resources/2d/navigation_polygon.h" +#include "scene/resources/mesh.h" #include "scene/resources/world_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/2d/navigation/navigation_region_2d.h b/scene/2d/navigation/navigation_region_2d.h index 74a02781d3bf..1f7ecb4da30b 100644 --- a/scene/2d/navigation/navigation_region_2d.h +++ b/scene/2d/navigation/navigation_region_2d.h @@ -31,7 +31,8 @@ #pragma once #include "scene/2d/node_2d.h" -#include "scene/resources/2d/navigation_polygon.h" + +class NavigationPolygon; class NavigationRegion2D : public Node2D { GDCLASS(NavigationRegion2D, Node2D); diff --git a/scene/3d/mesh_instance_3d.cpp b/scene/3d/mesh_instance_3d.cpp index 6648a9ec4bd6..4b183bf77da5 100644 --- a/scene/3d/mesh_instance_3d.cpp +++ b/scene/3d/mesh_instance_3d.cpp @@ -34,6 +34,7 @@ #include "core/object/class_db.h" #include "scene/3d/skeleton_3d.h" #include "scene/main/scene_tree.h" +#include "servers/rendering/rendering_server.h" #ifndef PHYSICS_3D_DISABLED #include "scene/3d/physics/collision_shape_3d.h" @@ -46,7 +47,6 @@ #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" #include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" -#include "servers/rendering/rendering_server.h" #endif // NAVIGATION_3D_DISABLED #include // FLT_EPSILON diff --git a/scene/3d/navigation/navigation_agent_3d.cpp b/scene/3d/navigation/navigation_agent_3d.cpp index 900811186cf4..8de404f0648a 100644 --- a/scene/3d/navigation/navigation_agent_3d.cpp +++ b/scene/3d/navigation/navigation_agent_3d.cpp @@ -35,6 +35,7 @@ #include "core/object/class_db.h" #include "scene/3d/navigation/navigation_link_3d.h" #include "scene/main/scene_tree.h" +#include "scene/resources/mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/3d/navigation/navigation_agent_3d.h b/scene/3d/navigation/navigation_agent_3d.h index 7d6a55477b7d..5fdcfe9773d0 100644 --- a/scene/3d/navigation/navigation_agent_3d.h +++ b/scene/3d/navigation/navigation_agent_3d.h @@ -35,10 +35,13 @@ #include "servers/navigation_3d/navigation_path_query_parameters_3d.h" #include "servers/navigation_3d/navigation_path_query_result_3d.h" -class ArrayMesh; class Node3D; class StandardMaterial3D; +#ifdef DEBUG_ENABLED +class ArrayMesh; +#endif + class NavigationAgent3D : public Node { GDCLASS(NavigationAgent3D, Node); diff --git a/scene/3d/navigation/navigation_link_3d.cpp b/scene/3d/navigation/navigation_link_3d.cpp index baf64101c3c9..6a158fe57756 100644 --- a/scene/3d/navigation/navigation_link_3d.cpp +++ b/scene/3d/navigation/navigation_link_3d.cpp @@ -32,6 +32,7 @@ #include "core/config/engine.h" #include "core/object/class_db.h" +#include "scene/resources/mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/3d/navigation/navigation_obstacle_3d.cpp b/scene/3d/navigation/navigation_obstacle_3d.cpp index 7e988c63c883..009b3bac7997 100644 --- a/scene/3d/navigation/navigation_obstacle_3d.cpp +++ b/scene/3d/navigation/navigation_obstacle_3d.cpp @@ -36,6 +36,7 @@ #include "core/object/class_db.h" #include "scene/main/scene_tree.h" #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" +#include "scene/resources/mesh.h" #include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/3d/navigation/navigation_region_3d.cpp b/scene/3d/navigation/navigation_region_3d.cpp index 50b13ffb9e51..9a1fe2e6b20b 100644 --- a/scene/3d/navigation/navigation_region_3d.cpp +++ b/scene/3d/navigation/navigation_region_3d.cpp @@ -35,6 +35,8 @@ #include "core/object/callable_mp.h" #include "core/object/class_db.h" #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" +#include "scene/resources/mesh.h" +#include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/3d/navigation/navigation_region_3d.h b/scene/3d/navigation/navigation_region_3d.h index c6a5629b2558..11c1df2a73cb 100644 --- a/scene/3d/navigation/navigation_region_3d.h +++ b/scene/3d/navigation/navigation_region_3d.h @@ -31,7 +31,12 @@ #pragma once #include "scene/3d/node_3d.h" -#include "scene/resources/navigation_mesh.h" + +class NavigationMesh; + +#ifdef DEBUG_ENABLED +class ArrayMesh; +#endif class NavigationRegion3D : public Node3D { GDCLASS(NavigationRegion3D, Node3D); diff --git a/scene/3d/physics/static_body_3d.cpp b/scene/3d/physics/static_body_3d.cpp index da4252f072cf..4de0f2416263 100644 --- a/scene/3d/physics/static_body_3d.cpp +++ b/scene/3d/physics/static_body_3d.cpp @@ -32,6 +32,7 @@ #include "core/object/callable_mp.h" #include "core/object/class_db.h" +#include "scene/resources/physics_material.h" #ifndef NAVIGATION_3D_DISABLED #include "core/math/convex_hull.h" @@ -46,7 +47,6 @@ #include "scene/resources/3d/shape_3d.h" #include "scene/resources/3d/sphere_shape_3d.h" #include "scene/resources/navigation_mesh.h" -#include "scene/resources/physics_material.h" #include "servers/navigation_3d/navigation_server_3d.h" Callable StaticBody3D::_navmesh_source_geometry_parsing_callback; diff --git a/scene/resources/2d/navigation_polygon.cpp b/scene/resources/2d/navigation_polygon.cpp index 7ba7070f7b62..07797b5d22cc 100644 --- a/scene/resources/2d/navigation_polygon.cpp +++ b/scene/resources/2d/navigation_polygon.cpp @@ -32,7 +32,8 @@ #include "core/math/geometry_2d.h" #include "core/object/class_db.h" -#include "core/os/mutex.h" +#include "core/variant/typed_array.h" +#include "scene/resources/navigation_mesh.h" #include diff --git a/scene/resources/2d/navigation_polygon.h b/scene/resources/2d/navigation_polygon.h index 3438009bb875..3bb852b55ae2 100644 --- a/scene/resources/2d/navigation_polygon.h +++ b/scene/resources/2d/navigation_polygon.h @@ -30,9 +30,13 @@ #pragma once -#include "scene/resources/navigation_mesh.h" +#include "core/io/resource.h" +#include "core/os/mutex.h" +#include "core/os/rw_lock.h" #include "servers/navigation_2d/navigation_constants_2d.h" +class NavigationMesh; + class NavigationPolygon : public Resource { GDCLASS(NavigationPolygon, Resource); RWLock rwlock; @@ -45,7 +49,6 @@ class NavigationPolygon : public Resource { mutable bool rect_cache_dirty = true; Mutex navigation_mesh_generation; - // Navigation mesh Ref navigation_mesh; real_t cell_size = NavigationDefaults2D::NAV_MESH_CELL_SIZE; diff --git a/scene/resources/3d/navigation_mesh_source_geometry_data_3d.cpp b/scene/resources/3d/navigation_mesh_source_geometry_data_3d.cpp index 3dd2759a7644..d42f8bb0e9e7 100644 --- a/scene/resources/3d/navigation_mesh_source_geometry_data_3d.cpp +++ b/scene/resources/3d/navigation_mesh_source_geometry_data_3d.cpp @@ -32,6 +32,7 @@ #include "core/config/engine.h" #include "core/object/class_db.h" +#include "scene/resources/mesh.h" void NavigationMeshSourceGeometryData3D::set_vertices(const Vector &p_vertices) { RWLockWrite write_lock(geometry_rwlock); diff --git a/scene/resources/3d/navigation_mesh_source_geometry_data_3d.h b/scene/resources/3d/navigation_mesh_source_geometry_data_3d.h index 96eff9759597..70afded6536f 100644 --- a/scene/resources/3d/navigation_mesh_source_geometry_data_3d.h +++ b/scene/resources/3d/navigation_mesh_source_geometry_data_3d.h @@ -30,8 +30,10 @@ #pragma once +#include "core/io/resource.h" #include "core/os/rw_lock.h" -#include "scene/resources/mesh.h" + +class Mesh; class NavigationMeshSourceGeometryData3D : public Resource { GDCLASS(NavigationMeshSourceGeometryData3D, Resource); diff --git a/scene/resources/navigation_mesh.cpp b/scene/resources/navigation_mesh.cpp index 505dba458605..3cb3e4ce6b78 100644 --- a/scene/resources/navigation_mesh.cpp +++ b/scene/resources/navigation_mesh.cpp @@ -31,6 +31,7 @@ #include "navigation_mesh.h" #include "core/object/class_db.h" +#include "scene/resources/mesh.h" #ifdef DEBUG_ENABLED #include "servers/navigation_3d/navigation_server_3d.h" diff --git a/scene/resources/navigation_mesh.h b/scene/resources/navigation_mesh.h index c559aeca5b67..6bdab3682189 100644 --- a/scene/resources/navigation_mesh.h +++ b/scene/resources/navigation_mesh.h @@ -30,17 +30,26 @@ #pragma once +#include "core/io/resource.h" #include "core/os/rw_lock.h" -#include "scene/resources/mesh.h" #include "servers/navigation_3d/navigation_constants_3d.h" +class Mesh; + +#ifdef DEBUG_ENABLED +class ArrayMesh; +#endif + class NavigationMesh : public Resource { GDCLASS(NavigationMesh, Resource); RWLock rwlock; Vector vertices; Vector> polygons; + +#ifdef DEBUG_ENABLED Ref debug_mesh; +#endif protected: static void _bind_methods(); diff --git a/servers/navigation_2d/navigation_server_2d.compat.inc b/servers/navigation_2d/navigation_server_2d.compat.inc index 6a1b6fab3215..43ef55d85b91 100644 --- a/servers/navigation_2d/navigation_server_2d.compat.inc +++ b/servers/navigation_2d/navigation_server_2d.compat.inc @@ -33,6 +33,8 @@ #include "navigation_server_2d.h" #include "core/object/class_db.h" +#include "servers/navigation_2d/navigation_path_query_parameters_2d.h" +#include "servers/navigation_2d/navigation_path_query_result_2d.h" Vector NavigationServer2D::_map_get_path_bind_compat_100129(RID p_map, Vector2 p_origin, Vector2 p_destination, bool p_optimize, uint32_t p_navigation_layers) const { return const_cast(this)->map_get_path(p_map, p_origin, p_destination, p_optimize, p_navigation_layers); diff --git a/servers/navigation_2d/navigation_server_2d.cpp b/servers/navigation_2d/navigation_server_2d.cpp index e5d252eb0322..70a78688b989 100644 --- a/servers/navigation_2d/navigation_server_2d.cpp +++ b/servers/navigation_2d/navigation_server_2d.cpp @@ -35,9 +35,16 @@ #include "core/config/project_settings.h" #include "core/object/callable_mp.h" #include "core/object/class_db.h" -#include "scene/main/node.h" // IWYU pragma: keep. Needed to bind `Node *` arg. #include "servers/navigation_2d/navigation_server_2d_dummy.h" +// IWYU pragma: begin_keep. Needed to for method bindings. +#include "scene/main/node.h" +#include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" +#include "scene/resources/2d/navigation_polygon.h" +#include "servers/navigation_2d/navigation_path_query_parameters_2d.h" +#include "servers/navigation_2d/navigation_path_query_result_2d.h" +// IWYU pragma: end_keep. + NavigationServer2D *NavigationServer2D::singleton = nullptr; RWLock NavigationServer2D::geometry_parser_rwlock; diff --git a/servers/navigation_2d/navigation_server_2d.h b/servers/navigation_2d/navigation_server_2d.h index 8f9332913453..e8b5eea4f66b 100644 --- a/servers/navigation_2d/navigation_server_2d.h +++ b/servers/navigation_2d/navigation_server_2d.h @@ -30,12 +30,15 @@ #pragma once +#include "core/object/object.h" +#include "core/os/rw_lock.h" #include "core/templates/rid_owner.h" -#include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" -#include "scene/resources/2d/navigation_polygon.h" -#include "servers/navigation_2d/navigation_path_query_parameters_2d.h" -#include "servers/navigation_2d/navigation_path_query_result_2d.h" +#include "core/variant/type_info.h" +class NavigationMeshSourceGeometryData2D; +class NavigationPathQueryParameters2D; +class NavigationPathQueryResult2D; +class NavigationPolygon; class Node; #ifdef CLIPPER2_ENABLED diff --git a/servers/navigation_2d/navigation_server_2d_dummy.h b/servers/navigation_2d/navigation_server_2d_dummy.h index fb8c2d8b62cd..be0086e20140 100644 --- a/servers/navigation_2d/navigation_server_2d_dummy.h +++ b/servers/navigation_2d/navigation_server_2d_dummy.h @@ -30,6 +30,8 @@ #pragma once +#include "core/variant/typed_array.h" +#include "scene/resources/2d/navigation_polygon.h" #include "servers/navigation_2d/navigation_server_2d.h" class NavigationServer2DDummy : public NavigationServer2D { diff --git a/servers/navigation_3d/navigation_server_3d.compat.inc b/servers/navigation_3d/navigation_server_3d.compat.inc index 250320be5477..57af7d8fadd0 100644 --- a/servers/navigation_3d/navigation_server_3d.compat.inc +++ b/servers/navigation_3d/navigation_server_3d.compat.inc @@ -33,6 +33,8 @@ #include "navigation_server_3d.h" #include "core/object/class_db.h" +#include "servers/navigation_3d/navigation_path_query_parameters_3d.h" +#include "servers/navigation_3d/navigation_path_query_result_3d.h" Vector NavigationServer3D::_map_get_path_bind_compat_100129(RID p_map, Vector3 p_origin, Vector3 p_destination, bool p_optimize, uint32_t p_navigation_layers) const { return const_cast(this)->map_get_path(p_map, p_origin, p_destination, p_optimize, p_navigation_layers); diff --git a/servers/navigation_3d/navigation_server_3d.cpp b/servers/navigation_3d/navigation_server_3d.cpp index 3b4f8cd1b232..d1d3cdc14162 100644 --- a/servers/navigation_3d/navigation_server_3d.cpp +++ b/servers/navigation_3d/navigation_server_3d.cpp @@ -35,9 +35,17 @@ #include "core/config/project_settings.h" #include "core/object/callable_mp.h" #include "core/object/class_db.h" -#include "scene/main/node.h" // IWYU pragma: keep. Needed to bind `Node *` arg. #include "servers/navigation_3d/navigation_server_3d_dummy.h" +// IWYU pragma: begin_keep. Needed to for method bindings. +#include "scene/main/node.h" +#include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" +#include "scene/resources/navigation_mesh.h" +#include "servers/navigation_3d/navigation_constants_3d.h" +#include "servers/navigation_3d/navigation_path_query_parameters_3d.h" +#include "servers/navigation_3d/navigation_path_query_result_3d.h" +// IWYU pragma: end_keep. + NavigationServer3D *NavigationServer3D::singleton = nullptr; RWLock NavigationServer3D::geometry_parser_rwlock; diff --git a/servers/navigation_3d/navigation_server_3d.h b/servers/navigation_3d/navigation_server_3d.h index f886c5638ac3..922aa07b9e8c 100644 --- a/servers/navigation_3d/navigation_server_3d.h +++ b/servers/navigation_3d/navigation_server_3d.h @@ -30,12 +30,19 @@ #pragma once +#include "core/object/object.h" +#include "core/os/rw_lock.h" #include "core/templates/rid_owner.h" -#include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" -#include "scene/resources/navigation_mesh.h" -#include "servers/navigation_3d/navigation_path_query_parameters_3d.h" -#include "servers/navigation_3d/navigation_path_query_result_3d.h" +#include "core/variant/type_info.h" +#ifdef DEBUG_ENABLED +#include "scene/resources/material.h" +#endif + +class NavigationMesh; +class NavigationMeshSourceGeometryData3D; +class NavigationPathQueryParameters3D; +class NavigationPathQueryResult3D; class Node; struct NavMeshGeometryParser3D { diff --git a/servers/navigation_3d/navigation_server_3d_dummy.h b/servers/navigation_3d/navigation_server_3d_dummy.h index 686d91c8ebdb..b0cd931c392d 100644 --- a/servers/navigation_3d/navigation_server_3d_dummy.h +++ b/servers/navigation_3d/navigation_server_3d_dummy.h @@ -30,6 +30,8 @@ #pragma once +#include "core/variant/typed_array.h" +#include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" class NavigationServer3DDummy : public NavigationServer3D { diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp index 0ec7dafbee9a..1ed6aad0401b 100644 --- a/servers/register_server_types.cpp +++ b/servers/register_server_types.cpp @@ -86,6 +86,8 @@ // 2D physics and navigation. #ifndef NAVIGATION_2D_DISABLED +#include "servers/navigation_2d/navigation_path_query_parameters_2d.h" +#include "servers/navigation_2d/navigation_path_query_result_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" #endif // NAVIGATION_2D_DISABLED #ifndef PHYSICS_2D_DISABLED @@ -96,6 +98,8 @@ // 3D physics and navigation. #ifndef NAVIGATION_3D_DISABLED +#include "servers/navigation_3d/navigation_path_query_parameters_3d.h" +#include "servers/navigation_3d/navigation_path_query_result_3d.h" #include "servers/navigation_3d/navigation_server_3d.h" #endif // NAVIGATION_3D_DISABLED #ifndef PHYSICS_3D_DISABLED diff --git a/servers/rendering/shader_preprocessor.cpp b/servers/rendering/shader_preprocessor.cpp index 2fc44cb81080..2b0c446b7d43 100644 --- a/servers/rendering/shader_preprocessor.cpp +++ b/servers/rendering/shader_preprocessor.cpp @@ -30,8 +30,8 @@ #include "shader_preprocessor.h" -#include "core/math/expression.h" #include "core/os/os.h" +#include "scene/resources/shader_include.h" #include "servers/rendering/shader_expression.h" const char32_t CURSOR = 0xFFFF; diff --git a/servers/rendering/shader_preprocessor.h b/servers/rendering/shader_preprocessor.h index b3440fe4c583..b9c5189fee43 100644 --- a/servers/rendering/shader_preprocessor.h +++ b/servers/rendering/shader_preprocessor.h @@ -30,13 +30,15 @@ #pragma once +#include "core/object/ref_counted.h" #include "core/object/script_language.h" #include "core/string/ustring.h" #include "core/templates/list.h" #include "core/templates/local_vector.h" #include "core/templates/rb_map.h" #include "core/templates/rb_set.h" -#include "scene/resources/shader_include.h" + +class ShaderInclude; class ShaderPreprocessor { public: diff --git a/tests/scene/test_navigation_region_3d.cpp b/tests/scene/test_navigation_region_3d.cpp index f43354678ad5..f18180e368be 100644 --- a/tests/scene/test_navigation_region_3d.cpp +++ b/tests/scene/test_navigation_region_3d.cpp @@ -41,6 +41,7 @@ TEST_FORCE_LINK(test_navigation_region_3d) #include "scene/main/scene_tree.h" #include "scene/main/window.h" #include "scene/resources/3d/primitive_meshes.h" +#include "scene/resources/navigation_mesh.h" namespace TestNavigationRegion3D { diff --git a/tests/servers/test_navigation_server_2d.cpp b/tests/servers/test_navigation_server_2d.cpp index e42fc7ab4897..7a34584338df 100644 --- a/tests/servers/test_navigation_server_2d.cpp +++ b/tests/servers/test_navigation_server_2d.cpp @@ -40,6 +40,10 @@ TEST_FORCE_LINK(test_navigation_server_2d) #include "scene/2d/polygon_2d.h" #include "scene/main/scene_tree.h" #include "scene/main/window.h" +#include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" +#include "scene/resources/2d/navigation_polygon.h" +#include "servers/navigation_2d/navigation_path_query_parameters_2d.h" +#include "servers/navigation_2d/navigation_path_query_result_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" #include "tests/signal_watcher.h" diff --git a/tests/servers/test_navigation_server_3d.cpp b/tests/servers/test_navigation_server_3d.cpp index 062f6f8ce498..111d25eb2f6a 100644 --- a/tests/servers/test_navigation_server_3d.cpp +++ b/tests/servers/test_navigation_server_3d.cpp @@ -40,7 +40,11 @@ TEST_FORCE_LINK(test_navigation_server_3d) #include "scene/3d/mesh_instance_3d.h" #include "scene/main/scene_tree.h" #include "scene/main/window.h" +#include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" #include "scene/resources/3d/primitive_meshes.h" +#include "scene/resources/navigation_mesh.h" +#include "servers/navigation_3d/navigation_path_query_parameters_3d.h" +#include "servers/navigation_3d/navigation_path_query_result_3d.h" #include "servers/navigation_3d/navigation_server_3d.h" #include "tests/signal_watcher.h"