def combineAction(): global course_json other_course_dir = tk.filedialog.askdirectory( initialdir=".", title="Select second course directory") if other_course_dir: drawPlaceholder() course1_json = copy.deepcopy( course_json) # Make copy so this isn't "permanent" in memory course2_json = tgc_tools.get_course_json(other_course_dir) course1_json = tgc_tools.merge_courses(course1_json, course2_json) drawCourse(course1_json) popup = tk.Toplevel() popup.geometry("400x400") popup.wm_title("Confirm course merge?") label = ttk.Label(popup, text="Confirm course merge?") label.pack(side="top", fill="x", pady=10) B1 = ttk.Button(popup, text="Yes, Merge", command=partial(confirmCourse, popup, course1_json)) B1.pack() B2 = ttk.Button(popup, text="No, Abandon Merge", command=partial(confirmCourse, popup, None)) B2.pack() popup.mainloop()
def importCourseAction(): global root global course_json if not root or not hasattr(root, 'filename'): alert("Select a course directory before importing a .course file") return input_course = tk.filedialog.askopenfilename(title='Course File', defaultextension='course', initialdir=root.filename, filetypes=course_types) if input_course: drawPlaceholder() tgc_tools.unpack_course_file(root.filename, input_course) course_json = tgc_tools.get_course_json(root.filename) name_entry.configure(state='normal') course_name_var.set(course_json["name"]) drawCourse(course_json)
def getCourseDirectory(output): global root global course_json cdir = tk.filedialog.askdirectory(initialdir = ".", title = "Select course directory") if cdir: root.filename = cdir output.config(text=root.filename) drawPlaceholder() # Clear out existing course while picking a new one try: course_json = tgc_tools.get_course_json(root.filename) name_entry.configure(state='normal') course_name_var.set(course_json["name"]) if course_json is not None: drawCourse(course_json) except: pass
object_color = (0.95, 0.9, 0.2) drawObjectsOnImage(course_json["placedObjects2"], object_color, im, pc, image_scale) # Last draw holes themselves hole_color = (0.9, 0.3, 0.2) drawHolesOnImage(course_json["holes"], hole_color, im, pc, image_scale) return im if __name__ == "__main__": print("main") if len(sys.argv) < 2: print("Usage: python program.py COURSE_DIRECTORY") sys.exit(0) else: lidar_dir_path = sys.argv[1] print("Loading course file") course_json = tgc_tools.get_course_json(lidar_dir_path) im = drawCourseAsImage(course_json) fig = plt.figure() plt.imshow(im, origin='lower') plt.show()
# Automatically adjust course elevation if options_dict.get('auto_elevation', True): printf("Moving course to lowest valid elevation") course_json = tgc_tools.elevate_terrain(course_json, None, printf=printf) # Automatic rotate to fit if needed if options_dict.get('auto_position', True): printf("Adjusting course to fit on map") course_json = tgc_tools.auto_position_course(course_json, printf=printf) printf("Course Description Complete") return course_json if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python program.py COURSE_DIRECTORY HEIGHTMAP_DIRECTORY") sys.exit(0) else: course_dir_path = sys.argv[1] heightmap_dir_path = sys.argv[2] print("Getting course description") course_json = tgc_tools.get_course_json(course_dir_path) print("Generating course") course_json = generate_course(course_json, heightmap_dir_path) print("Saving new course description") tgc_tools.write_course_json(course_dir_path, course_json)