def __init__(self, fw_code, length, width, coordinates_pair): Node.__init__(self, coordinates_pair[0], coordinates_pair[1]) self.fw_code = fw_code self.left = None self.right = None self.key_in = {} self.wait_in = {} self.key_out = None self.side = left self.length = length self.width = width self.waiting = False self.packer = newPacker(sort_algo=SORT_NONE, pack_algo=SkylineBl, rotation=False) # GuillotineBssfSas self.packer.add_bin(self.width, self.length) self.packer.pack() # Get the fairway section this belongs to if self.fw_code not in GlobalVars.fairway_section_dict: print("We have problem here..") insertion_idx = -1 min_distance = float('inf') fairway_section = GlobalVars.fairway_section_dict.get(self.fw_code) for idx, fairway_section_node in enumerate(fairway_section.nodes): distance = Utilities.haversine( [self.y, self.x], [fairway_section_node.y, fairway_section_node.x]) if distance < min_distance: min_distance = distance insertion_idx = idx if min_distance == 0: fairway_section.nodes[insertion_idx] = self else: # Append add the best index if insertion_idx >= len(fairway_section.nodes) - 1: insertion_idx = insertion_idx - 1 fairway_section.nodes.insert(insertion_idx + 1, self)
def __init__(self, fw_code, movable, height, coordinates_pair): Node.__init__(self, coordinates_pair[0], coordinates_pair[1]) self.fw_code = fw_code self.left = None self.right = None self.state = closed self.order = None self.moving = None self.movable = movable if height is None or math.isnan(height): height = 0 self.height = height / 100 # Get the fairway section this belongs to if self.fw_code not in GlobalVars.fairway_section_dict: print("We have problem here..") insertion_idx = -1 min_distance = float('inf') fairway_section = GlobalVars.fairway_section_dict.get(self.fw_code) for idx, fairway_section_node in enumerate(fairway_section.nodes): distance = Utilities.haversine( [self.y, self.x], [fairway_section_node.y, fairway_section_node.x]) if distance < min_distance: min_distance = distance insertion_idx = idx if min_distance == 0: fairway_section.nodes[insertion_idx] = self else: # Append add the best index if insertion_idx >= len(fairway_section.nodes) - 1: insertion_idx = insertion_idx - 1 fairway_section.nodes.insert(insertion_idx + 1, self)