summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrecisionRender <austin08dean@gmail.com>2022-07-30 17:32:03 -0500
committerPrecisionRender <austin08dean@gmail.com>2022-07-30 17:48:55 -0500
commit2adb67c3c5e2038dc9841f2166e33313c71f4502 (patch)
tree2faa12cbda18a0a76a54ad9790250fadde5cc94d
parentc2d55a4e1a353b75eb598277e9a6403fc6bfc4d5 (diff)
Add `operator*` to `Plane`
-rw-r--r--core/variant/variant_op.cpp2
-rw-r--r--doc/classes/Plane.xml7
-rw-r--r--doc/classes/Transform3D.xml7
3 files changed, 16 insertions, 0 deletions
diff --git a/core/variant/variant_op.cpp b/core/variant/variant_op.cpp
index 669e18b5f7..6cca7955ae 100644
--- a/core/variant/variant_op.cpp
+++ b/core/variant/variant_op.cpp
@@ -341,6 +341,8 @@ void Variant::_register_variant_operators() {
register_op<OperatorEvaluatorXFormInv<Vector3, Vector3, Transform3D>>(Variant::OP_MULTIPLY, Variant::VECTOR3, Variant::TRANSFORM3D);
register_op<OperatorEvaluatorXForm<::AABB, Transform3D, ::AABB>>(Variant::OP_MULTIPLY, Variant::TRANSFORM3D, Variant::AABB);
register_op<OperatorEvaluatorXFormInv<::AABB, ::AABB, Transform3D>>(Variant::OP_MULTIPLY, Variant::AABB, Variant::TRANSFORM3D);
+ register_op<OperatorEvaluatorXForm<Plane, Transform3D, Plane>>(Variant::OP_MULTIPLY, Variant::TRANSFORM3D, Variant::PLANE);
+ register_op<OperatorEvaluatorXFormInv<Plane, Plane, Transform3D>>(Variant::OP_MULTIPLY, Variant::PLANE, Variant::TRANSFORM3D);
register_op<OperatorEvaluatorXForm<Vector<Vector3>, Transform3D, Vector<Vector3>>>(Variant::OP_MULTIPLY, Variant::TRANSFORM3D, Variant::PACKED_VECTOR3_ARRAY);
register_op<OperatorEvaluatorXFormInv<Vector<Vector3>, Vector<Vector3>, Transform3D>>(Variant::OP_MULTIPLY, Variant::PACKED_VECTOR3_ARRAY, Variant::TRANSFORM3D);
diff --git a/doc/classes/Plane.xml b/doc/classes/Plane.xml
index 32eb71f1c7..df9d25902b 100644
--- a/doc/classes/Plane.xml
+++ b/doc/classes/Plane.xml
@@ -179,6 +179,13 @@
[b]Note:[/b] Due to floating-point precision errors, consider using [method is_equal_approx] instead, which is more reliable.
</description>
</operator>
+ <operator name="operator *">
+ <return type="Plane" />
+ <argument index="0" name="right" type="Transform3D" />
+ <description>
+ Inversely transforms (multiplies) the [Plane] by the given [Transform3D] transformation matrix.
+ </description>
+ </operator>
<operator name="operator ==">
<return type="bool" />
<argument index="0" name="right" type="Plane" />
diff --git a/doc/classes/Transform3D.xml b/doc/classes/Transform3D.xml
index de1db718c2..e259c29426 100644
--- a/doc/classes/Transform3D.xml
+++ b/doc/classes/Transform3D.xml
@@ -175,6 +175,13 @@
</description>
</operator>
<operator name="operator *">
+ <return type="Plane" />
+ <argument index="0" name="right" type="Plane" />
+ <description>
+ Transforms (multiplies) the [Plane] by the given [Transform3D] transformation matrix.
+ </description>
+ </operator>
+ <operator name="operator *">
<return type="Transform3D" />
<argument index="0" name="right" type="Transform3D" />
<description>