33 lines
335 B
Go
33 lines
335 B
Go
|
|
package ivec2
|
||
|
|
|
||
|
|
var Zero = T{}
|
||
|
|
var One = T{X: 1, Y: 1}
|
||
|
|
var UnitX = T{X: 1}
|
||
|
|
var UnitY = T{Y: 1}
|
||
|
|
|
||
|
|
type T struct {
|
||
|
|
X int
|
||
|
|
Y int
|
||
|
|
}
|
||
|
|
|
||
|
|
func New(x, y int) T {
|
||
|
|
return T{
|
||
|
|
X: x,
|
||
|
|
Y: y,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (v T) Add(v2 T) T {
|
||
|
|
return T{
|
||
|
|
X: v.X + v2.X,
|
||
|
|
Y: v.Y + v2.Y,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (v T) Sub(v2 T) T {
|
||
|
|
return T{
|
||
|
|
X: v.X - v2.X,
|
||
|
|
Y: v.Y - v2.Y,
|
||
|
|
}
|
||
|
|
}
|