self._start = None # normal vector in direction of start angle limit
self._end = None # normal vector in direction of end angle limit
self._set_angle_limits(direction, spread)
+ if direction:
+ self.direction = direction # Update direction
self._max_radius = None # maximum radius in pixels
self._min_radius = None # minimum radius in pixels
self._set_radius_limits(radius_limits)
self._min_radius = value or 0.0
def reaches(self, position):
- distance = self.position.get_distance(self.position)
+ distance = self.position.get_distance(position)
return (self._min_radius <= distance <= self._max_radius)
def _set_radius_limits(self, radius_limits):
@property
def direction(self):
+ if self._direction is None:
+ return 0
return self._direction.angle_degrees
@direction.setter
self._end = self._direction.rotated(-spread)
self._poly_cache = None
+ @property
+ def spread(self):
+ if not self._direction:
+ return 2 * math.pi
+ return math.fabs(self._start.get_angle_between(self._end))
+
def _set_angle_limits(self, direction, spread):
if direction is None or spread is None:
self._direction = None