From e5f437d05e8277861ea85e6c8d2ede32c4be32ef Mon Sep 17 00:00:00 2001 From: jussi Date: Fri, 19 Aug 2022 16:20:59 +0300 Subject: New math functions. --- examples/resources/lib/vector2.lua | 27 ++++++++++++++++++++++++++- examples/resources/lib/vector3.lua | 27 ++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 2 deletions(-) (limited to 'examples/resources/lib') diff --git a/examples/resources/lib/vector2.lua b/examples/resources/lib/vector2.lua index 862718f..7e3b7fb 100644 --- a/examples/resources/lib/vector2.lua +++ b/examples/resources/lib/vector2.lua @@ -38,7 +38,8 @@ Vector2.meta = { return len end, __eq = function( v1, v2 ) - return v1.x == v2.x and v1.y == v2.y + -- return v1.x == v2.x and v1.y == v2.y + return RL_Vector2Equals( v1, v2 ) == 1 end, } @@ -114,6 +115,10 @@ function Vector2:distance( v2 ) return RL_Vector2Distance( self, v2 ) end +function Vector2:distanceSqr( v2 ) + return RL_Vector2DistanceSqr( self, v2 ) +end + function Vector2:angle( v2 ) return RL_Vector2Angle( self, v2 ) end @@ -126,6 +131,10 @@ function Vector2:normalize() return Vector2:new( RL_Vector2Normalize( self ) ) end +function Vector2:transform( mat ) + return Vector2:new( RL_Vector2Transform( self, mat ) ) +end + function Vector2:lerp( v2, value ) return Vector2:new( RL_Vector2Lerp( self, v2, value ) ) end @@ -142,4 +151,20 @@ function Vector2:moveTowards( target, maxDistance ) return Vector2:new( RL_Vector2MoveTowards( self, target, maxDistance ) ) end +function Vector2:invert() + return Vector2:new( RL_Vector2Invert( self ) ) +end + +function Vector2:clamp( min, max ) + return Vector2:new( RL_Vector2Clamp( self, min, max ) ) +end + +function Vector2:clampValue( min, max ) + return Vector2:new( RL_Vector2ClampValue( self, min, max ) ) +end + +function Vector2:equals( v2 ) + return RL_Vector2Equals( self, v2 ) +end + return Vector2 diff --git a/examples/resources/lib/vector3.lua b/examples/resources/lib/vector3.lua index bf3e4a7..0f4d990 100644 --- a/examples/resources/lib/vector3.lua +++ b/examples/resources/lib/vector3.lua @@ -38,7 +38,8 @@ Vector3.meta = { return len end, __eq = function( v1, v2 ) - return v1.x == v2.x and v1.y == v2.y and v1.z == v2.z + -- return v1.x == v2.x and v1.y == v2.y and v1.z == v2.z + return RL_Vector3Equals( v1, v2 ) == 1 end, } @@ -128,6 +129,10 @@ function Vector3:distance( v2 ) return RL_Vector3Distance( self, v2 ) end +function Vector3:distanceSqr( v2 ) + return RL_Vector3DistanceSqr( self, v2 ) +end + function Vector3:angle( v2 ) return RL_Vector3Angle( self, v2 ) end @@ -153,6 +158,10 @@ function Vector3:rotateByQuaternion( q ) return Vector3:new( RL_Vector3RotateByQuaternion( self, q ) ) end +function Vector3:rotateByAxisAngle( axis, angle ) + return Vector3:new( RL_Vector3RotateByAxisAngle( self, axis, angle ) ) +end + function Vector3:lerp( v2, value ) return Vector3:new( RL_Vector3Lerp( self, v2, value ) ) end @@ -161,4 +170,20 @@ function Vector3:reflect( normal ) return Vector3:new( RL_Vector3Reflect( self, normal ) ) end +function Vector3:invert() + return Vector3:new( RL_Vector3Invert( self ) ) +end + +function Vector3:clamp( min, max ) + return Vector3:new( RL_Vector3Clamp( self, min, max ) ) +end + +function Vector3:clampValue( min, max ) + return Vector3:new( RL_Vector3ClampValue( self, min, max ) ) +end + +function Vector3:equals( v2 ) + return RL_Vector3Equals( self, v2 ) +end + return Vector3 -- cgit v1.2.3