Merge pull request #16485 from poke1024/vector2-cross
Bring back Vector2.cross()
This commit is contained in:
commit
8ded15b035
5 changed files with 18 additions and 10 deletions
|
@ -98,11 +98,6 @@ real_t Vector2::cross(const Vector2 &p_other) const {
|
|||
return x * p_other.y - y * p_other.x;
|
||||
}
|
||||
|
||||
Vector2 Vector2::cross(real_t p_other) const {
|
||||
|
||||
return Vector2(p_other * y, -p_other * x);
|
||||
}
|
||||
|
||||
Vector2 Vector2::floor() const {
|
||||
|
||||
return Vector2(Math::floor(x), Math::floor(y));
|
||||
|
|
|
@ -104,7 +104,6 @@ struct Vector2 {
|
|||
|
||||
real_t dot(const Vector2 &p_other) const;
|
||||
real_t cross(const Vector2 &p_other) const;
|
||||
Vector2 cross(real_t p_other) const;
|
||||
Vector2 project(const Vector2 &p_vec) const;
|
||||
|
||||
Vector2 plane_project(real_t p_d, const Vector2 &p_vec) const;
|
||||
|
|
|
@ -347,7 +347,7 @@ struct _VariantCall {
|
|||
VCALL_LOCALMEM1R(Vector2, bounce);
|
||||
VCALL_LOCALMEM1R(Vector2, reflect);
|
||||
VCALL_LOCALMEM0R(Vector2, angle);
|
||||
//VCALL_LOCALMEM1R(Vector2,cross);
|
||||
VCALL_LOCALMEM1R(Vector2, cross);
|
||||
VCALL_LOCALMEM0R(Vector2, abs);
|
||||
VCALL_LOCALMEM1R(Vector2, clamped);
|
||||
|
||||
|
@ -1517,7 +1517,7 @@ void register_variant_methods() {
|
|||
ADDFUNC1R(VECTOR2, VECTOR2, Vector2, slide, VECTOR2, "n", varray());
|
||||
ADDFUNC1R(VECTOR2, VECTOR2, Vector2, bounce, VECTOR2, "n", varray());
|
||||
ADDFUNC1R(VECTOR2, VECTOR2, Vector2, reflect, VECTOR2, "n", varray());
|
||||
//ADDFUNC1R(VECTOR2,REAL,Vector2,cross,VECTOR2,"with",varray());
|
||||
ADDFUNC1R(VECTOR2, REAL, Vector2, cross, VECTOR2, "with", varray());
|
||||
ADDFUNC0R(VECTOR2, VECTOR2, Vector2, abs, varray());
|
||||
ADDFUNC1R(VECTOR2, VECTOR2, Vector2, clamped, REAL, "length", varray());
|
||||
|
||||
|
|
|
@ -81,6 +81,15 @@
|
|||
Returns the vector with a maximum length.
|
||||
</description>
|
||||
</method>
|
||||
<method name="cross">
|
||||
<return type="float">
|
||||
</return>
|
||||
<argument index="0" name="b" type="Vector2">
|
||||
</argument>
|
||||
<description>
|
||||
Returns the 2-dimensional analog of the cross product with [code]b[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="cubic_interpolate">
|
||||
<return type="Vector2">
|
||||
</return>
|
||||
|
|
|
@ -146,14 +146,19 @@ bool PinJoint2DSW::setup(real_t p_step) {
|
|||
return true;
|
||||
}
|
||||
|
||||
inline Vector2 custom_cross(const Vector2 &p_vec, real_t p_other) {
|
||||
|
||||
return Vector2(p_other * p_vec.y, -p_other * p_vec.x);
|
||||
}
|
||||
|
||||
void PinJoint2DSW::solve(real_t p_step) {
|
||||
|
||||
// compute relative velocity
|
||||
Vector2 vA = A->get_linear_velocity() - rA.cross(A->get_angular_velocity());
|
||||
Vector2 vA = A->get_linear_velocity() - custom_cross(rA, A->get_angular_velocity());
|
||||
|
||||
Vector2 rel_vel;
|
||||
if (B)
|
||||
rel_vel = B->get_linear_velocity() - rB.cross(B->get_angular_velocity()) - vA;
|
||||
rel_vel = B->get_linear_velocity() - custom_cross(rB, B->get_angular_velocity()) - vA;
|
||||
else
|
||||
rel_vel = -vA;
|
||||
|
||||
|
|
Loading…
Reference in a new issue