Skip to content

Commit 437aa5f

Browse files
committed
Improve Path2D/3D debug customization and performance
Adds debug customization options to toggle color, fish bones and detail global or per Path2D/3D nodes.
1 parent 2d3bdca commit 437aa5f

File tree

16 files changed

+1598
-247
lines changed

16 files changed

+1598
-247
lines changed

doc/classes/Path2D.xml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,55 @@
99
</description>
1010
<tutorials>
1111
</tutorials>
12+
<methods>
13+
<method name="is_debug_global_enabled" qualifiers="const">
14+
<return type="bool" />
15+
<description>
16+
Returns [code]true[/code] if the global path debug is enabled.
17+
</description>
18+
</method>
19+
<method name="set_debug_global_enabled">
20+
<return type="void" />
21+
<param index="0" name="enabled" type="bool" />
22+
<description>
23+
If [code]true[/code], enables the global path debug.
24+
</description>
25+
</method>
26+
</methods>
1227
<members>
1328
<member name="curve" type="Curve2D" setter="set_curve" getter="get_curve">
1429
A [Curve2D] describing the path.
1530
</member>
31+
<member name="debug_custom_color" type="Color" setter="set_debug_custom_color" getter="get_debug_custom_color" default="Color(1, 1, 1, 1)">
32+
The custom color used to draw the path debug when [member debug_custom_enabled] is enabled.
33+
</member>
34+
<member name="debug_custom_enabled" type="bool" setter="set_debug_custom_enabled" getter="get_debug_custom_enabled" default="false">
35+
If [code]true[/code], the debug custom properties override the global defaults.
36+
</member>
37+
<member name="debug_custom_fish_bones_enabled" type="bool" setter="set_debug_custom_fish_bones_enabled" getter="get_debug_custom_fish_bones_enabled" default="true">
38+
If [code]true[/code], the debug display adds additional fish bones along the path segments to visualize direction. Used when [member debug_custom_sampling_enabled] is enabled.
39+
</member>
40+
<member name="debug_custom_fish_bones_interval" type="int" setter="set_debug_custom_fish_bones_interval" getter="get_debug_custom_fish_bones_interval" default="4">
41+
The custom interval for adding fish bones to the path sample points. E.g. a value of 4 places a fish bone for every 4-th sampled point. Used when [member debug_custom_sampling_enabled] is enabled.
42+
</member>
43+
<member name="debug_custom_sample_interval" type="float" setter="set_debug_custom_sample_interval" getter="get_debug_custom_sample_interval" default="5.0">
44+
The custom interval for sampling the curve for path sample points. Used when [member debug_custom_sampling_enabled] is enabled.
45+
</member>
46+
<member name="debug_custom_sampling_enabled" type="bool" setter="set_debug_custom_sampling_enabled" getter="get_debug_custom_sampling_enabled" default="true">
47+
If [code]true[/code], the debug display uses [member debug_custom_sample_interval] as the interval for sampling the curve for path sample points. Used when [member debug_custom_sampling_enabled] is enabled.
48+
</member>
49+
<member name="debug_enabled" type="bool" setter="set_debug_enabled" getter="get_debug_enabled" default="true">
50+
Used at runtime to toggle debug when "Visible Paths" is enabled in the Editor Debug menu. Inside the Editor debug is always enabled.
51+
</member>
52+
<member name="debug_sampling_enabled" type="bool" setter="set_debug_sampling_enabled" getter="get_debug_sampling_enabled" default="true">
53+
If [code]true[/code], the debug display samples the curve for path sample points, else the raw path points are used. Used when [member debug_custom_sampling_enabled] is disabled.
54+
</member>
1655
</members>
56+
<signals>
57+
<signal name="curve_changed">
58+
<description>
59+
Emitted when the [member curve] changes.
60+
</description>
61+
</signal>
62+
</signals>
1763
</class>

doc/classes/Path3D.xml

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,48 @@
99
</description>
1010
<tutorials>
1111
</tutorials>
12+
<methods>
13+
<method name="is_debug_global_enabled" qualifiers="const">
14+
<return type="bool" />
15+
<description>
16+
Returns [code]true[/code] if the global path debug is enabled.
17+
</description>
18+
</method>
19+
<method name="set_debug_global_enabled">
20+
<return type="void" />
21+
<param index="0" name="enabled" type="bool" />
22+
<description>
23+
If [code]true[/code], enables the global path debug.
24+
</description>
25+
</method>
26+
</methods>
1227
<members>
1328
<member name="curve" type="Curve3D" setter="set_curve" getter="get_curve">
1429
A [Curve3D] describing the path.
1530
</member>
16-
<member name="debug_custom_color" type="Color" setter="set_debug_custom_color" getter="get_debug_custom_color" default="Color(0, 0, 0, 1)">
17-
The custom color to use to draw the shape in the editor.
18-
If set to [code]Color(0.0, 0.0, 0.0)[/code] (by default), the color set in EditorSettings is used.
31+
<member name="debug_custom_color" type="Color" setter="set_debug_custom_color" getter="get_debug_custom_color" default="Color(1, 1, 1, 1)">
32+
The custom color used to draw the path debug when [member debug_custom_enabled] is enabled.
33+
</member>
34+
<member name="debug_custom_enabled" type="bool" setter="set_debug_custom_enabled" getter="get_debug_custom_enabled" default="false">
35+
If [code]true[/code], the debug custom properties override the global defaults.
36+
</member>
37+
<member name="debug_custom_fish_bones_enabled" type="bool" setter="set_debug_custom_fish_bones_enabled" getter="get_debug_custom_fish_bones_enabled" default="true">
38+
If [code]true[/code], the debug display adds additional fish bones along the path segments to visualize direction. Used when [member debug_custom_sampling_enabled] is enabled.
39+
</member>
40+
<member name="debug_custom_fish_bones_interval" type="int" setter="set_debug_custom_fish_bones_interval" getter="get_debug_custom_fish_bones_interval" default="4">
41+
The custom interval for adding fish bones to the path sample points. E.g. a value of 4 places a fish bone for every 4-th sampled point. Used when [member debug_custom_sampling_enabled] is enabled.
42+
</member>
43+
<member name="debug_custom_sample_interval" type="float" setter="set_debug_custom_sample_interval" getter="get_debug_custom_sample_interval" default="0.1">
44+
The custom interval for sampling the curve for path sample points. Used when [member debug_custom_sampling_enabled] is enabled.
45+
</member>
46+
<member name="debug_custom_sampling_enabled" type="bool" setter="set_debug_custom_sampling_enabled" getter="get_debug_custom_sampling_enabled" default="true">
47+
If [code]true[/code], the debug display uses [member debug_custom_sample_interval] as the interval for sampling the curve for path sample points. Used when [member debug_custom_sampling_enabled] is enabled.
48+
</member>
49+
<member name="debug_enabled" type="bool" setter="set_debug_enabled" getter="get_debug_enabled" default="true">
50+
Used at runtime to toggle debug when "Visible Paths" is enabled in the Editor Debug menu. Inside the Editor debug is always enabled.
51+
</member>
52+
<member name="debug_sampling_enabled" type="bool" setter="set_debug_sampling_enabled" getter="get_debug_sampling_enabled" default="true">
53+
If [code]true[/code], the debug display samples the curve for path sample points, else the raw path points are used. Used when [member debug_custom_sampling_enabled] is disabled.
1954
</member>
2055
</members>
2156
<signals>

doc/classes/ProjectSettings.xml

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -868,11 +868,29 @@
868868
<member name="debug/shapes/navigation/3d/link_connection_disabled_color" type="Color" setter="" getter="" default="Color(0.5, 0.5, 0.5, 1)">
869869
Color to use to display disabled navigation link connections, visible when "Visible Navigation" is enabled in the Debug menu.
870870
</member>
871-
<member name="debug/shapes/paths/geometry_color" type="Color" setter="" getter="" default="Color(0.1, 1, 0.7, 0.4)">
872-
Color of the curve path geometry, visible when "Visible Paths" is enabled in the Debug menu.
871+
<member name="debug/shapes/paths/2d/fish_bones_enabled" type="bool" setter="" getter="" default="true">
872+
If [code]true[/code], [Path2D] curve paths will by default add additional fish bones along the path segments to visualize direction.
873873
</member>
874-
<member name="debug/shapes/paths/geometry_width" type="float" setter="" getter="" default="2.0">
875-
Line width of the curve path geometry, visible when "Visible Paths" is enabled in the Debug menu.
874+
<member name="debug/shapes/paths/2d/fish_bones_interval" type="int" setter="" getter="" default="4">
875+
The default [Path2D] curve path sample point interval in which fish bones are places along the path. E.g. a value of 4 places a fish bone for every 4-th sampled point along path.
876+
</member>
877+
<member name="debug/shapes/paths/2d/geometry_color" type="Color" setter="" getter="" default="Color(0.1, 1, 0.7, 0.4)">
878+
Color of the [Path2D] curve path geometry, visible when "Visible Paths" is enabled in the Debug menu.
879+
</member>
880+
<member name="debug/shapes/paths/2d/sample_interval_2d" type="float" setter="" getter="" default="5.0">
881+
The default [Path2D] curve path sample interval in which points are sampled for debug display.
882+
</member>
883+
<member name="debug/shapes/paths/3d/fish_bones_enabled" type="bool" setter="" getter="" default="true">
884+
If [code]true[/code], [Path3D] curve paths will by default add additional fish bones along the path segments to visualize direction.
885+
</member>
886+
<member name="debug/shapes/paths/3d/fish_bones_interval" type="int" setter="" getter="" default="4">
887+
The default [Path3D] curve path sample point interval in which fish bones are places along the path. E.g. a value of 4 places a fish bone for every 4-th sampled point along path.
888+
</member>
889+
<member name="debug/shapes/paths/3d/geometry_color" type="Color" setter="" getter="" default="Color(0.1, 1, 0.7, 0.4)">
890+
Color of the [Path3D] curve path geometry, visible when "Visible Paths" is enabled in the Debug menu.
891+
</member>
892+
<member name="debug/shapes/paths/3d/sample_interval" type="float" setter="" getter="" default="0.1">
893+
The default [Path3D] curve path sample interval in which points are sampled for debug display.
876894
</member>
877895
<member name="display/display_server/driver" type="String" setter="" getter="">
878896
Sets the driver to be used by the display server. This property can not be edited directly, instead, set the driver using the platform-specific overrides.

doc/classes/SceneTree.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@
260260
If [code]true[/code], navigation polygons will be visible when running the game from the editor for debugging purposes.
261261
[b]Note:[/b] This property is not designed to be changed at run-time. Changing the value of [member debug_navigation_hint] while the project is running will not have the desired effect.
262262
</member>
263-
<member name="debug_paths_hint" type="bool" setter="set_debug_paths_hint" getter="is_debugging_paths_hint" default="false">
263+
<member name="debug_paths_hint" type="bool" setter="set_debug_paths_hint" getter="is_debugging_paths_hint" default="true">
264264
If [code]true[/code], curves from [Path2D] and [Path3D] nodes will be visible when running the game from the editor for debugging purposes.
265265
[b]Note:[/b] This property is not designed to be changed at run-time. Changing the value of [member debug_paths_hint] while the project is running will not have the desired effect.
266266
</member>

0 commit comments

Comments
 (0)