package vec2 import "zworld/plugin/math" // New returns a vec2 from its components func New(x, y float32) T { return T{X: x, Y: y} } // NewI returns a vec2 from integer components func NewI(x, y int) T { return T{X: float32(x), Y: float32(y)} } // Dot returns the dot product of two vectors. func Dot(a, b T) float32 { return a.X*b.X + a.Y*b.Y } // Distance returns the euclidian distance between two points. func Distance(a, b T) float32 { return a.Sub(b).Length() } func Min(a, b T) T { return T{ X: math.Min(a.X, b.X), Y: math.Min(a.Y, b.Y), } } func Max(a, b T) T { return T{ X: math.Max(a.X, b.X), Y: math.Max(a.Y, b.Y), } }