Esempio n. 1
0
    def _get_position(self):
        pos = deepcopy(self.base.pos)

        # Apply small shift
        if self.base.orient == objects.CellQuarter.RIGHT_TOP:
            pos += ds.Point2D(0.75, 0.25)
        elif self.base.orient == objects.CellQuarter.RIGHT_BOT:
            pos += ds.Point2D(0.75, 0.75)
        elif self.base.orient == objects.CellQuarter.LEFT_BOT:
            pos += ds.Point2D(0.25, 0.75)
        elif self.base.orient == objects.CellQuarter.LEFT_TOP:
            pos += ds.Point2D(0.25, 0.25)

        return pos
Esempio n. 2
0
    def get_position_strs(self):
        results = []
        center = deepcopy(self.base.pos)

        positions = [
            ds.Point2D(.0, .0),
            ds.Point2D(.5, .0),
            ds.Point2D(1., .0),
            ds.Point2D(.0, .5),
            ds.Point2D(1., .5),
            ds.Point2D(.0, 1.),
            ds.Point2D(.5, 1.),
            ds.Point2D(1., 1.)
        ]

        for pos in positions:
            pillar_cntr = center + pos

            self._swap_axes(pillar_cntr)
            self._turn_to_physical(pillar_cntr)

            results += [
                '{} {} {} 0 0 0'.format(pillar_cntr.x, pillar_cntr.y,
                                        SQUARE_SPAWN_Z)
            ]

        return results
Esempio n. 3
0
    def get_position_str(self):
        # Maybe better to realize and use Box object method like 'get_pos()' with deep copy
        center = self.base.pos + ds.Point2D(0.5, 0.5)
        self._swap_axes(center)
        self._turn_to_physical(center)

        return '{} {} {} 0 0 0'.format(center.x, center.y, BOX_SPAWN_Z)
Esempio n. 4
0
    def get_position_str(self):
        pos = deepcopy(self.base.pos)

        # Apply small shift
        if self.base.orient == objects.CellQuarter.RIGHT_TOP:
            pos += ds.Point2D(0.75, 0.25)
        elif self.base.orient == objects.CellQuarter.RIGHT_BOT:
            pos += ds.Point2D(0.75, 0.75)
        elif self.base.orient == objects.CellQuarter.LEFT_BOT:
            pos += ds.Point2D(0.25, 0.75)
        elif self.base.orient == objects.CellQuarter.LEFT_TOP:
            pos += ds.Point2D(0.25, 0.25)

        self._swap_axes(pos)
        self._turn_to_physical(pos)

        yaw_angle = ORIENTATIONS_2_YAW_ANGLE[self.base.orient]

        return "{0} {1} 0 0 0 {2}".format(pos.x, pos.y, yaw_angle)
Esempio n. 5
0
    def get_line_position_str(self):
        pos = self._get_position()

        # Shift relative to real position
        if self.base.orient == objects.CellQuarter.RIGHT_TOP:
            pos += ds.Point2D(0, -0.75)
        elif self.base.orient == objects.CellQuarter.RIGHT_BOT:
            pos += ds.Point2D(0.75, 0)
        elif self.base.orient == objects.CellQuarter.LEFT_BOT:
            pos += ds.Point2D(0, 0.75)
        elif self.base.orient == objects.CellQuarter.LEFT_TOP:
            pos += ds.Point2D(-0.75, 0)

        self._swap_axes(pos)
        self._turn_to_physical(pos)

        yaw_angle = ORIENTATIONS_2_YAW_ANGLE[self.base.orient]

        # Rise up just to be visible
        return "{0} {1} 0.001 0 0 {2}".format(pos.x, pos.y, yaw_angle)
Esempio n. 6
0
 def _get_position(self):
     pos = deepcopy(self.base.pos)
     pos += ds.Point2D(self.map_params.cell_sz.x / 2,
                       self.map_params.cell_sz.y / 2)
     return pos