proc length*(self: RayShape2D): float64 {.gcsafe, locks: 0.}
proc `length =`*(self: RayShape2D; val: float64) {.gcsafe, locks: 0.}