// package view_coord -- координаты точки
package view_coord

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

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

// NewViewCoord -- возвращает новую координату
func NewViewCoord(x alias.CoordX, y alias.CoordY) types.IViewCoord {
	sf := &ViewCoord{
		X_: x,
		Y_: y,
	}
	return sf
}

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

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

// Coord -- возвращает координаты
func (sf *ViewCoord) Coord() (alias.CoordX, alias.CoordY) {
	return sf.X_, sf.Y_
}

// Int -- возвращает целые координаты
func (sf *ViewCoord) Int() (int, int) {
	return int(sf.X_), int(sf.Y_)
}

// Get -- возвращает координаты
func (sf *ViewCoord) Get() (alias.CoordX, alias.CoordY) {
	return sf.X_, sf.Y_
}
