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
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
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)
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)
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)
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