예제 #1
0
파일: agent.py 프로젝트: jrakoczy/sftunev
    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
예제 #2
0
파일: agent.py 프로젝트: jrakoczy/sftunev
    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
예제 #3
0
파일: agent.py 프로젝트: jrakoczy/sftunev
    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
예제 #4
0
파일: agent.py 프로젝트: jrakoczy/sftunev
    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