class_plane.rst 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526
  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/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/Plane.xml.
  6. .. _class_Plane:
  7. Plane
  8. =====
  9. A plane in Hessian normal form.
  10. .. rst-class:: classref-introduction-group
  11. Description
  12. -----------
  13. Represents a normalized plane equation. :ref:`normal<class_Plane_property_normal>` is the normal of the plane (a, b, c normalized), and :ref:`d<class_Plane_property_d>` is the distance from the origin to the plane (in the direction of "normal"). "Over" or "Above" the plane is considered the side of the plane towards where the normal is pointing.
  14. .. rst-class:: classref-introduction-group
  15. Tutorials
  16. ---------
  17. - :doc:`Math documentation index <../tutorials/math/index>`
  18. .. rst-class:: classref-reftable-group
  19. Properties
  20. ----------
  21. .. table::
  22. :widths: auto
  23. +-------------------------------+--------------------------------------------+----------------------+
  24. | :ref:`float<class_float>` | :ref:`d<class_Plane_property_d>` | ``0.0`` |
  25. +-------------------------------+--------------------------------------------+----------------------+
  26. | :ref:`Vector3<class_Vector3>` | :ref:`normal<class_Plane_property_normal>` | ``Vector3(0, 0, 0)`` |
  27. +-------------------------------+--------------------------------------------+----------------------+
  28. | :ref:`float<class_float>` | :ref:`x<class_Plane_property_x>` | ``0.0`` |
  29. +-------------------------------+--------------------------------------------+----------------------+
  30. | :ref:`float<class_float>` | :ref:`y<class_Plane_property_y>` | ``0.0`` |
  31. +-------------------------------+--------------------------------------------+----------------------+
  32. | :ref:`float<class_float>` | :ref:`z<class_Plane_property_z>` | ``0.0`` |
  33. +-------------------------------+--------------------------------------------+----------------------+
  34. .. rst-class:: classref-reftable-group
  35. Constructors
  36. ------------
  37. .. table::
  38. :widths: auto
  39. +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`Plane<class_Plane>` | :ref:`Plane<class_Plane_constructor_Plane>`\ (\ ) |
  41. +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`Plane<class_Plane>` | :ref:`Plane<class_Plane_constructor_Plane>`\ (\ from\: :ref:`Plane<class_Plane>`\ ) |
  43. +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`Plane<class_Plane>` | :ref:`Plane<class_Plane_constructor_Plane>`\ (\ a\: :ref:`float<class_float>`, b\: :ref:`float<class_float>`, c\: :ref:`float<class_float>`, d\: :ref:`float<class_float>`\ ) |
  45. +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`Plane<class_Plane>` | :ref:`Plane<class_Plane_constructor_Plane>`\ (\ normal\: :ref:`Vector3<class_Vector3>`\ ) |
  47. +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`Plane<class_Plane>` | :ref:`Plane<class_Plane_constructor_Plane>`\ (\ normal\: :ref:`Vector3<class_Vector3>`, d\: :ref:`float<class_float>`\ ) |
  49. +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`Plane<class_Plane>` | :ref:`Plane<class_Plane_constructor_Plane>`\ (\ normal\: :ref:`Vector3<class_Vector3>`, point\: :ref:`Vector3<class_Vector3>`\ ) |
  51. +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`Plane<class_Plane>` | :ref:`Plane<class_Plane_constructor_Plane>`\ (\ point1\: :ref:`Vector3<class_Vector3>`, point2\: :ref:`Vector3<class_Vector3>`, point3\: :ref:`Vector3<class_Vector3>`\ ) |
  53. +---------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. .. rst-class:: classref-reftable-group
  55. Methods
  56. -------
  57. .. table::
  58. :widths: auto
  59. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`float<class_float>` | :ref:`distance_to<class_Plane_method_distance_to>`\ (\ point\: :ref:`Vector3<class_Vector3>`\ ) |const| |
  61. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`Vector3<class_Vector3>` | :ref:`get_center<class_Plane_method_get_center>`\ (\ ) |const| |
  63. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`bool<class_bool>` | :ref:`has_point<class_Plane_method_has_point>`\ (\ point\: :ref:`Vector3<class_Vector3>`, tolerance\: :ref:`float<class_float>` = 1e-05\ ) |const| |
  65. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`Variant<class_Variant>` | :ref:`intersect_3<class_Plane_method_intersect_3>`\ (\ b\: :ref:`Plane<class_Plane>`, c\: :ref:`Plane<class_Plane>`\ ) |const| |
  67. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`Variant<class_Variant>` | :ref:`intersects_ray<class_Plane_method_intersects_ray>`\ (\ from\: :ref:`Vector3<class_Vector3>`, dir\: :ref:`Vector3<class_Vector3>`\ ) |const| |
  69. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | :ref:`Variant<class_Variant>` | :ref:`intersects_segment<class_Plane_method_intersects_segment>`\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`\ ) |const| |
  71. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | :ref:`bool<class_bool>` | :ref:`is_equal_approx<class_Plane_method_is_equal_approx>`\ (\ to_plane\: :ref:`Plane<class_Plane>`\ ) |const| |
  73. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | :ref:`bool<class_bool>` | :ref:`is_finite<class_Plane_method_is_finite>`\ (\ ) |const| |
  75. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | :ref:`bool<class_bool>` | :ref:`is_point_over<class_Plane_method_is_point_over>`\ (\ point\: :ref:`Vector3<class_Vector3>`\ ) |const| |
  77. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | :ref:`Plane<class_Plane>` | :ref:`normalized<class_Plane_method_normalized>`\ (\ ) |const| |
  79. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | :ref:`Vector3<class_Vector3>` | :ref:`project<class_Plane_method_project>`\ (\ point\: :ref:`Vector3<class_Vector3>`\ ) |const| |
  81. +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. .. rst-class:: classref-reftable-group
  83. Operators
  84. ---------
  85. .. table::
  86. :widths: auto
  87. +---------------------------+--------------------------------------------------------------------------------------------------------------+
  88. | :ref:`bool<class_bool>` | :ref:`operator !=<class_Plane_operator_neq_Plane>`\ (\ right\: :ref:`Plane<class_Plane>`\ ) |
  89. +---------------------------+--------------------------------------------------------------------------------------------------------------+
  90. | :ref:`Plane<class_Plane>` | :ref:`operator *<class_Plane_operator_mul_Transform3D>`\ (\ right\: :ref:`Transform3D<class_Transform3D>`\ ) |
  91. +---------------------------+--------------------------------------------------------------------------------------------------------------+
  92. | :ref:`bool<class_bool>` | :ref:`operator ==<class_Plane_operator_eq_Plane>`\ (\ right\: :ref:`Plane<class_Plane>`\ ) |
  93. +---------------------------+--------------------------------------------------------------------------------------------------------------+
  94. | :ref:`Plane<class_Plane>` | :ref:`operator unary+<class_Plane_operator_unplus>`\ (\ ) |
  95. +---------------------------+--------------------------------------------------------------------------------------------------------------+
  96. | :ref:`Plane<class_Plane>` | :ref:`operator unary-<class_Plane_operator_unminus>`\ (\ ) |
  97. +---------------------------+--------------------------------------------------------------------------------------------------------------+
  98. .. rst-class:: classref-section-separator
  99. ----
  100. .. rst-class:: classref-descriptions-group
  101. Constants
  102. ---------
  103. .. _class_Plane_constant_PLANE_YZ:
  104. .. rst-class:: classref-constant
  105. **PLANE_YZ** = ``Plane(1, 0, 0, 0)`` :ref:`🔗<class_Plane_constant_PLANE_YZ>`
  106. A plane that extends in the Y and Z axes (normal vector points +X).
  107. .. _class_Plane_constant_PLANE_XZ:
  108. .. rst-class:: classref-constant
  109. **PLANE_XZ** = ``Plane(0, 1, 0, 0)`` :ref:`🔗<class_Plane_constant_PLANE_XZ>`
  110. A plane that extends in the X and Z axes (normal vector points +Y).
  111. .. _class_Plane_constant_PLANE_XY:
  112. .. rst-class:: classref-constant
  113. **PLANE_XY** = ``Plane(0, 0, 1, 0)`` :ref:`🔗<class_Plane_constant_PLANE_XY>`
  114. A plane that extends in the X and Y axes (normal vector points +Z).
  115. .. rst-class:: classref-section-separator
  116. ----
  117. .. rst-class:: classref-descriptions-group
  118. Property Descriptions
  119. ---------------------
  120. .. _class_Plane_property_d:
  121. .. rst-class:: classref-property
  122. :ref:`float<class_float>` **d** = ``0.0`` :ref:`🔗<class_Plane_property_d>`
  123. The distance from the origin to the plane, expressed in terms of :ref:`normal<class_Plane_property_normal>` (according to its direction and magnitude). Actual absolute distance from the origin to the plane can be calculated as ``abs(d) / normal.length()`` (if :ref:`normal<class_Plane_property_normal>` has zero length then this **Plane** does not represent a valid plane).
  124. In the scalar equation of the plane ``ax + by + cz = d``, this is ``d``, while the ``(a, b, c)`` coordinates are represented by the :ref:`normal<class_Plane_property_normal>` property.
  125. .. rst-class:: classref-item-separator
  126. ----
  127. .. _class_Plane_property_normal:
  128. .. rst-class:: classref-property
  129. :ref:`Vector3<class_Vector3>` **normal** = ``Vector3(0, 0, 0)`` :ref:`🔗<class_Plane_property_normal>`
  130. The normal of the plane, typically a unit vector. Shouldn't be a zero vector as **Plane** with such :ref:`normal<class_Plane_property_normal>` does not represent a valid plane.
  131. In the scalar equation of the plane ``ax + by + cz = d``, this is the vector ``(a, b, c)``, where ``d`` is the :ref:`d<class_Plane_property_d>` property.
  132. .. rst-class:: classref-item-separator
  133. ----
  134. .. _class_Plane_property_x:
  135. .. rst-class:: classref-property
  136. :ref:`float<class_float>` **x** = ``0.0`` :ref:`🔗<class_Plane_property_x>`
  137. The X component of the plane's :ref:`normal<class_Plane_property_normal>` vector.
  138. .. rst-class:: classref-item-separator
  139. ----
  140. .. _class_Plane_property_y:
  141. .. rst-class:: classref-property
  142. :ref:`float<class_float>` **y** = ``0.0`` :ref:`🔗<class_Plane_property_y>`
  143. The Y component of the plane's :ref:`normal<class_Plane_property_normal>` vector.
  144. .. rst-class:: classref-item-separator
  145. ----
  146. .. _class_Plane_property_z:
  147. .. rst-class:: classref-property
  148. :ref:`float<class_float>` **z** = ``0.0`` :ref:`🔗<class_Plane_property_z>`
  149. The Z component of the plane's :ref:`normal<class_Plane_property_normal>` vector.
  150. .. rst-class:: classref-section-separator
  151. ----
  152. .. rst-class:: classref-descriptions-group
  153. Constructor Descriptions
  154. ------------------------
  155. .. _class_Plane_constructor_Plane:
  156. .. rst-class:: classref-constructor
  157. :ref:`Plane<class_Plane>` **Plane**\ (\ ) :ref:`🔗<class_Plane_constructor_Plane>`
  158. Constructs a default-initialized **Plane** with all components set to ``0``.
  159. .. rst-class:: classref-item-separator
  160. ----
  161. .. rst-class:: classref-constructor
  162. :ref:`Plane<class_Plane>` **Plane**\ (\ from\: :ref:`Plane<class_Plane>`\ )
  163. Constructs a **Plane** as a copy of the given **Plane**.
  164. .. rst-class:: classref-item-separator
  165. ----
  166. .. rst-class:: classref-constructor
  167. :ref:`Plane<class_Plane>` **Plane**\ (\ a\: :ref:`float<class_float>`, b\: :ref:`float<class_float>`, c\: :ref:`float<class_float>`, d\: :ref:`float<class_float>`\ )
  168. Creates a plane from the four parameters. The three components of the resulting plane's :ref:`normal<class_Plane_property_normal>` are ``a``, ``b`` and ``c``, and the plane has a distance of ``d`` from the origin.
  169. .. rst-class:: classref-item-separator
  170. ----
  171. .. rst-class:: classref-constructor
  172. :ref:`Plane<class_Plane>` **Plane**\ (\ normal\: :ref:`Vector3<class_Vector3>`\ )
  173. Creates a plane from the normal vector. The plane will intersect the origin.
  174. The ``normal`` of the plane must be a unit vector.
  175. .. rst-class:: classref-item-separator
  176. ----
  177. .. rst-class:: classref-constructor
  178. :ref:`Plane<class_Plane>` **Plane**\ (\ normal\: :ref:`Vector3<class_Vector3>`, d\: :ref:`float<class_float>`\ )
  179. Creates a plane from the normal vector and the plane's distance from the origin.
  180. The ``normal`` of the plane must be a unit vector.
  181. .. rst-class:: classref-item-separator
  182. ----
  183. .. rst-class:: classref-constructor
  184. :ref:`Plane<class_Plane>` **Plane**\ (\ normal\: :ref:`Vector3<class_Vector3>`, point\: :ref:`Vector3<class_Vector3>`\ )
  185. Creates a plane from the normal vector and a point on the plane.
  186. The ``normal`` of the plane must be a unit vector.
  187. .. rst-class:: classref-item-separator
  188. ----
  189. .. rst-class:: classref-constructor
  190. :ref:`Plane<class_Plane>` **Plane**\ (\ point1\: :ref:`Vector3<class_Vector3>`, point2\: :ref:`Vector3<class_Vector3>`, point3\: :ref:`Vector3<class_Vector3>`\ )
  191. Creates a plane from the three points, given in clockwise order.
  192. .. rst-class:: classref-section-separator
  193. ----
  194. .. rst-class:: classref-descriptions-group
  195. Method Descriptions
  196. -------------------
  197. .. _class_Plane_method_distance_to:
  198. .. rst-class:: classref-method
  199. :ref:`float<class_float>` **distance_to**\ (\ point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Plane_method_distance_to>`
  200. Returns the shortest distance from the plane to the position ``point``. If the point is above the plane, the distance will be positive. If below, the distance will be negative.
  201. .. rst-class:: classref-item-separator
  202. ----
  203. .. _class_Plane_method_get_center:
  204. .. rst-class:: classref-method
  205. :ref:`Vector3<class_Vector3>` **get_center**\ (\ ) |const| :ref:`🔗<class_Plane_method_get_center>`
  206. Returns the center of the plane.
  207. .. rst-class:: classref-item-separator
  208. ----
  209. .. _class_Plane_method_has_point:
  210. .. rst-class:: classref-method
  211. :ref:`bool<class_bool>` **has_point**\ (\ point\: :ref:`Vector3<class_Vector3>`, tolerance\: :ref:`float<class_float>` = 1e-05\ ) |const| :ref:`🔗<class_Plane_method_has_point>`
  212. Returns ``true`` if ``point`` is inside the plane. Comparison uses a custom minimum ``tolerance`` threshold.
  213. .. rst-class:: classref-item-separator
  214. ----
  215. .. _class_Plane_method_intersect_3:
  216. .. rst-class:: classref-method
  217. :ref:`Variant<class_Variant>` **intersect_3**\ (\ b\: :ref:`Plane<class_Plane>`, c\: :ref:`Plane<class_Plane>`\ ) |const| :ref:`🔗<class_Plane_method_intersect_3>`
  218. Returns the intersection point of the three planes ``b``, ``c`` and this plane. If no intersection is found, ``null`` is returned.
  219. .. rst-class:: classref-item-separator
  220. ----
  221. .. _class_Plane_method_intersects_ray:
  222. .. rst-class:: classref-method
  223. :ref:`Variant<class_Variant>` **intersects_ray**\ (\ from\: :ref:`Vector3<class_Vector3>`, dir\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Plane_method_intersects_ray>`
  224. Returns the intersection point of a ray consisting of the position ``from`` and the direction normal ``dir`` with this plane. If no intersection is found, ``null`` is returned.
  225. .. rst-class:: classref-item-separator
  226. ----
  227. .. _class_Plane_method_intersects_segment:
  228. .. rst-class:: classref-method
  229. :ref:`Variant<class_Variant>` **intersects_segment**\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Plane_method_intersects_segment>`
  230. Returns the intersection point of a segment from position ``from`` to position ``to`` with this plane. If no intersection is found, ``null`` is returned.
  231. .. rst-class:: classref-item-separator
  232. ----
  233. .. _class_Plane_method_is_equal_approx:
  234. .. rst-class:: classref-method
  235. :ref:`bool<class_bool>` **is_equal_approx**\ (\ to_plane\: :ref:`Plane<class_Plane>`\ ) |const| :ref:`🔗<class_Plane_method_is_equal_approx>`
  236. Returns ``true`` if this plane and ``to_plane`` are approximately equal, by running :ref:`@GlobalScope.is_equal_approx<class_@GlobalScope_method_is_equal_approx>` on each component.
  237. .. rst-class:: classref-item-separator
  238. ----
  239. .. _class_Plane_method_is_finite:
  240. .. rst-class:: classref-method
  241. :ref:`bool<class_bool>` **is_finite**\ (\ ) |const| :ref:`🔗<class_Plane_method_is_finite>`
  242. Returns ``true`` if this plane is finite, by calling :ref:`@GlobalScope.is_finite<class_@GlobalScope_method_is_finite>` on each component.
  243. .. rst-class:: classref-item-separator
  244. ----
  245. .. _class_Plane_method_is_point_over:
  246. .. rst-class:: classref-method
  247. :ref:`bool<class_bool>` **is_point_over**\ (\ point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Plane_method_is_point_over>`
  248. Returns ``true`` if ``point`` is located above the plane.
  249. .. rst-class:: classref-item-separator
  250. ----
  251. .. _class_Plane_method_normalized:
  252. .. rst-class:: classref-method
  253. :ref:`Plane<class_Plane>` **normalized**\ (\ ) |const| :ref:`🔗<class_Plane_method_normalized>`
  254. Returns a copy of the plane, with normalized :ref:`normal<class_Plane_property_normal>` (so it's a unit vector). Returns ``Plane(0, 0, 0, 0)`` if :ref:`normal<class_Plane_property_normal>` can't be normalized (it has zero length).
  255. .. rst-class:: classref-item-separator
  256. ----
  257. .. _class_Plane_method_project:
  258. .. rst-class:: classref-method
  259. :ref:`Vector3<class_Vector3>` **project**\ (\ point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Plane_method_project>`
  260. Returns the orthogonal projection of ``point`` into a point in the plane.
  261. .. rst-class:: classref-section-separator
  262. ----
  263. .. rst-class:: classref-descriptions-group
  264. Operator Descriptions
  265. ---------------------
  266. .. _class_Plane_operator_neq_Plane:
  267. .. rst-class:: classref-operator
  268. :ref:`bool<class_bool>` **operator !=**\ (\ right\: :ref:`Plane<class_Plane>`\ ) :ref:`🔗<class_Plane_operator_neq_Plane>`
  269. Returns ``true`` if the planes are not equal.
  270. \ **Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Plane_method_is_equal_approx>` instead, which is more reliable.
  271. .. rst-class:: classref-item-separator
  272. ----
  273. .. _class_Plane_operator_mul_Transform3D:
  274. .. rst-class:: classref-operator
  275. :ref:`Plane<class_Plane>` **operator ***\ (\ right\: :ref:`Transform3D<class_Transform3D>`\ ) :ref:`🔗<class_Plane_operator_mul_Transform3D>`
  276. Inversely transforms (multiplies) the **Plane** by the given :ref:`Transform3D<class_Transform3D>` transformation matrix.
  277. \ ``plane * transform`` is equivalent to ``transform.affine_inverse() * plane``. See :ref:`Transform3D.affine_inverse<class_Transform3D_method_affine_inverse>`.
  278. .. rst-class:: classref-item-separator
  279. ----
  280. .. _class_Plane_operator_eq_Plane:
  281. .. rst-class:: classref-operator
  282. :ref:`bool<class_bool>` **operator ==**\ (\ right\: :ref:`Plane<class_Plane>`\ ) :ref:`🔗<class_Plane_operator_eq_Plane>`
  283. Returns ``true`` if the planes are exactly equal.
  284. \ **Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Plane_method_is_equal_approx>` instead, which is more reliable.
  285. .. rst-class:: classref-item-separator
  286. ----
  287. .. _class_Plane_operator_unplus:
  288. .. rst-class:: classref-operator
  289. :ref:`Plane<class_Plane>` **operator unary+**\ (\ ) :ref:`🔗<class_Plane_operator_unplus>`
  290. Returns the same value as if the ``+`` was not there. Unary ``+`` does nothing, but sometimes it can make your code more readable.
  291. .. rst-class:: classref-item-separator
  292. ----
  293. .. _class_Plane_operator_unminus:
  294. .. rst-class:: classref-operator
  295. :ref:`Plane<class_Plane>` **operator unary-**\ (\ ) :ref:`🔗<class_Plane_operator_unminus>`
  296. Returns the negative value of the **Plane**. This is the same as writing ``Plane(-p.normal, -p.d)``. This operation flips the direction of the normal vector and also flips the distance value, resulting in a Plane that is in the same place, but facing the opposite direction.
  297. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  298. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  299. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  300. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  301. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  302. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  303. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  304. .. |void| replace:: :abbr:`void (No return value.)`