class_mesh.rst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  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/Mesh.xml.
  6. .. _class_Mesh:
  7. Mesh
  8. ====
  9. **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
  10. **Inherited By:** :ref:`ArrayMesh<class_ArrayMesh>`, :ref:`PrimitiveMesh<class_PrimitiveMesh>`
  11. A :ref:`Resource<class_Resource>` that contains vertex array-based geometry.
  12. .. rst-class:: classref-introduction-group
  13. Description
  14. -----------
  15. Mesh is a type of :ref:`Resource<class_Resource>` that contains vertex array-based geometry, divided in *surfaces*. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials.
  16. .. rst-class:: classref-introduction-group
  17. Tutorials
  18. ---------
  19. - `3D Material Testers Demo <https://godotengine.org/asset-library/asset/123>`__
  20. - `3D Kinematic Character Demo <https://godotengine.org/asset-library/asset/126>`__
  21. - `3D Platformer Demo <https://godotengine.org/asset-library/asset/125>`__
  22. - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
  23. .. rst-class:: classref-reftable-group
  24. Properties
  25. ----------
  26. .. table::
  27. :widths: auto
  28. +-------------------------------+-------------------------------------------------------------------+---------------------+
  29. | :ref:`Vector2<class_Vector2>` | :ref:`lightmap_size_hint<class_Mesh_property_lightmap_size_hint>` | ``Vector2( 0, 0 )`` |
  30. +-------------------------------+-------------------------------------------------------------------+---------------------+
  31. .. rst-class:: classref-reftable-group
  32. Methods
  33. -------
  34. .. table::
  35. :widths: auto
  36. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | :ref:`Shape<class_Shape>` | :ref:`create_convex_shape<class_Mesh_method_create_convex_shape>` **(** :ref:`bool<class_bool>` clean=true, :ref:`bool<class_bool>` simplify=false **)** |const| |
  38. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`Mesh<class_Mesh>` | :ref:`create_outline<class_Mesh_method_create_outline>` **(** :ref:`float<class_float>` margin **)** |const| |
  40. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | :ref:`Shape<class_Shape>` | :ref:`create_trimesh_shape<class_Mesh_method_create_trimesh_shape>` **(** **)** |const| |
  42. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. | :ref:`TriangleMesh<class_TriangleMesh>` | :ref:`generate_triangle_mesh<class_Mesh_method_generate_triangle_mesh>` **(** **)** |const| |
  44. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  45. | :ref:`AABB<class_AABB>` | :ref:`get_aabb<class_Mesh_method_get_aabb>` **(** **)** |const| |
  46. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  47. | :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`get_faces<class_Mesh_method_get_faces>` **(** **)** |const| |
  48. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | :ref:`int<class_int>` | :ref:`get_surface_count<class_Mesh_method_get_surface_count>` **(** **)** |const| |
  50. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | :ref:`Array<class_Array>` | :ref:`surface_get_arrays<class_Mesh_method_surface_get_arrays>` **(** :ref:`int<class_int>` surf_idx **)** |const| |
  52. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | :ref:`Array<class_Array>` | :ref:`surface_get_blend_shape_arrays<class_Mesh_method_surface_get_blend_shape_arrays>` **(** :ref:`int<class_int>` surf_idx **)** |const| |
  54. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`Material<class_Material>` | :ref:`surface_get_material<class_Mesh_method_surface_get_material>` **(** :ref:`int<class_int>` surf_idx **)** |const| |
  56. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | void | :ref:`surface_set_material<class_Mesh_method_surface_set_material>` **(** :ref:`int<class_int>` surf_idx, :ref:`Material<class_Material>` material **)** |
  58. +-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. .. rst-class:: classref-section-separator
  60. ----
  61. .. rst-class:: classref-descriptions-group
  62. Enumerations
  63. ------------
  64. .. _enum_Mesh_PrimitiveType:
  65. .. rst-class:: classref-enumeration
  66. enum **PrimitiveType**:
  67. .. _class_Mesh_constant_PRIMITIVE_POINTS:
  68. .. rst-class:: classref-enumeration-constant
  69. :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_POINTS** = ``0``
  70. Render array as points (one vertex equals one point).
  71. .. _class_Mesh_constant_PRIMITIVE_LINES:
  72. .. rst-class:: classref-enumeration-constant
  73. :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_LINES** = ``1``
  74. Render array as lines (every two vertices a line is created).
  75. .. _class_Mesh_constant_PRIMITIVE_LINE_STRIP:
  76. .. rst-class:: classref-enumeration-constant
  77. :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_LINE_STRIP** = ``2``
  78. Render array as line strip.
  79. .. _class_Mesh_constant_PRIMITIVE_LINE_LOOP:
  80. .. rst-class:: classref-enumeration-constant
  81. :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_LINE_LOOP** = ``3``
  82. Render array as line loop (like line strip, but closed).
  83. .. _class_Mesh_constant_PRIMITIVE_TRIANGLES:
  84. .. rst-class:: classref-enumeration-constant
  85. :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_TRIANGLES** = ``4``
  86. Render array as triangles (every three vertices a triangle is created).
  87. .. _class_Mesh_constant_PRIMITIVE_TRIANGLE_STRIP:
  88. .. rst-class:: classref-enumeration-constant
  89. :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_TRIANGLE_STRIP** = ``5``
  90. Render array as triangle strips.
  91. .. _class_Mesh_constant_PRIMITIVE_TRIANGLE_FAN:
  92. .. rst-class:: classref-enumeration-constant
  93. :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **PRIMITIVE_TRIANGLE_FAN** = ``6``
  94. Render array as triangle fans.
  95. .. rst-class:: classref-item-separator
  96. ----
  97. .. _enum_Mesh_BlendShapeMode:
  98. .. rst-class:: classref-enumeration
  99. enum **BlendShapeMode**:
  100. .. _class_Mesh_constant_BLEND_SHAPE_MODE_NORMALIZED:
  101. .. rst-class:: classref-enumeration-constant
  102. :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **BLEND_SHAPE_MODE_NORMALIZED** = ``0``
  103. Blend shapes are normalized.
  104. .. _class_Mesh_constant_BLEND_SHAPE_MODE_RELATIVE:
  105. .. rst-class:: classref-enumeration-constant
  106. :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **BLEND_SHAPE_MODE_RELATIVE** = ``1``
  107. Blend shapes are relative to base weight.
  108. .. rst-class:: classref-item-separator
  109. ----
  110. .. _enum_Mesh_ArrayFormat:
  111. .. rst-class:: classref-enumeration
  112. enum **ArrayFormat**:
  113. .. _class_Mesh_constant_ARRAY_FORMAT_VERTEX:
  114. .. rst-class:: classref-enumeration-constant
  115. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_VERTEX** = ``1``
  116. Mesh array contains vertices. All meshes require a vertex array so this should always be present.
  117. .. _class_Mesh_constant_ARRAY_FORMAT_NORMAL:
  118. .. rst-class:: classref-enumeration-constant
  119. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_NORMAL** = ``2``
  120. Mesh array contains normals.
  121. .. _class_Mesh_constant_ARRAY_FORMAT_TANGENT:
  122. .. rst-class:: classref-enumeration-constant
  123. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_TANGENT** = ``4``
  124. Mesh array contains tangents.
  125. .. _class_Mesh_constant_ARRAY_FORMAT_COLOR:
  126. .. rst-class:: classref-enumeration-constant
  127. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_COLOR** = ``8``
  128. Mesh array contains colors.
  129. .. _class_Mesh_constant_ARRAY_FORMAT_TEX_UV:
  130. .. rst-class:: classref-enumeration-constant
  131. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_TEX_UV** = ``16``
  132. Mesh array contains UVs.
  133. .. _class_Mesh_constant_ARRAY_FORMAT_TEX_UV2:
  134. .. rst-class:: classref-enumeration-constant
  135. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_TEX_UV2** = ``32``
  136. Mesh array contains second UV.
  137. .. _class_Mesh_constant_ARRAY_FORMAT_BONES:
  138. .. rst-class:: classref-enumeration-constant
  139. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_BONES** = ``64``
  140. Mesh array contains bones.
  141. .. _class_Mesh_constant_ARRAY_FORMAT_WEIGHTS:
  142. .. rst-class:: classref-enumeration-constant
  143. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_WEIGHTS** = ``128``
  144. Mesh array contains bone weights.
  145. .. _class_Mesh_constant_ARRAY_FORMAT_INDEX:
  146. .. rst-class:: classref-enumeration-constant
  147. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FORMAT_INDEX** = ``256``
  148. Mesh array uses indices.
  149. .. _class_Mesh_constant_ARRAY_COMPRESS_BASE:
  150. .. rst-class:: classref-enumeration-constant
  151. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_BASE** = ``9``
  152. Used internally to calculate other ``ARRAY_COMPRESS_*`` enum values. Do not use.
  153. .. _class_Mesh_constant_ARRAY_COMPRESS_VERTEX:
  154. .. rst-class:: classref-enumeration-constant
  155. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_VERTEX** = ``512``
  156. Flag used to mark a compressed (half float) vertex array.
  157. .. _class_Mesh_constant_ARRAY_COMPRESS_NORMAL:
  158. .. rst-class:: classref-enumeration-constant
  159. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_NORMAL** = ``1024``
  160. Flag used to mark a compressed (half float) normal array.
  161. .. _class_Mesh_constant_ARRAY_COMPRESS_TANGENT:
  162. .. rst-class:: classref-enumeration-constant
  163. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_TANGENT** = ``2048``
  164. Flag used to mark a compressed (half float) tangent array.
  165. .. _class_Mesh_constant_ARRAY_COMPRESS_COLOR:
  166. .. rst-class:: classref-enumeration-constant
  167. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_COLOR** = ``4096``
  168. Flag used to mark a compressed (half float) color array.
  169. \ **Note:** If this flag is enabled, vertex colors will be stored as 8-bit unsigned integers. This will clamp overbright colors to ``Color(1, 1, 1, 1)`` and reduce colors' precision.
  170. .. _class_Mesh_constant_ARRAY_COMPRESS_TEX_UV:
  171. .. rst-class:: classref-enumeration-constant
  172. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_TEX_UV** = ``8192``
  173. Flag used to mark a compressed (half float) UV coordinates array.
  174. .. _class_Mesh_constant_ARRAY_COMPRESS_TEX_UV2:
  175. .. rst-class:: classref-enumeration-constant
  176. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_TEX_UV2** = ``16384``
  177. Flag used to mark a compressed (half float) UV coordinates array for the second UV coordinates.
  178. .. _class_Mesh_constant_ARRAY_COMPRESS_BONES:
  179. .. rst-class:: classref-enumeration-constant
  180. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_BONES** = ``32768``
  181. Flag used to mark a compressed bone array.
  182. .. _class_Mesh_constant_ARRAY_COMPRESS_WEIGHTS:
  183. .. rst-class:: classref-enumeration-constant
  184. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_WEIGHTS** = ``65536``
  185. Flag used to mark a compressed (half float) weight array.
  186. .. _class_Mesh_constant_ARRAY_COMPRESS_INDEX:
  187. .. rst-class:: classref-enumeration-constant
  188. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_INDEX** = ``131072``
  189. Flag used to mark a compressed index array.
  190. .. _class_Mesh_constant_ARRAY_FLAG_USE_2D_VERTICES:
  191. .. rst-class:: classref-enumeration-constant
  192. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_USE_2D_VERTICES** = ``262144``
  193. Flag used to mark that the array contains 2D vertices.
  194. .. _class_Mesh_constant_ARRAY_FLAG_USE_16_BIT_BONES:
  195. .. rst-class:: classref-enumeration-constant
  196. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_USE_16_BIT_BONES** = ``524288``
  197. Flag used to mark that the array uses 16-bit bones instead of 8-bit.
  198. .. _class_Mesh_constant_ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION:
  199. .. rst-class:: classref-enumeration-constant
  200. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION** = ``2097152``
  201. Flag used to mark that the array uses an octahedral representation of normal and tangent vectors rather than cartesian.
  202. .. _class_Mesh_constant_ARRAY_FLAG_USE_VERTEX_CACHE_OPTIMIZATION:
  203. .. rst-class:: classref-enumeration-constant
  204. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_FLAG_USE_VERTEX_CACHE_OPTIMIZATION** = ``4194304``
  205. Flag used to request vertex cache optimization.
  206. This re-orders indices in order to make best use of GPU vertex caches, which can improve rendering performance particularly with high poly models.
  207. .. _class_Mesh_constant_ARRAY_COMPRESS_DEFAULT:
  208. .. rst-class:: classref-enumeration-constant
  209. :ref:`ArrayFormat<enum_Mesh_ArrayFormat>` **ARRAY_COMPRESS_DEFAULT** = ``2194432``
  210. Used to set flags :ref:`ARRAY_COMPRESS_VERTEX<class_Mesh_constant_ARRAY_COMPRESS_VERTEX>`, :ref:`ARRAY_COMPRESS_NORMAL<class_Mesh_constant_ARRAY_COMPRESS_NORMAL>`, :ref:`ARRAY_COMPRESS_TANGENT<class_Mesh_constant_ARRAY_COMPRESS_TANGENT>`, :ref:`ARRAY_COMPRESS_COLOR<class_Mesh_constant_ARRAY_COMPRESS_COLOR>`, :ref:`ARRAY_COMPRESS_TEX_UV<class_Mesh_constant_ARRAY_COMPRESS_TEX_UV>`, :ref:`ARRAY_COMPRESS_TEX_UV2<class_Mesh_constant_ARRAY_COMPRESS_TEX_UV2>`, :ref:`ARRAY_COMPRESS_WEIGHTS<class_Mesh_constant_ARRAY_COMPRESS_WEIGHTS>`, and :ref:`ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION<class_Mesh_constant_ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION>` quickly.
  211. \ **Note:** Since this flag enables :ref:`ARRAY_COMPRESS_COLOR<class_Mesh_constant_ARRAY_COMPRESS_COLOR>`, vertex colors will be stored as 8-bit unsigned integers. This will clamp overbright colors to ``Color(1, 1, 1, 1)`` and reduce colors' precision.
  212. .. rst-class:: classref-item-separator
  213. ----
  214. .. _enum_Mesh_ArrayType:
  215. .. rst-class:: classref-enumeration
  216. enum **ArrayType**:
  217. .. _class_Mesh_constant_ARRAY_VERTEX:
  218. .. rst-class:: classref-enumeration-constant
  219. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_VERTEX** = ``0``
  220. Array of vertices.
  221. .. _class_Mesh_constant_ARRAY_NORMAL:
  222. .. rst-class:: classref-enumeration-constant
  223. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_NORMAL** = ``1``
  224. Array of normals.
  225. .. _class_Mesh_constant_ARRAY_TANGENT:
  226. .. rst-class:: classref-enumeration-constant
  227. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_TANGENT** = ``2``
  228. Array of tangents as an array of floats, 4 floats per tangent.
  229. .. _class_Mesh_constant_ARRAY_COLOR:
  230. .. rst-class:: classref-enumeration-constant
  231. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_COLOR** = ``3``
  232. Array of colors.
  233. .. _class_Mesh_constant_ARRAY_TEX_UV:
  234. .. rst-class:: classref-enumeration-constant
  235. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_TEX_UV** = ``4``
  236. Array of UV coordinates.
  237. .. _class_Mesh_constant_ARRAY_TEX_UV2:
  238. .. rst-class:: classref-enumeration-constant
  239. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_TEX_UV2** = ``5``
  240. Array of second set of UV coordinates.
  241. .. _class_Mesh_constant_ARRAY_BONES:
  242. .. rst-class:: classref-enumeration-constant
  243. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_BONES** = ``6``
  244. Array of bone data.
  245. .. _class_Mesh_constant_ARRAY_WEIGHTS:
  246. .. rst-class:: classref-enumeration-constant
  247. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_WEIGHTS** = ``7``
  248. Array of weights.
  249. .. _class_Mesh_constant_ARRAY_INDEX:
  250. .. rst-class:: classref-enumeration-constant
  251. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_INDEX** = ``8``
  252. Array of indices.
  253. .. _class_Mesh_constant_ARRAY_MAX:
  254. .. rst-class:: classref-enumeration-constant
  255. :ref:`ArrayType<enum_Mesh_ArrayType>` **ARRAY_MAX** = ``9``
  256. Represents the size of the :ref:`ArrayType<enum_Mesh_ArrayType>` enum.
  257. .. rst-class:: classref-section-separator
  258. ----
  259. .. rst-class:: classref-descriptions-group
  260. Property Descriptions
  261. ---------------------
  262. .. _class_Mesh_property_lightmap_size_hint:
  263. .. rst-class:: classref-property
  264. :ref:`Vector2<class_Vector2>` **lightmap_size_hint** = ``Vector2( 0, 0 )``
  265. .. rst-class:: classref-property-setget
  266. - void **set_lightmap_size_hint** **(** :ref:`Vector2<class_Vector2>` value **)**
  267. - :ref:`Vector2<class_Vector2>` **get_lightmap_size_hint** **(** **)**
  268. Sets a hint to be used for lightmap resolution in :ref:`BakedLightmap<class_BakedLightmap>`. Overrides :ref:`BakedLightmap.default_texels_per_unit<class_BakedLightmap_property_default_texels_per_unit>`.
  269. .. rst-class:: classref-section-separator
  270. ----
  271. .. rst-class:: classref-descriptions-group
  272. Method Descriptions
  273. -------------------
  274. .. _class_Mesh_method_create_convex_shape:
  275. .. rst-class:: classref-method
  276. :ref:`Shape<class_Shape>` **create_convex_shape** **(** :ref:`bool<class_bool>` clean=true, :ref:`bool<class_bool>` simplify=false **)** |const|
  277. Calculate a :ref:`ConvexPolygonShape<class_ConvexPolygonShape>` from the mesh.
  278. If ``clean`` is ``true`` (default), duplicate and interior vertices are removed automatically. You can set it to ``false`` to make the process faster if not needed.
  279. If ``simplify`` is ``true``, the geometry can be further simplified to reduce the amount of vertices. Disabled by default.
  280. .. rst-class:: classref-item-separator
  281. ----
  282. .. _class_Mesh_method_create_outline:
  283. .. rst-class:: classref-method
  284. :ref:`Mesh<class_Mesh>` **create_outline** **(** :ref:`float<class_float>` margin **)** |const|
  285. Calculate an outline mesh at a defined offset (margin) from the original mesh.
  286. \ **Note:** This method typically returns the vertices in reverse order (e.g. clockwise to counterclockwise).
  287. .. rst-class:: classref-item-separator
  288. ----
  289. .. _class_Mesh_method_create_trimesh_shape:
  290. .. rst-class:: classref-method
  291. :ref:`Shape<class_Shape>` **create_trimesh_shape** **(** **)** |const|
  292. Calculate a :ref:`ConcavePolygonShape<class_ConcavePolygonShape>` from the mesh.
  293. .. rst-class:: classref-item-separator
  294. ----
  295. .. _class_Mesh_method_generate_triangle_mesh:
  296. .. rst-class:: classref-method
  297. :ref:`TriangleMesh<class_TriangleMesh>` **generate_triangle_mesh** **(** **)** |const|
  298. Generate a :ref:`TriangleMesh<class_TriangleMesh>` from the mesh. Considers only surfaces using one of these primitive types: :ref:`PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`, :ref:`PRIMITIVE_TRIANGLE_STRIP<class_Mesh_constant_PRIMITIVE_TRIANGLE_STRIP>`, or :ref:`PRIMITIVE_TRIANGLE_FAN<class_Mesh_constant_PRIMITIVE_TRIANGLE_FAN>`.
  299. .. rst-class:: classref-item-separator
  300. ----
  301. .. _class_Mesh_method_get_aabb:
  302. .. rst-class:: classref-method
  303. :ref:`AABB<class_AABB>` **get_aabb** **(** **)** |const|
  304. Returns the smallest :ref:`AABB<class_AABB>` enclosing this mesh in local space. Not affected by ``custom_aabb``. See also :ref:`VisualInstance.get_transformed_aabb<class_VisualInstance_method_get_transformed_aabb>`.
  305. \ **Note:** This is only implemented for :ref:`ArrayMesh<class_ArrayMesh>` and :ref:`PrimitiveMesh<class_PrimitiveMesh>`.
  306. .. rst-class:: classref-item-separator
  307. ----
  308. .. _class_Mesh_method_get_faces:
  309. .. rst-class:: classref-method
  310. :ref:`PoolVector3Array<class_PoolVector3Array>` **get_faces** **(** **)** |const|
  311. Returns all the vertices that make up the faces of the mesh. Each three vertices represent one triangle.
  312. .. rst-class:: classref-item-separator
  313. ----
  314. .. _class_Mesh_method_get_surface_count:
  315. .. rst-class:: classref-method
  316. :ref:`int<class_int>` **get_surface_count** **(** **)** |const|
  317. Returns the amount of surfaces that the **Mesh** holds.
  318. .. rst-class:: classref-item-separator
  319. ----
  320. .. _class_Mesh_method_surface_get_arrays:
  321. .. rst-class:: classref-method
  322. :ref:`Array<class_Array>` **surface_get_arrays** **(** :ref:`int<class_int>` surf_idx **)** |const|
  323. Returns the arrays for the vertices, normals, uvs, etc. that make up the requested surface (see :ref:`ArrayMesh.add_surface_from_arrays<class_ArrayMesh_method_add_surface_from_arrays>`).
  324. .. rst-class:: classref-item-separator
  325. ----
  326. .. _class_Mesh_method_surface_get_blend_shape_arrays:
  327. .. rst-class:: classref-method
  328. :ref:`Array<class_Array>` **surface_get_blend_shape_arrays** **(** :ref:`int<class_int>` surf_idx **)** |const|
  329. Returns the blend shape arrays for the requested surface.
  330. .. rst-class:: classref-item-separator
  331. ----
  332. .. _class_Mesh_method_surface_get_material:
  333. .. rst-class:: classref-method
  334. :ref:`Material<class_Material>` **surface_get_material** **(** :ref:`int<class_int>` surf_idx **)** |const|
  335. Returns a :ref:`Material<class_Material>` in a given surface. Surface is rendered using this material.
  336. .. rst-class:: classref-item-separator
  337. ----
  338. .. _class_Mesh_method_surface_set_material:
  339. .. rst-class:: classref-method
  340. void **surface_set_material** **(** :ref:`int<class_int>` surf_idx, :ref:`Material<class_Material>` material **)**
  341. Sets a :ref:`Material<class_Material>` for a given surface. Surface will be rendered using this material.
  342. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  343. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  344. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  345. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`