def getPolyCSpace(self, polygon): segments = [] obs = self.polygon.copy() rob = polygon.copy() for i in obs.segments: segments.append((i.copy(), i.normalAngle("left"),"o")) for j in rob.segments: segments.append((j.copy(), j.normalAngle("right"),"r")) sorted_segments = sorted(segments, key= itemgetter(1)) if sorted_segments[0][2] == "o": sorted_segments[0][0].reverse() for i in xrange(1, len(sorted_segments)): if sorted_segments[i][2] == "o": print sorted_segments[i][0] sorted_segments[i][0].reverse() sorted_segments[i][0].move(sorted_segments[i-1][0].p2) vertices =[] for s in sorted_segments: vertices.append(s[0].p1.toTuple()) tempPoly = Polygon(self.polygon.window, vertices) delta = self.findDelta(tempPoly) tempPoly.moveDelta(delta[0],delta[1]) return tempPoly