         if @point_end.x < 0
           @point_end.x = 0
           @point_end.y = slope * @point_end.x + y_intercept
-        if @point_end.y > @ceiling.body.position.y - @size.y / 2
-          @point_end.y = @ceiling.body.position.y - @size.y / 2
+        if @point_end.y > @ceiling.body.p.y - @size.y / 2
+          @point_end.y = @ceiling.body.p.y - @size.y / 2
           @point_end.x = (@point_end.y - y_intercept) / slope
         if @point_end.y < 0
           @point_end.y = 0



    computeArmPos: =>
      @arm_pos = @man.body.position.minus(@man_size.scale(0.5)).plus(@arm_offset)
      @point_vector = (@mouse_pos.minus(@arm_pos)).normalized()
      @point_start = @arm_pos.plus(@point_vector.scale(@arm_len))

    getDropPos: (size) =>
      return new Vec2d(
        Math.random() * (@size.x - size.x) + size.x / 2,
        @ceiling.body.position.y - @size.y / 2 - size.y / 2,
      )



          if discriminant < 0
            return

          dist = atom.shape.body.p.distanceSqrd(@point_start)
          if not @closest_atom? or dist < closest_dist
            @closest_atom = atom
            closest_dist = dist
