// package view_offset -- смещение точки
package view_offset

import (
	"gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
	"gitp78su.ipnodns.ru/svi/goarch/lev0/types"
)

// Offset -- смещение точки
type Offset struct {
	X_ alias.CoordX `yaml:"x"` // Координата X
	Y_ alias.CoordY `yaml:"y"` // Координата Y
}

// NewOffset -- возвращает новое смещение
func NewOffset(x alias.CoordX, y alias.CoordY) types.IViewOffset {
	sf := &Offset{
		X_: x,
		Y_: y,
	}
	return sf
}

// Int -- возвращает смещение
//
//go:fix inline
func (sf *Offset) Int() (int, int) {
	return int(sf.X_), int(sf.Y_)
}

// Get -- возвращает смещение
//
//go:fix inline
func (sf *Offset) Get() (alias.CoordX, alias.CoordY) {
	return sf.X_, sf.Y_
}

// X -- возвращает координату X
//
//go:fix inline
func (sf *Offset) X() alias.CoordX {
	return sf.X_
}

// Y -- возвращает координату Y
//
//go:fix inline
func (sf *Offset) Y() alias.CoordY {
	return sf.Y_
}
