class_navigationmesh.rst 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/NavigationMesh.xml.
  6. .. _class_NavigationMesh:
  7. NavigationMesh
  8. ==============
  9. **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
  10. A mesh to approximate the walkable areas and obstacles.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. A navigation mesh is a collection of polygons that define which areas of an environment are traversable to aid agents in pathfinding through complicated spaces.
  15. .. rst-class:: classref-introduction-group
  16. Tutorials
  17. ---------
  18. - `3D Navmesh Demo <https://godotengine.org/asset-library/asset/124>`__
  19. .. rst-class:: classref-reftable-group
  20. Properties
  21. ----------
  22. .. table::
  23. :widths: auto
  24. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  25. | :ref:`float<class_float>` | :ref:`agent_height<class_NavigationMesh_property_agent_height>` | ``1.5`` |
  26. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  27. | :ref:`float<class_float>` | :ref:`agent_max_climb<class_NavigationMesh_property_agent_max_climb>` | ``0.25`` |
  28. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  29. | :ref:`float<class_float>` | :ref:`agent_max_slope<class_NavigationMesh_property_agent_max_slope>` | ``45.0`` |
  30. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  31. | :ref:`float<class_float>` | :ref:`agent_radius<class_NavigationMesh_property_agent_radius>` | ``0.5`` |
  32. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  33. | :ref:`float<class_float>` | :ref:`cell_height<class_NavigationMesh_property_cell_height>` | ``0.25`` |
  34. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  35. | :ref:`float<class_float>` | :ref:`cell_size<class_NavigationMesh_property_cell_size>` | ``0.25`` |
  36. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  37. | :ref:`float<class_float>` | :ref:`detail_sample_distance<class_NavigationMesh_property_detail_sample_distance>` | ``6.0`` |
  38. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  39. | :ref:`float<class_float>` | :ref:`detail_sample_max_error<class_NavigationMesh_property_detail_sample_max_error>` | ``1.0`` |
  40. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  41. | :ref:`float<class_float>` | :ref:`edge_max_error<class_NavigationMesh_property_edge_max_error>` | ``1.3`` |
  42. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  43. | :ref:`float<class_float>` | :ref:`edge_max_length<class_NavigationMesh_property_edge_max_length>` | ``12.0`` |
  44. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  45. | :ref:`AABB<class_AABB>` | :ref:`filter_baking_aabb<class_NavigationMesh_property_filter_baking_aabb>` | ``AABB( 0, 0, 0, 0, 0, 0 )`` |
  46. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  47. | :ref:`Vector3<class_Vector3>` | :ref:`filter_baking_aabb_offset<class_NavigationMesh_property_filter_baking_aabb_offset>` | ``Vector3( 0, 0, 0 )`` |
  48. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  49. | :ref:`bool<class_bool>` | :ref:`filter_ledge_spans<class_NavigationMesh_property_filter_ledge_spans>` | ``false`` |
  50. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  51. | :ref:`bool<class_bool>` | :ref:`filter_low_hanging_obstacles<class_NavigationMesh_property_filter_low_hanging_obstacles>` | ``false`` |
  52. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  53. | :ref:`bool<class_bool>` | :ref:`filter_walkable_low_height_spans<class_NavigationMesh_property_filter_walkable_low_height_spans>` | ``false`` |
  54. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  55. | :ref:`int<class_int>` | :ref:`geometry_collision_mask<class_NavigationMesh_property_geometry_collision_mask>` | ``4294967295`` |
  56. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  57. | :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` | :ref:`geometry_parsed_geometry_type<class_NavigationMesh_property_geometry_parsed_geometry_type>` | ``0`` |
  58. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  59. | :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` | :ref:`geometry_source_geometry_mode<class_NavigationMesh_property_geometry_source_geometry_mode>` | ``0`` |
  60. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  61. | :ref:`String<class_String>` | :ref:`geometry_source_group_name<class_NavigationMesh_property_geometry_source_group_name>` | ``"navmesh"`` |
  62. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  63. | :ref:`float<class_float>` | :ref:`polygon_verts_per_poly<class_NavigationMesh_property_polygon_verts_per_poly>` | ``6.0`` |
  64. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  65. | :ref:`float<class_float>` | :ref:`region_merge_size<class_NavigationMesh_property_region_merge_size>` | ``20.0`` |
  66. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  67. | :ref:`float<class_float>` | :ref:`region_min_size<class_NavigationMesh_property_region_min_size>` | ``2.0`` |
  68. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  69. | :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` | :ref:`sample_partition_type<class_NavigationMesh_property_sample_partition_type>` | ``0`` |
  70. +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+------------------------------+
  71. .. rst-class:: classref-reftable-group
  72. Methods
  73. -------
  74. .. table::
  75. :widths: auto
  76. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  77. | void | :ref:`add_polygon<class_NavigationMesh_method_add_polygon>` **(** :ref:`PoolIntArray<class_PoolIntArray>` polygon **)** |
  78. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  79. | void | :ref:`clear_polygons<class_NavigationMesh_method_clear_polygons>` **(** **)** |
  80. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  81. | void | :ref:`create_from_mesh<class_NavigationMesh_method_create_from_mesh>` **(** :ref:`Mesh<class_Mesh>` mesh **)** |
  82. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. | :ref:`bool<class_bool>` | :ref:`get_collision_mask_bit<class_NavigationMesh_method_get_collision_mask_bit>` **(** :ref:`int<class_int>` bit **)** |const| |
  84. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | :ref:`PoolIntArray<class_PoolIntArray>` | :ref:`get_polygon<class_NavigationMesh_method_get_polygon>` **(** :ref:`int<class_int>` idx **)** |
  86. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | :ref:`int<class_int>` | :ref:`get_polygon_count<class_NavigationMesh_method_get_polygon_count>` **(** **)** |const| |
  88. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`get_vertices<class_NavigationMesh_method_get_vertices>` **(** **)** |const| |
  90. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | void | :ref:`set_collision_mask_bit<class_NavigationMesh_method_set_collision_mask_bit>` **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)** |
  92. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | void | :ref:`set_vertices<class_NavigationMesh_method_set_vertices>` **(** :ref:`PoolVector3Array<class_PoolVector3Array>` vertices **)** |
  94. +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. .. rst-class:: classref-section-separator
  96. ----
  97. .. rst-class:: classref-descriptions-group
  98. Enumerations
  99. ------------
  100. .. _enum_NavigationMesh_SamplePartitionType:
  101. .. rst-class:: classref-enumeration
  102. enum **SamplePartitionType**:
  103. .. _class_NavigationMesh_constant_SAMPLE_PARTITION_WATERSHED:
  104. .. rst-class:: classref-enumeration-constant
  105. :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` **SAMPLE_PARTITION_WATERSHED** = ``0``
  106. Watershed partitioning. Generally the best choice if you precompute the navigation mesh, use this if you have large open areas.
  107. .. _class_NavigationMesh_constant_SAMPLE_PARTITION_MONOTONE:
  108. .. rst-class:: classref-enumeration-constant
  109. :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` **SAMPLE_PARTITION_MONOTONE** = ``1``
  110. Monotone partitioning. Use this if you want fast navigation mesh generation.
  111. .. _class_NavigationMesh_constant_SAMPLE_PARTITION_LAYERS:
  112. .. rst-class:: classref-enumeration-constant
  113. :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` **SAMPLE_PARTITION_LAYERS** = ``2``
  114. Layer partitioning. Good choice to use for tiled navigation mesh with medium and small sized tiles.
  115. .. _class_NavigationMesh_constant_SAMPLE_PARTITION_MAX:
  116. .. rst-class:: classref-enumeration-constant
  117. :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` **SAMPLE_PARTITION_MAX** = ``3``
  118. Represents the size of the :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` enum.
  119. .. rst-class:: classref-item-separator
  120. ----
  121. .. _enum_NavigationMesh_ParsedGeometryType:
  122. .. rst-class:: classref-enumeration
  123. enum **ParsedGeometryType**:
  124. .. _class_NavigationMesh_constant_PARSED_GEOMETRY_MESH_INSTANCES:
  125. .. rst-class:: classref-enumeration-constant
  126. :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` **PARSED_GEOMETRY_MESH_INSTANCES** = ``0``
  127. Parses mesh instances as geometry. This includes :ref:`MeshInstance<class_MeshInstance>`, :ref:`CSGShape<class_CSGShape>`, and :ref:`GridMap<class_GridMap>` nodes.
  128. .. _class_NavigationMesh_constant_PARSED_GEOMETRY_STATIC_COLLIDERS:
  129. .. rst-class:: classref-enumeration-constant
  130. :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` **PARSED_GEOMETRY_STATIC_COLLIDERS** = ``1``
  131. Parses :ref:`StaticBody<class_StaticBody>` colliders as geometry. The collider should be in any of the layers specified by :ref:`geometry_collision_mask<class_NavigationMesh_property_geometry_collision_mask>`.
  132. .. _class_NavigationMesh_constant_PARSED_GEOMETRY_BOTH:
  133. .. rst-class:: classref-enumeration-constant
  134. :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` **PARSED_GEOMETRY_BOTH** = ``2``
  135. Both :ref:`PARSED_GEOMETRY_MESH_INSTANCES<class_NavigationMesh_constant_PARSED_GEOMETRY_MESH_INSTANCES>` and :ref:`PARSED_GEOMETRY_STATIC_COLLIDERS<class_NavigationMesh_constant_PARSED_GEOMETRY_STATIC_COLLIDERS>`.
  136. .. _class_NavigationMesh_constant_PARSED_GEOMETRY_MAX:
  137. .. rst-class:: classref-enumeration-constant
  138. :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` **PARSED_GEOMETRY_MAX** = ``3``
  139. Represents the size of the :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` enum.
  140. .. rst-class:: classref-item-separator
  141. ----
  142. .. _enum_NavigationMesh_SourceGeometryMode:
  143. .. rst-class:: classref-enumeration
  144. enum **SourceGeometryMode**:
  145. .. _class_NavigationMesh_constant_SOURCE_GEOMETRY_NAVMESH_CHILDREN:
  146. .. rst-class:: classref-enumeration-constant
  147. :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` **SOURCE_GEOMETRY_NAVMESH_CHILDREN** = ``0``
  148. Scans the child nodes of :ref:`NavigationMeshInstance<class_NavigationMeshInstance>` recursively for geometry.
  149. .. _class_NavigationMesh_constant_SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN:
  150. .. rst-class:: classref-enumeration-constant
  151. :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` **SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN** = ``1``
  152. Scans nodes in a group and their child nodes recursively for geometry. The group is specified by :ref:`geometry_source_group_name<class_NavigationMesh_property_geometry_source_group_name>`.
  153. .. _class_NavigationMesh_constant_SOURCE_GEOMETRY_GROUPS_EXPLICIT:
  154. .. rst-class:: classref-enumeration-constant
  155. :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` **SOURCE_GEOMETRY_GROUPS_EXPLICIT** = ``2``
  156. Uses nodes in a group for geometry. The group is specified by :ref:`geometry_source_group_name<class_NavigationMesh_property_geometry_source_group_name>`.
  157. .. _class_NavigationMesh_constant_SOURCE_GEOMETRY_MAX:
  158. .. rst-class:: classref-enumeration-constant
  159. :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` **SOURCE_GEOMETRY_MAX** = ``3``
  160. Represents the size of the :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` enum.
  161. .. rst-class:: classref-section-separator
  162. ----
  163. .. rst-class:: classref-descriptions-group
  164. Property Descriptions
  165. ---------------------
  166. .. _class_NavigationMesh_property_agent_height:
  167. .. rst-class:: classref-property
  168. :ref:`float<class_float>` **agent_height** = ``1.5``
  169. .. rst-class:: classref-property-setget
  170. - void **set_agent_height** **(** :ref:`float<class_float>` value **)**
  171. - :ref:`float<class_float>` **get_agent_height** **(** **)**
  172. The minimum floor to ceiling height that will still allow the floor area to be considered walkable.
  173. \ **Note:** While baking, this value will be rounded up to the nearest multiple of :ref:`cell_height<class_NavigationMesh_property_cell_height>`.
  174. .. rst-class:: classref-item-separator
  175. ----
  176. .. _class_NavigationMesh_property_agent_max_climb:
  177. .. rst-class:: classref-property
  178. :ref:`float<class_float>` **agent_max_climb** = ``0.25``
  179. .. rst-class:: classref-property-setget
  180. - void **set_agent_max_climb** **(** :ref:`float<class_float>` value **)**
  181. - :ref:`float<class_float>` **get_agent_max_climb** **(** **)**
  182. The minimum ledge height that is considered to still be traversable.
  183. \ **Note:** While baking, this value will be rounded down to the nearest multiple of :ref:`cell_height<class_NavigationMesh_property_cell_height>`.
  184. .. rst-class:: classref-item-separator
  185. ----
  186. .. _class_NavigationMesh_property_agent_max_slope:
  187. .. rst-class:: classref-property
  188. :ref:`float<class_float>` **agent_max_slope** = ``45.0``
  189. .. rst-class:: classref-property-setget
  190. - void **set_agent_max_slope** **(** :ref:`float<class_float>` value **)**
  191. - :ref:`float<class_float>` **get_agent_max_slope** **(** **)**
  192. The maximum slope that is considered walkable, in degrees.
  193. .. rst-class:: classref-item-separator
  194. ----
  195. .. _class_NavigationMesh_property_agent_radius:
  196. .. rst-class:: classref-property
  197. :ref:`float<class_float>` **agent_radius** = ``0.5``
  198. .. rst-class:: classref-property-setget
  199. - void **set_agent_radius** **(** :ref:`float<class_float>` value **)**
  200. - :ref:`float<class_float>` **get_agent_radius** **(** **)**
  201. The distance to erode/shrink the walkable area of the heightfield away from obstructions.
  202. \ **Note:** While baking, this value will be rounded up to the nearest multiple of :ref:`cell_size<class_NavigationMesh_property_cell_size>`.
  203. .. rst-class:: classref-item-separator
  204. ----
  205. .. _class_NavigationMesh_property_cell_height:
  206. .. rst-class:: classref-property
  207. :ref:`float<class_float>` **cell_height** = ``0.25``
  208. .. rst-class:: classref-property-setget
  209. - void **set_cell_height** **(** :ref:`float<class_float>` value **)**
  210. - :ref:`float<class_float>` **get_cell_height** **(** **)**
  211. The Y axis cell size to use for fields.
  212. .. rst-class:: classref-item-separator
  213. ----
  214. .. _class_NavigationMesh_property_cell_size:
  215. .. rst-class:: classref-property
  216. :ref:`float<class_float>` **cell_size** = ``0.25``
  217. .. rst-class:: classref-property-setget
  218. - void **set_cell_size** **(** :ref:`float<class_float>` value **)**
  219. - :ref:`float<class_float>` **get_cell_size** **(** **)**
  220. The XZ plane cell size to use for fields.
  221. .. rst-class:: classref-item-separator
  222. ----
  223. .. _class_NavigationMesh_property_detail_sample_distance:
  224. .. rst-class:: classref-property
  225. :ref:`float<class_float>` **detail_sample_distance** = ``6.0``
  226. .. rst-class:: classref-property-setget
  227. - void **set_detail_sample_distance** **(** :ref:`float<class_float>` value **)**
  228. - :ref:`float<class_float>` **get_detail_sample_distance** **(** **)**
  229. The sampling distance to use when generating the detail mesh, in cell unit.
  230. .. rst-class:: classref-item-separator
  231. ----
  232. .. _class_NavigationMesh_property_detail_sample_max_error:
  233. .. rst-class:: classref-property
  234. :ref:`float<class_float>` **detail_sample_max_error** = ``1.0``
  235. .. rst-class:: classref-property-setget
  236. - void **set_detail_sample_max_error** **(** :ref:`float<class_float>` value **)**
  237. - :ref:`float<class_float>` **get_detail_sample_max_error** **(** **)**
  238. The maximum distance the detail mesh surface should deviate from heightfield, in cell unit.
  239. .. rst-class:: classref-item-separator
  240. ----
  241. .. _class_NavigationMesh_property_edge_max_error:
  242. .. rst-class:: classref-property
  243. :ref:`float<class_float>` **edge_max_error** = ``1.3``
  244. .. rst-class:: classref-property-setget
  245. - void **set_edge_max_error** **(** :ref:`float<class_float>` value **)**
  246. - :ref:`float<class_float>` **get_edge_max_error** **(** **)**
  247. The maximum distance a simplfied contour's border edges should deviate the original raw contour.
  248. .. rst-class:: classref-item-separator
  249. ----
  250. .. _class_NavigationMesh_property_edge_max_length:
  251. .. rst-class:: classref-property
  252. :ref:`float<class_float>` **edge_max_length** = ``12.0``
  253. .. rst-class:: classref-property-setget
  254. - void **set_edge_max_length** **(** :ref:`float<class_float>` value **)**
  255. - :ref:`float<class_float>` **get_edge_max_length** **(** **)**
  256. The maximum allowed length for contour edges along the border of the mesh.
  257. \ **Note:** While baking, this value will be rounded up to the nearest multiple of :ref:`cell_size<class_NavigationMesh_property_cell_size>`.
  258. .. rst-class:: classref-item-separator
  259. ----
  260. .. _class_NavigationMesh_property_filter_baking_aabb:
  261. .. rst-class:: classref-property
  262. :ref:`AABB<class_AABB>` **filter_baking_aabb** = ``AABB( 0, 0, 0, 0, 0, 0 )``
  263. .. rst-class:: classref-property-setget
  264. - void **set_filter_baking_aabb** **(** :ref:`AABB<class_AABB>` value **)**
  265. - :ref:`AABB<class_AABB>` **get_filter_baking_aabb** **(** **)**
  266. If the baking :ref:`AABB<class_AABB>` has a volume the navigation mesh baking will be restricted to its enclosing area.
  267. .. rst-class:: classref-item-separator
  268. ----
  269. .. _class_NavigationMesh_property_filter_baking_aabb_offset:
  270. .. rst-class:: classref-property
  271. :ref:`Vector3<class_Vector3>` **filter_baking_aabb_offset** = ``Vector3( 0, 0, 0 )``
  272. .. rst-class:: classref-property-setget
  273. - void **set_filter_baking_aabb_offset** **(** :ref:`Vector3<class_Vector3>` value **)**
  274. - :ref:`Vector3<class_Vector3>` **get_filter_baking_aabb_offset** **(** **)**
  275. The position offset applied to the :ref:`filter_baking_aabb<class_NavigationMesh_property_filter_baking_aabb>` :ref:`AABB<class_AABB>`.
  276. .. rst-class:: classref-item-separator
  277. ----
  278. .. _class_NavigationMesh_property_filter_ledge_spans:
  279. .. rst-class:: classref-property
  280. :ref:`bool<class_bool>` **filter_ledge_spans** = ``false``
  281. .. rst-class:: classref-property-setget
  282. - void **set_filter_ledge_spans** **(** :ref:`bool<class_bool>` value **)**
  283. - :ref:`bool<class_bool>` **get_filter_ledge_spans** **(** **)**
  284. If ``true``, marks spans that are ledges as non-walkable.
  285. .. rst-class:: classref-item-separator
  286. ----
  287. .. _class_NavigationMesh_property_filter_low_hanging_obstacles:
  288. .. rst-class:: classref-property
  289. :ref:`bool<class_bool>` **filter_low_hanging_obstacles** = ``false``
  290. .. rst-class:: classref-property-setget
  291. - void **set_filter_low_hanging_obstacles** **(** :ref:`bool<class_bool>` value **)**
  292. - :ref:`bool<class_bool>` **get_filter_low_hanging_obstacles** **(** **)**
  293. If ``true``, marks non-walkable spans as walkable if their maximum is within :ref:`agent_max_climb<class_NavigationMesh_property_agent_max_climb>` of a walkable neighbor.
  294. .. rst-class:: classref-item-separator
  295. ----
  296. .. _class_NavigationMesh_property_filter_walkable_low_height_spans:
  297. .. rst-class:: classref-property
  298. :ref:`bool<class_bool>` **filter_walkable_low_height_spans** = ``false``
  299. .. rst-class:: classref-property-setget
  300. - void **set_filter_walkable_low_height_spans** **(** :ref:`bool<class_bool>` value **)**
  301. - :ref:`bool<class_bool>` **get_filter_walkable_low_height_spans** **(** **)**
  302. If ``true``, marks walkable spans as not walkable if the clearance above the span is less than :ref:`agent_height<class_NavigationMesh_property_agent_height>`.
  303. .. rst-class:: classref-item-separator
  304. ----
  305. .. _class_NavigationMesh_property_geometry_collision_mask:
  306. .. rst-class:: classref-property
  307. :ref:`int<class_int>` **geometry_collision_mask** = ``4294967295``
  308. .. rst-class:: classref-property-setget
  309. - void **set_collision_mask** **(** :ref:`int<class_int>` value **)**
  310. - :ref:`int<class_int>` **get_collision_mask** **(** **)**
  311. The physics layers to scan for static colliders.
  312. Only used when :ref:`geometry_parsed_geometry_type<class_NavigationMesh_property_geometry_parsed_geometry_type>` is :ref:`PARSED_GEOMETRY_STATIC_COLLIDERS<class_NavigationMesh_constant_PARSED_GEOMETRY_STATIC_COLLIDERS>` or :ref:`PARSED_GEOMETRY_BOTH<class_NavigationMesh_constant_PARSED_GEOMETRY_BOTH>`.
  313. .. rst-class:: classref-item-separator
  314. ----
  315. .. _class_NavigationMesh_property_geometry_parsed_geometry_type:
  316. .. rst-class:: classref-property
  317. :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` **geometry_parsed_geometry_type** = ``0``
  318. .. rst-class:: classref-property-setget
  319. - void **set_parsed_geometry_type** **(** :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` value **)**
  320. - :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` **get_parsed_geometry_type** **(** **)**
  321. Determines which type of nodes will be parsed as geometry. See :ref:`ParsedGeometryType<enum_NavigationMesh_ParsedGeometryType>` for possible values.
  322. .. rst-class:: classref-item-separator
  323. ----
  324. .. _class_NavigationMesh_property_geometry_source_geometry_mode:
  325. .. rst-class:: classref-property
  326. :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` **geometry_source_geometry_mode** = ``0``
  327. .. rst-class:: classref-property-setget
  328. - void **set_source_geometry_mode** **(** :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` value **)**
  329. - :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` **get_source_geometry_mode** **(** **)**
  330. The source of the geometry used when baking. See :ref:`SourceGeometryMode<enum_NavigationMesh_SourceGeometryMode>` for possible values.
  331. .. rst-class:: classref-item-separator
  332. ----
  333. .. _class_NavigationMesh_property_geometry_source_group_name:
  334. .. rst-class:: classref-property
  335. :ref:`String<class_String>` **geometry_source_group_name** = ``"navmesh"``
  336. .. rst-class:: classref-property-setget
  337. - void **set_source_group_name** **(** :ref:`String<class_String>` value **)**
  338. - :ref:`String<class_String>` **get_source_group_name** **(** **)**
  339. The name of the group to scan for geometry.
  340. Only used when :ref:`geometry_source_geometry_mode<class_NavigationMesh_property_geometry_source_geometry_mode>` is :ref:`SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN<class_NavigationMesh_constant_SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN>` or :ref:`SOURCE_GEOMETRY_GROUPS_EXPLICIT<class_NavigationMesh_constant_SOURCE_GEOMETRY_GROUPS_EXPLICIT>`.
  341. .. rst-class:: classref-item-separator
  342. ----
  343. .. _class_NavigationMesh_property_polygon_verts_per_poly:
  344. .. rst-class:: classref-property
  345. :ref:`float<class_float>` **polygon_verts_per_poly** = ``6.0``
  346. .. rst-class:: classref-property-setget
  347. - void **set_verts_per_poly** **(** :ref:`float<class_float>` value **)**
  348. - :ref:`float<class_float>` **get_verts_per_poly** **(** **)**
  349. The maximum number of vertices allowed for polygons generated during the contour to polygon conversion process.
  350. .. rst-class:: classref-item-separator
  351. ----
  352. .. _class_NavigationMesh_property_region_merge_size:
  353. .. rst-class:: classref-property
  354. :ref:`float<class_float>` **region_merge_size** = ``20.0``
  355. .. rst-class:: classref-property-setget
  356. - void **set_region_merge_size** **(** :ref:`float<class_float>` value **)**
  357. - :ref:`float<class_float>` **get_region_merge_size** **(** **)**
  358. Any regions with a size smaller than this will be merged with larger regions if possible.
  359. \ **Note:** This value will be squared to calculate the number of cells. For example, a value of 20 will set the number of cells to 400.
  360. .. rst-class:: classref-item-separator
  361. ----
  362. .. _class_NavigationMesh_property_region_min_size:
  363. .. rst-class:: classref-property
  364. :ref:`float<class_float>` **region_min_size** = ``2.0``
  365. .. rst-class:: classref-property-setget
  366. - void **set_region_min_size** **(** :ref:`float<class_float>` value **)**
  367. - :ref:`float<class_float>` **get_region_min_size** **(** **)**
  368. The minimum size of a region for it to be created.
  369. \ **Note:** This value will be squared to calculate the minimum number of cells allowed to form isolated island areas. For example, a value of 8 will set the number of cells to 64.
  370. .. rst-class:: classref-item-separator
  371. ----
  372. .. _class_NavigationMesh_property_sample_partition_type:
  373. .. rst-class:: classref-property
  374. :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` **sample_partition_type** = ``0``
  375. .. rst-class:: classref-property-setget
  376. - void **set_sample_partition_type** **(** :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` value **)**
  377. - :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` **get_sample_partition_type** **(** **)**
  378. Partitioning algorithm for creating the navigation mesh polys. See :ref:`SamplePartitionType<enum_NavigationMesh_SamplePartitionType>` for possible values.
  379. .. rst-class:: classref-section-separator
  380. ----
  381. .. rst-class:: classref-descriptions-group
  382. Method Descriptions
  383. -------------------
  384. .. _class_NavigationMesh_method_add_polygon:
  385. .. rst-class:: classref-method
  386. void **add_polygon** **(** :ref:`PoolIntArray<class_PoolIntArray>` polygon **)**
  387. Adds a polygon using the indices of the vertices you get when calling :ref:`get_vertices<class_NavigationMesh_method_get_vertices>`.
  388. .. rst-class:: classref-item-separator
  389. ----
  390. .. _class_NavigationMesh_method_clear_polygons:
  391. .. rst-class:: classref-method
  392. void **clear_polygons** **(** **)**
  393. Clears the array of polygons, but it doesn't clear the array of vertices.
  394. .. rst-class:: classref-item-separator
  395. ----
  396. .. _class_NavigationMesh_method_create_from_mesh:
  397. .. rst-class:: classref-method
  398. void **create_from_mesh** **(** :ref:`Mesh<class_Mesh>` mesh **)**
  399. Initializes the navigation mesh by setting the vertices and indices according to a :ref:`Mesh<class_Mesh>`.
  400. .. rst-class:: classref-item-separator
  401. ----
  402. .. _class_NavigationMesh_method_get_collision_mask_bit:
  403. .. rst-class:: classref-method
  404. :ref:`bool<class_bool>` **get_collision_mask_bit** **(** :ref:`int<class_int>` bit **)** |const|
  405. Returns whether the specified ``bit`` of the :ref:`geometry_collision_mask<class_NavigationMesh_property_geometry_collision_mask>` is set.
  406. .. rst-class:: classref-item-separator
  407. ----
  408. .. _class_NavigationMesh_method_get_polygon:
  409. .. rst-class:: classref-method
  410. :ref:`PoolIntArray<class_PoolIntArray>` **get_polygon** **(** :ref:`int<class_int>` idx **)**
  411. Returns a :ref:`PoolIntArray<class_PoolIntArray>` containing the indices of the vertices of a created polygon.
  412. .. rst-class:: classref-item-separator
  413. ----
  414. .. _class_NavigationMesh_method_get_polygon_count:
  415. .. rst-class:: classref-method
  416. :ref:`int<class_int>` **get_polygon_count** **(** **)** |const|
  417. Returns the number of polygons in the navigation mesh.
  418. .. rst-class:: classref-item-separator
  419. ----
  420. .. _class_NavigationMesh_method_get_vertices:
  421. .. rst-class:: classref-method
  422. :ref:`PoolVector3Array<class_PoolVector3Array>` **get_vertices** **(** **)** |const|
  423. Returns a :ref:`PoolVector3Array<class_PoolVector3Array>` containing all the vertices being used to create the polygons.
  424. .. rst-class:: classref-item-separator
  425. ----
  426. .. _class_NavigationMesh_method_set_collision_mask_bit:
  427. .. rst-class:: classref-method
  428. void **set_collision_mask_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**
  429. If ``value`` is ``true``, sets the specified ``bit`` in the :ref:`geometry_collision_mask<class_NavigationMesh_property_geometry_collision_mask>`.
  430. If ``value`` is ``false``, clears the specified ``bit`` in the :ref:`geometry_collision_mask<class_NavigationMesh_property_geometry_collision_mask>`.
  431. .. rst-class:: classref-item-separator
  432. ----
  433. .. _class_NavigationMesh_method_set_vertices:
  434. .. rst-class:: classref-method
  435. void **set_vertices** **(** :ref:`PoolVector3Array<class_PoolVector3Array>` vertices **)**
  436. Sets the vertices that can be then indexed to create polygons with the :ref:`add_polygon<class_NavigationMesh_method_add_polygon>` method.
  437. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  438. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  439. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  440. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`