anchor.nim 617 B

123456789101112131415161718192021222324
  1. # author: Ethosa
  2. import vector2
  3. {.used.}
  4. type
  5. AnchorObj* = object
  6. x1*, y1*, x2*, y2*: float
  7. AnchorRef* = ref AnchorObj
  8. proc Anchor*(x1, y1, x2, y2: float): AnchorRef {.inline.} =
  9. AnchorRef(x1: x1, y1: y1, x2: x2, y2: y2)
  10. proc Anchor*(vec1, vec2: Vector2Ref): AnchorRef {.inline.} =
  11. AnchorRef(x1: vec1.x, y1: vec1.y, x2: vec2.x, y2: vec2.y)
  12. proc isEmpty*(a: AnchorRef): bool =
  13. ## Returns true, if a is Anchor(0, 0, 0, 0)
  14. a.x1 == 0 and a.x2 == 0 and a.y1 == 0 and a.y2 == 0
  15. proc `$`*(x: AnchorRef): string =
  16. "Anchor(x1: " & $x.x1 & ", y1: " & $x.y1 & ", x2: " & $x.x2 & ", y2: " & $x.y2 & ")"