def center_apartment(self): union_polygon = QPolygonF() for list in self.dict_rooms_and_corridors_per_side.values(): for room in list: union_polygon = union_polygon.united( room.room_qpolygon) # Para obtener el bounding box self.total_rooms_and_corridors.append(room) self.initial_corridor.setLeft(union_polygon.boundingRect().left()) self.initial_corridor.setRight(union_polygon.boundingRect().right()) self.total_rooms_and_corridors.append( Room(type='corridor', p=self.initial_corridor.topLeft(), w=self.initial_corridor.width(), h=self.initial_corridor.height())) union_polygon = union_polygon.united(self.initial_corridor) initial_center = union_polygon.boundingRect().center() union_polygon.translate(-initial_center) self.apartment_boundingRect = union_polygon.boundingRect() # Desplazo habitaciones y pasillos al centro for i, room in enumerate(self.total_rooms_and_corridors): room.room_qpolygon.translate( -initial_center ) # Desplazo los poligonos para que la habitación esté centrada room.room_qrect.translate(-initial_center)
elif door_location == 'left': room_polygon_with_door = add_door_left(room, side) elif door_location == 'right': room_polygon_with_door = add_door_right(room, side) # --- Añadir habitaciones al pasillo ---- result_polygon_list.append(room_polygon_with_door) union_polygon = union_polygon.united( room_polygon_with_door) # Para obtener el bounding box # -------------------------------------------------------------------------------------------------------- # ------------------------------------------- Dibujar paredes ------------------------------------------- # -------------------------------------------------------------------------------------------------------- # Bounding rect para centrar boundingRect = union_polygon.boundingRect() if len(result_polygon_list) > 1: result_polygon_list.append(QPolygonF(boundingRect, closed=True)) center = boundingRect.center() for polygon in result_polygon_list: polygon.translate( -center) # Desplazo los poligonos para que la habitación esté centrada prev_point = polygon[0] for i, curr_point in enumerate(polygon): if i == 0: