def _check_exit_blockage(self, exit_dest): dest_segment = Segment(self._position, exit_dest) for blockage in self._tunnel.temp_blockages: if utils.check_segments_intersect(blockage, dest_segment): return True return False
def _find_nearest_end(self): dest_segment = Segment(self.position, self.dest) lowest_dist = sys.maxsize nearest_end = None if self._nearest_end is None: current_end = self._position else: current_end = self._nearest_end for segment in self.tunnel.segments: if utils.check_segments_intersect(dest_segment, segment): # ! TODO ! - closest instead of nearest_end (dist, end) = utils.get_closer_end(self._position, segment) if dist < lowest_dist and (end != current_end).all(): lowest_dist = dist (_ , nearest_end)= utils.get_closer_end(self._dest, segment) self._nearest_end = nearest_end
def _find_nearest_end(self): dest_segment = Segment(self.position, self.dest) lowest_dist = sys.maxsize nearest_end = None if self._nearest_end is None: current_end = self._position else: current_end = self._nearest_end for segment in self.tunnel.segments: if utils.check_segments_intersect(dest_segment, segment): # ! TODO ! - closest instead of nearest_end (dist, end) = utils.get_closer_end(self._position, segment) if dist < lowest_dist and (end != current_end).all(): lowest_dist = dist (_, nearest_end) = utils.get_closer_end(self._dest, segment) self._nearest_end = nearest_end