label.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // package label -- текстовая метка для отображения
  2. package label
  3. import (
  4. "gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
  5. "gitp78su.ipnodns.ru/svi/goarch/lev0/types"
  6. "gitp78su.ipnodns.ru/svi/goarch/lev1/coord"
  7. "gitp78su.ipnodns.ru/svi/goarch/lev1/offset"
  8. "gitp78su.ipnodns.ru/svi/kern/v3"
  9. )
  10. // Label -- текстовая метка для отображения
  11. type Label struct {
  12. Val_ alias.Label `yaml:"val"` // Метка для вывода
  13. Offset_ *offset.Offset `yaml:"offsetX"` // Смещение метки
  14. Coord_ *coord.Coord `yaml:"coord"` // Координаты метки
  15. }
  16. var (
  17. hassert = kern.GetFnHassert()
  18. )
  19. // NewLabel -- возвращает новую метку
  20. func NewLabel(label alias.Label, coord *coord.Coord, offset *offset.Offset) *Label {
  21. hassert(label != "", "NewLabel(): label is empty")
  22. hassert(coord != nil, "NewLabel(): coord is nil")
  23. hassert(offset != nil, "NewLabel(): offset is nil")
  24. return &Label{
  25. Val_: label,
  26. Offset_: offset,
  27. Coord_: coord,
  28. }
  29. }
  30. // Get -- возвращает метку
  31. func (sf *Label) Get() alias.Label {
  32. return sf.Val_
  33. }
  34. // Coord -- возвращает координаты метки
  35. func (sf *Label) Coord() types.ICoord {
  36. return sf.Coord_
  37. }
  38. // Offset -- возвращает смещение метки
  39. func (sf *Label) Offset() types.IOffset {
  40. return sf.Offset_
  41. }