25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

42 satır
869B

  1. package panel
  2. import (
  3. "git.wtrh.nl/patterns/gopatterns/pkg/dimensions"
  4. "git.wtrh.nl/patterns/gopatterns/pkg/path"
  5. "git.wtrh.nl/patterns/gopatterns/pkg/pattern/text"
  6. "git.wtrh.nl/patterns/gopatterns/pkg/point"
  7. "git.wtrh.nl/patterns/gopatterns/pkg/util"
  8. "github.com/tdewolff/canvas"
  9. )
  10. type Panel struct {
  11. Name string
  12. Lines map[util.ID]path.Path
  13. Points map[util.ID]point.Point
  14. Dimensions dimensions.Dimensions
  15. Texts []text.Text
  16. }
  17. func (p Panel) Draw(c *canvas.Canvas, face *canvas.FontFace, debug bool) error {
  18. for _, line := range p.Lines {
  19. err := line.Draw(c)
  20. if err != nil {
  21. return err
  22. }
  23. for _, throughPoint := range line.Through() {
  24. throughPoint.SetDraw()
  25. }
  26. }
  27. for _, drawPoints := range p.Points {
  28. point.Draw(c, drawPoints, face, debug)
  29. }
  30. for _, t := range p.Texts {
  31. t.ToCanvas(c, face)
  32. }
  33. return nil
  34. }