75 lines
876 B
Go
75 lines
876 B
Go
package gg
|
|
|
|
import (
|
|
"math"
|
|
)
|
|
|
|
// The type is used in all Engine interactions
|
|
// where you need floating values.
|
|
type Float = float64
|
|
|
|
const (
|
|
MaxFloat = math.MaxFloat64
|
|
Pi = math.Pi
|
|
RadDegrees = 57.2958
|
|
//PiRad = Pi * Rad
|
|
)
|
|
|
|
func Degree(f Float) Float {
|
|
return (f/(2*Pi))*360
|
|
}
|
|
|
|
// Returns square of the value.
|
|
func Sqr(v Float) Float {
|
|
return v * v
|
|
}
|
|
|
|
func Sqrt(v Float) Float {
|
|
return math.Sqrt(v)
|
|
}
|
|
|
|
func Asin(v Float) Float {
|
|
return math.Asin(v)
|
|
}
|
|
|
|
func Atan(v Float) Float {
|
|
return math.Atan(v)
|
|
}
|
|
|
|
func Sgn(v Float) Float {
|
|
if v > 0 {
|
|
return 1
|
|
}
|
|
|
|
if v < 0 {
|
|
return -1
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
func Max(v1, v2 Float) Float {
|
|
if v1 > v2 {
|
|
return v1
|
|
}
|
|
|
|
return v2
|
|
}
|
|
|
|
func Min(v1, v2 Float) Float {
|
|
if v1 < v2 {
|
|
return v1
|
|
}
|
|
|
|
return v2
|
|
}
|
|
|
|
func RadiansToDegrees(v Float) Float {
|
|
return v/Pi * 180
|
|
}
|
|
|
|
func DeegresToRadians(v Float) Float {
|
|
return v
|
|
}
|
|
|
|
|