class_vector3.rst 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739
  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.5/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.5/doc/classes/Vector3.xml.
  6. .. _class_Vector3:
  7. Vector3
  8. =======
  9. Vector used for 3D math.
  10. .. rst-class:: classref-introduction-group
  11. Description
  12. -----------
  13. 3-element structure that can be used to represent positions in 3D space or any other triplet of numeric values.
  14. \ **Note:** In a boolean context, a Vector3 will evaluate to ``false`` if it's equal to ``Vector3(0, 0, 0)``. Otherwise, a Vector3 will always evaluate to ``true``.
  15. .. rst-class:: classref-introduction-group
  16. Tutorials
  17. ---------
  18. - :doc:`Math tutorial index <../tutorials/math/index>`
  19. - :doc:`Vector math <../tutorials/math/vector_math>`
  20. - :doc:`Advanced vector math <../tutorials/math/vectors_advanced>`
  21. - `3Blue1Brown Essence of Linear Algebra <https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab>`__
  22. - `Matrix Transform Demo <https://godotengine.org/asset-library/asset/584>`__
  23. - `All 3D Demos <https://github.com/godotengine/godot-demo-projects/tree/master/3d>`__
  24. .. rst-class:: classref-reftable-group
  25. Properties
  26. ----------
  27. .. table::
  28. :widths: auto
  29. +---------------------------+------------------------------------+---------+
  30. | :ref:`float<class_float>` | :ref:`x<class_Vector3_property_x>` | ``0.0`` |
  31. +---------------------------+------------------------------------+---------+
  32. | :ref:`float<class_float>` | :ref:`y<class_Vector3_property_y>` | ``0.0`` |
  33. +---------------------------+------------------------------------+---------+
  34. | :ref:`float<class_float>` | :ref:`z<class_Vector3_property_z>` | ``0.0`` |
  35. +---------------------------+------------------------------------+---------+
  36. .. rst-class:: classref-reftable-group
  37. Methods
  38. -------
  39. .. table::
  40. :widths: auto
  41. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`Vector3<class_Vector3>` | :ref:`Vector3<class_Vector3_method_Vector3>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` y, :ref:`float<class_float>` z **)** |
  43. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`Vector3<class_Vector3>` | :ref:`abs<class_Vector3_method_abs>` **(** **)** |
  45. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`float<class_float>` | :ref:`angle_to<class_Vector3_method_angle_to>` **(** :ref:`Vector3<class_Vector3>` to **)** |
  47. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`Vector3<class_Vector3>` | :ref:`bounce<class_Vector3_method_bounce>` **(** :ref:`Vector3<class_Vector3>` n **)** |
  49. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`Vector3<class_Vector3>` | :ref:`ceil<class_Vector3_method_ceil>` **(** **)** |
  51. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`Vector3<class_Vector3>` | :ref:`cross<class_Vector3_method_cross>` **(** :ref:`Vector3<class_Vector3>` b **)** |
  53. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`Vector3<class_Vector3>` | :ref:`cubic_interpolate<class_Vector3_method_cubic_interpolate>` **(** :ref:`Vector3<class_Vector3>` b, :ref:`Vector3<class_Vector3>` pre_a, :ref:`Vector3<class_Vector3>` post_b, :ref:`float<class_float>` weight **)** |
  55. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | :ref:`Vector3<class_Vector3>` | :ref:`direction_to<class_Vector3_method_direction_to>` **(** :ref:`Vector3<class_Vector3>` b **)** |
  57. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | :ref:`float<class_float>` | :ref:`distance_squared_to<class_Vector3_method_distance_squared_to>` **(** :ref:`Vector3<class_Vector3>` b **)** |
  59. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`float<class_float>` | :ref:`distance_to<class_Vector3_method_distance_to>` **(** :ref:`Vector3<class_Vector3>` b **)** |
  61. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`float<class_float>` | :ref:`dot<class_Vector3_method_dot>` **(** :ref:`Vector3<class_Vector3>` b **)** |
  63. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`Vector3<class_Vector3>` | :ref:`floor<class_Vector3_method_floor>` **(** **)** |
  65. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`Vector3<class_Vector3>` | :ref:`inverse<class_Vector3_method_inverse>` **(** **)** |
  67. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`bool<class_bool>` | :ref:`is_equal_approx<class_Vector3_method_is_equal_approx>` **(** :ref:`Vector3<class_Vector3>` v **)** |
  69. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | :ref:`bool<class_bool>` | :ref:`is_normalized<class_Vector3_method_is_normalized>` **(** **)** |
  71. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | :ref:`float<class_float>` | :ref:`length<class_Vector3_method_length>` **(** **)** |
  73. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | :ref:`float<class_float>` | :ref:`length_squared<class_Vector3_method_length_squared>` **(** **)** |
  75. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | :ref:`Vector3<class_Vector3>` | :ref:`limit_length<class_Vector3_method_limit_length>` **(** :ref:`float<class_float>` length=1.0 **)** |
  77. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | :ref:`Vector3<class_Vector3>` | :ref:`linear_interpolate<class_Vector3_method_linear_interpolate>` **(** :ref:`Vector3<class_Vector3>` to, :ref:`float<class_float>` weight **)** |
  79. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | :ref:`int<class_int>` | :ref:`max_axis<class_Vector3_method_max_axis>` **(** **)** |
  81. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. | :ref:`int<class_int>` | :ref:`min_axis<class_Vector3_method_min_axis>` **(** **)** |
  83. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  84. | :ref:`Vector3<class_Vector3>` | :ref:`move_toward<class_Vector3_method_move_toward>` **(** :ref:`Vector3<class_Vector3>` to, :ref:`float<class_float>` delta **)** |
  85. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  86. | :ref:`Vector3<class_Vector3>` | :ref:`normalized<class_Vector3_method_normalized>` **(** **)** |
  87. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  88. | :ref:`Basis<class_Basis>` | :ref:`outer<class_Vector3_method_outer>` **(** :ref:`Vector3<class_Vector3>` b **)** |
  89. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  90. | :ref:`Vector3<class_Vector3>` | :ref:`posmod<class_Vector3_method_posmod>` **(** :ref:`float<class_float>` mod **)** |
  91. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  92. | :ref:`Vector3<class_Vector3>` | :ref:`posmodv<class_Vector3_method_posmodv>` **(** :ref:`Vector3<class_Vector3>` modv **)** |
  93. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  94. | :ref:`Vector3<class_Vector3>` | :ref:`project<class_Vector3_method_project>` **(** :ref:`Vector3<class_Vector3>` b **)** |
  95. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  96. | :ref:`Vector3<class_Vector3>` | :ref:`reflect<class_Vector3_method_reflect>` **(** :ref:`Vector3<class_Vector3>` n **)** |
  97. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  98. | :ref:`Vector3<class_Vector3>` | :ref:`rotated<class_Vector3_method_rotated>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |
  99. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  100. | :ref:`Vector3<class_Vector3>` | :ref:`round<class_Vector3_method_round>` **(** **)** |
  101. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  102. | :ref:`Vector3<class_Vector3>` | :ref:`sign<class_Vector3_method_sign>` **(** **)** |
  103. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  104. | :ref:`float<class_float>` | :ref:`signed_angle_to<class_Vector3_method_signed_angle_to>` **(** :ref:`Vector3<class_Vector3>` to, :ref:`Vector3<class_Vector3>` axis **)** |
  105. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  106. | :ref:`Vector3<class_Vector3>` | :ref:`slerp<class_Vector3_method_slerp>` **(** :ref:`Vector3<class_Vector3>` to, :ref:`float<class_float>` weight **)** |
  107. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  108. | :ref:`Vector3<class_Vector3>` | :ref:`slide<class_Vector3_method_slide>` **(** :ref:`Vector3<class_Vector3>` n **)** |
  109. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  110. | :ref:`Vector3<class_Vector3>` | :ref:`snapped<class_Vector3_method_snapped>` **(** :ref:`Vector3<class_Vector3>` by **)** |
  111. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  112. | :ref:`Basis<class_Basis>` | :ref:`to_diagonal_matrix<class_Vector3_method_to_diagonal_matrix>` **(** **)** |
  113. +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  114. .. rst-class:: classref-section-separator
  115. ----
  116. .. rst-class:: classref-descriptions-group
  117. Constants
  118. ---------
  119. .. _class_Vector3_constant_AXIS_X:
  120. .. rst-class:: classref-constant
  121. **AXIS_X** = ``0``
  122. Enumerated value for the X axis. Returned by :ref:`max_axis<class_Vector3_method_max_axis>` and :ref:`min_axis<class_Vector3_method_min_axis>`.
  123. .. _class_Vector3_constant_AXIS_Y:
  124. .. rst-class:: classref-constant
  125. **AXIS_Y** = ``1``
  126. Enumerated value for the Y axis. Returned by :ref:`max_axis<class_Vector3_method_max_axis>` and :ref:`min_axis<class_Vector3_method_min_axis>`.
  127. .. _class_Vector3_constant_AXIS_Z:
  128. .. rst-class:: classref-constant
  129. **AXIS_Z** = ``2``
  130. Enumerated value for the Z axis. Returned by :ref:`max_axis<class_Vector3_method_max_axis>` and :ref:`min_axis<class_Vector3_method_min_axis>`.
  131. .. _class_Vector3_constant_ZERO:
  132. .. rst-class:: classref-constant
  133. **ZERO** = ``Vector3( 0, 0, 0 )``
  134. Zero vector, a vector with all components set to ``0``.
  135. .. _class_Vector3_constant_ONE:
  136. .. rst-class:: classref-constant
  137. **ONE** = ``Vector3( 1, 1, 1 )``
  138. One vector, a vector with all components set to ``1``.
  139. .. _class_Vector3_constant_INF:
  140. .. rst-class:: classref-constant
  141. **INF** = ``Vector3( inf, inf, inf )``
  142. Infinity vector, a vector with all components set to :ref:`@GDScript.INF<class_@GDScript_constant_INF>`.
  143. .. _class_Vector3_constant_LEFT:
  144. .. rst-class:: classref-constant
  145. **LEFT** = ``Vector3( -1, 0, 0 )``
  146. Left unit vector. Represents the local direction of left, and the global direction of west.
  147. .. _class_Vector3_constant_RIGHT:
  148. .. rst-class:: classref-constant
  149. **RIGHT** = ``Vector3( 1, 0, 0 )``
  150. Right unit vector. Represents the local direction of right, and the global direction of east.
  151. .. _class_Vector3_constant_UP:
  152. .. rst-class:: classref-constant
  153. **UP** = ``Vector3( 0, 1, 0 )``
  154. Up unit vector.
  155. .. _class_Vector3_constant_DOWN:
  156. .. rst-class:: classref-constant
  157. **DOWN** = ``Vector3( 0, -1, 0 )``
  158. Down unit vector.
  159. .. _class_Vector3_constant_FORWARD:
  160. .. rst-class:: classref-constant
  161. **FORWARD** = ``Vector3( 0, 0, -1 )``
  162. Forward unit vector. Represents the local direction of forward, and the global direction of north.
  163. .. _class_Vector3_constant_BACK:
  164. .. rst-class:: classref-constant
  165. **BACK** = ``Vector3( 0, 0, 1 )``
  166. Back unit vector. Represents the local direction of back, and the global direction of south.
  167. .. rst-class:: classref-section-separator
  168. ----
  169. .. rst-class:: classref-descriptions-group
  170. Property Descriptions
  171. ---------------------
  172. .. _class_Vector3_property_x:
  173. .. rst-class:: classref-property
  174. :ref:`float<class_float>` **x** = ``0.0``
  175. The vector's X component. Also accessible by using the index position ``[0]``.
  176. .. rst-class:: classref-item-separator
  177. ----
  178. .. _class_Vector3_property_y:
  179. .. rst-class:: classref-property
  180. :ref:`float<class_float>` **y** = ``0.0``
  181. The vector's Y component. Also accessible by using the index position ``[1]``.
  182. .. rst-class:: classref-item-separator
  183. ----
  184. .. _class_Vector3_property_z:
  185. .. rst-class:: classref-property
  186. :ref:`float<class_float>` **z** = ``0.0``
  187. The vector's Z component. Also accessible by using the index position ``[2]``.
  188. .. rst-class:: classref-section-separator
  189. ----
  190. .. rst-class:: classref-descriptions-group
  191. Method Descriptions
  192. -------------------
  193. .. _class_Vector3_method_Vector3:
  194. .. rst-class:: classref-method
  195. :ref:`Vector3<class_Vector3>` **Vector3** **(** :ref:`float<class_float>` x, :ref:`float<class_float>` y, :ref:`float<class_float>` z **)**
  196. Returns a Vector3 with the given components.
  197. .. rst-class:: classref-item-separator
  198. ----
  199. .. _class_Vector3_method_abs:
  200. .. rst-class:: classref-method
  201. :ref:`Vector3<class_Vector3>` **abs** **(** **)**
  202. Returns a new vector with all components in absolute values (i.e. positive).
  203. .. rst-class:: classref-item-separator
  204. ----
  205. .. _class_Vector3_method_angle_to:
  206. .. rst-class:: classref-method
  207. :ref:`float<class_float>` **angle_to** **(** :ref:`Vector3<class_Vector3>` to **)**
  208. Returns the unsigned minimum angle to the given vector, in radians.
  209. .. rst-class:: classref-item-separator
  210. ----
  211. .. _class_Vector3_method_bounce:
  212. .. rst-class:: classref-method
  213. :ref:`Vector3<class_Vector3>` **bounce** **(** :ref:`Vector3<class_Vector3>` n **)**
  214. Returns the vector "bounced off" from a plane defined by the given normal.
  215. .. rst-class:: classref-item-separator
  216. ----
  217. .. _class_Vector3_method_ceil:
  218. .. rst-class:: classref-method
  219. :ref:`Vector3<class_Vector3>` **ceil** **(** **)**
  220. Returns a new vector with all components rounded up (towards positive infinity).
  221. .. rst-class:: classref-item-separator
  222. ----
  223. .. _class_Vector3_method_cross:
  224. .. rst-class:: classref-method
  225. :ref:`Vector3<class_Vector3>` **cross** **(** :ref:`Vector3<class_Vector3>` b **)**
  226. Returns the cross product of this vector and ``b``.
  227. .. rst-class:: classref-item-separator
  228. ----
  229. .. _class_Vector3_method_cubic_interpolate:
  230. .. rst-class:: classref-method
  231. :ref:`Vector3<class_Vector3>` **cubic_interpolate** **(** :ref:`Vector3<class_Vector3>` b, :ref:`Vector3<class_Vector3>` pre_a, :ref:`Vector3<class_Vector3>` post_b, :ref:`float<class_float>` weight **)**
  232. Performs a cubic interpolation between this vector and ``b`` using ``pre_a`` and ``post_b`` as handles, and returns the result at position ``weight``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
  233. .. rst-class:: classref-item-separator
  234. ----
  235. .. _class_Vector3_method_direction_to:
  236. .. rst-class:: classref-method
  237. :ref:`Vector3<class_Vector3>` **direction_to** **(** :ref:`Vector3<class_Vector3>` b **)**
  238. Returns the normalized vector pointing from this vector to ``b``. This is equivalent to using ``(b - a).normalized()``.
  239. .. rst-class:: classref-item-separator
  240. ----
  241. .. _class_Vector3_method_distance_squared_to:
  242. .. rst-class:: classref-method
  243. :ref:`float<class_float>` **distance_squared_to** **(** :ref:`Vector3<class_Vector3>` b **)**
  244. Returns the squared distance between this vector and ``b``.
  245. This method runs faster than :ref:`distance_to<class_Vector3_method_distance_to>`, so prefer it if you need to compare vectors or need the squared distance for some formula.
  246. .. rst-class:: classref-item-separator
  247. ----
  248. .. _class_Vector3_method_distance_to:
  249. .. rst-class:: classref-method
  250. :ref:`float<class_float>` **distance_to** **(** :ref:`Vector3<class_Vector3>` b **)**
  251. Returns the distance between this vector and ``b``.
  252. .. rst-class:: classref-item-separator
  253. ----
  254. .. _class_Vector3_method_dot:
  255. .. rst-class:: classref-method
  256. :ref:`float<class_float>` **dot** **(** :ref:`Vector3<class_Vector3>` b **)**
  257. Returns the dot product of this vector and ``b``. This can be used to compare the angle between two vectors. For example, this can be used to determine whether an enemy is facing the player.
  258. The dot product will be ``0`` for a straight angle (90 degrees), greater than 0 for angles narrower than 90 degrees and lower than 0 for angles wider than 90 degrees.
  259. When using unit (normalized) vectors, the result will always be between ``-1.0`` (180 degree angle) when the vectors are facing opposite directions, and ``1.0`` (0 degree angle) when the vectors are aligned.
  260. \ **Note:** ``a.dot(b)`` is equivalent to ``b.dot(a)``.
  261. .. rst-class:: classref-item-separator
  262. ----
  263. .. _class_Vector3_method_floor:
  264. .. rst-class:: classref-method
  265. :ref:`Vector3<class_Vector3>` **floor** **(** **)**
  266. Returns a new vector with all components rounded down (towards negative infinity).
  267. .. rst-class:: classref-item-separator
  268. ----
  269. .. _class_Vector3_method_inverse:
  270. .. rst-class:: classref-method
  271. :ref:`Vector3<class_Vector3>` **inverse** **(** **)**
  272. Returns the inverse of the vector. This is the same as ``Vector3( 1.0 / v.x, 1.0 / v.y, 1.0 / v.z )``.
  273. .. rst-class:: classref-item-separator
  274. ----
  275. .. _class_Vector3_method_is_equal_approx:
  276. .. rst-class:: classref-method
  277. :ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Vector3<class_Vector3>` v **)**
  278. Returns ``true`` if this vector and ``v`` are approximately equal, by running :ref:`@GDScript.is_equal_approx<class_@GDScript_method_is_equal_approx>` on each component.
  279. .. rst-class:: classref-item-separator
  280. ----
  281. .. _class_Vector3_method_is_normalized:
  282. .. rst-class:: classref-method
  283. :ref:`bool<class_bool>` **is_normalized** **(** **)**
  284. Returns ``true`` if the vector is normalized, ``false`` otherwise.
  285. .. rst-class:: classref-item-separator
  286. ----
  287. .. _class_Vector3_method_length:
  288. .. rst-class:: classref-method
  289. :ref:`float<class_float>` **length** **(** **)**
  290. Returns the length (magnitude) of this vector.
  291. .. rst-class:: classref-item-separator
  292. ----
  293. .. _class_Vector3_method_length_squared:
  294. .. rst-class:: classref-method
  295. :ref:`float<class_float>` **length_squared** **(** **)**
  296. Returns the squared length (squared magnitude) of this vector.
  297. This method runs faster than :ref:`length<class_Vector3_method_length>`, so prefer it if you need to compare vectors or need the squared distance for some formula.
  298. .. rst-class:: classref-item-separator
  299. ----
  300. .. _class_Vector3_method_limit_length:
  301. .. rst-class:: classref-method
  302. :ref:`Vector3<class_Vector3>` **limit_length** **(** :ref:`float<class_float>` length=1.0 **)**
  303. Returns the vector with a maximum length by limiting its length to ``length``.
  304. .. rst-class:: classref-item-separator
  305. ----
  306. .. _class_Vector3_method_linear_interpolate:
  307. .. rst-class:: classref-method
  308. :ref:`Vector3<class_Vector3>` **linear_interpolate** **(** :ref:`Vector3<class_Vector3>` to, :ref:`float<class_float>` weight **)**
  309. Returns the result of the linear interpolation between this vector and ``to`` by amount ``t``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
  310. .. rst-class:: classref-item-separator
  311. ----
  312. .. _class_Vector3_method_max_axis:
  313. .. rst-class:: classref-method
  314. :ref:`int<class_int>` **max_axis** **(** **)**
  315. Returns the axis of the vector's largest value. See ``AXIS_*`` constants. If all components are equal, this method returns :ref:`AXIS_X<class_Vector3_constant_AXIS_X>`.
  316. .. rst-class:: classref-item-separator
  317. ----
  318. .. _class_Vector3_method_min_axis:
  319. .. rst-class:: classref-method
  320. :ref:`int<class_int>` **min_axis** **(** **)**
  321. Returns the axis of the vector's smallest value. See ``AXIS_*`` constants. If all components are equal, this method returns :ref:`AXIS_Z<class_Vector3_constant_AXIS_Z>`.
  322. .. rst-class:: classref-item-separator
  323. ----
  324. .. _class_Vector3_method_move_toward:
  325. .. rst-class:: classref-method
  326. :ref:`Vector3<class_Vector3>` **move_toward** **(** :ref:`Vector3<class_Vector3>` to, :ref:`float<class_float>` delta **)**
  327. Returns a new vector moved toward ``to`` by the fixed ``delta`` amount. Will not go past the final value.
  328. .. rst-class:: classref-item-separator
  329. ----
  330. .. _class_Vector3_method_normalized:
  331. .. rst-class:: classref-method
  332. :ref:`Vector3<class_Vector3>` **normalized** **(** **)**
  333. Returns the vector scaled to unit length. Equivalent to ``v / v.length()``.
  334. .. rst-class:: classref-item-separator
  335. ----
  336. .. _class_Vector3_method_outer:
  337. .. rst-class:: classref-method
  338. :ref:`Basis<class_Basis>` **outer** **(** :ref:`Vector3<class_Vector3>` b **)**
  339. Returns the outer product with ``b``.
  340. .. rst-class:: classref-item-separator
  341. ----
  342. .. _class_Vector3_method_posmod:
  343. .. rst-class:: classref-method
  344. :ref:`Vector3<class_Vector3>` **posmod** **(** :ref:`float<class_float>` mod **)**
  345. Returns a vector composed of the :ref:`@GDScript.fposmod<class_@GDScript_method_fposmod>` of this vector's components and ``mod``.
  346. .. rst-class:: classref-item-separator
  347. ----
  348. .. _class_Vector3_method_posmodv:
  349. .. rst-class:: classref-method
  350. :ref:`Vector3<class_Vector3>` **posmodv** **(** :ref:`Vector3<class_Vector3>` modv **)**
  351. Returns a vector composed of the :ref:`@GDScript.fposmod<class_@GDScript_method_fposmod>` of this vector's components and ``modv``'s components.
  352. .. rst-class:: classref-item-separator
  353. ----
  354. .. _class_Vector3_method_project:
  355. .. rst-class:: classref-method
  356. :ref:`Vector3<class_Vector3>` **project** **(** :ref:`Vector3<class_Vector3>` b **)**
  357. Returns this vector projected onto the vector ``b``.
  358. .. rst-class:: classref-item-separator
  359. ----
  360. .. _class_Vector3_method_reflect:
  361. .. rst-class:: classref-method
  362. :ref:`Vector3<class_Vector3>` **reflect** **(** :ref:`Vector3<class_Vector3>` n **)**
  363. Returns this vector reflected from a plane defined by the given normal.
  364. .. rst-class:: classref-item-separator
  365. ----
  366. .. _class_Vector3_method_rotated:
  367. .. rst-class:: classref-method
  368. :ref:`Vector3<class_Vector3>` **rotated** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
  369. Rotates this vector around a given axis by ``angle`` (in radians). The axis must be a normalized vector.
  370. .. rst-class:: classref-item-separator
  371. ----
  372. .. _class_Vector3_method_round:
  373. .. rst-class:: classref-method
  374. :ref:`Vector3<class_Vector3>` **round** **(** **)**
  375. Returns a new vector with all components rounded to the nearest integer, with halfway cases rounded away from zero.
  376. .. rst-class:: classref-item-separator
  377. ----
  378. .. _class_Vector3_method_sign:
  379. .. rst-class:: classref-method
  380. :ref:`Vector3<class_Vector3>` **sign** **(** **)**
  381. Returns a new vector with each component set to one or negative one, depending on the signs of the components. If a component is zero, it returns positive one.
  382. .. rst-class:: classref-item-separator
  383. ----
  384. .. _class_Vector3_method_signed_angle_to:
  385. .. rst-class:: classref-method
  386. :ref:`float<class_float>` **signed_angle_to** **(** :ref:`Vector3<class_Vector3>` to, :ref:`Vector3<class_Vector3>` axis **)**
  387. Returns the signed angle to the given vector, in radians. The sign of the angle is positive in a counter-clockwise direction and negative in a clockwise direction when viewed from the side specified by the ``axis``.
  388. .. rst-class:: classref-item-separator
  389. ----
  390. .. _class_Vector3_method_slerp:
  391. .. rst-class:: classref-method
  392. :ref:`Vector3<class_Vector3>` **slerp** **(** :ref:`Vector3<class_Vector3>` to, :ref:`float<class_float>` weight **)**
  393. Returns the result of spherical linear interpolation between this vector and ``to``, by amount ``weight``. ``weight`` is on the range of 0.0 to 1.0, representing the amount of interpolation.
  394. \ **Note:** Both vectors must be normalized.
  395. .. rst-class:: classref-item-separator
  396. ----
  397. .. _class_Vector3_method_slide:
  398. .. rst-class:: classref-method
  399. :ref:`Vector3<class_Vector3>` **slide** **(** :ref:`Vector3<class_Vector3>` n **)**
  400. Returns this vector slid along a plane defined by the given normal.
  401. .. rst-class:: classref-item-separator
  402. ----
  403. .. _class_Vector3_method_snapped:
  404. .. rst-class:: classref-method
  405. :ref:`Vector3<class_Vector3>` **snapped** **(** :ref:`Vector3<class_Vector3>` by **)**
  406. Returns this vector with each component snapped to the nearest multiple of ``step``. This can also be used to round to an arbitrary number of decimals.
  407. .. rst-class:: classref-item-separator
  408. ----
  409. .. _class_Vector3_method_to_diagonal_matrix:
  410. .. rst-class:: classref-method
  411. :ref:`Basis<class_Basis>` **to_diagonal_matrix** **(** **)**
  412. Returns a diagonal matrix with the vector as main diagonal.
  413. This is equivalent to a Basis with no rotation or shearing and this vector's components set as the scale.
  414. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  415. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  416. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  417. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`