New math functions.

This commit is contained in:
jussi
2022-08-19 16:20:59 +03:00
parent 8972ac89f4
commit e5f437d05e
6 changed files with 615 additions and 2 deletions

View File

@@ -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

View File

@@ -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