@@ -419,6 +419,8 @@ def set_viewport_height(self, pointcloud_settings, texture_settings):
419419
420420 def RunUI (self ):
421421
422+ dpg .create_context ()
423+
422424 self .InitDefaultPaths ()
423425 self .config = configparser .ConfigParser ()
424426 self .load_config ()
@@ -427,15 +429,15 @@ def RunUI(self):
427429 self .decimatePointcloud = self .read_config_bool ("decimatePointcloud" )
428430 self .decimatePercentage = int (self .read_settings_string ("decimatePercentage" ))
429431
430- dpg .create_context ()
431432 dpg .configure_app (manual_callback_management = True )
432433 dpg .create_viewport (height = 500 , width = 500 , title = "Geometry Sequence Converter" )
433434 dpg .setup_dearpygui ()
434-
435+
435436 with dpg .window (label = "Geometry Sequence Converter" , tag = "main_window" , min_size = [500 , 500 ]):
436-
437+
437438 dpg .add_button (label = "Select Input Directory" , callback = lambda :self .open_input_dir_cb ())
438439 self .text_input_Dir_ID = dpg .add_text (self .inputSequencePath , wrap = 450 )
440+
439441 dpg .add_spacer (height = 40 )
440442
441443 dpg .add_button (label = "Select Output Directory" , callback = lambda :self .open_output_dir_cb ())
@@ -445,21 +447,21 @@ def RunUI(self):
445447
446448 dpg .add_text ("General settings:" )
447449 self .save_normals_ID = dpg .add_checkbox (label = "Save normals" , default_value = self .save_normals , callback = self .set_normals_enabled_cb )
448-
450+
449451 dpg .add_spacer (height = 5 )
450452
451453 with dpg .collapsing_header (label = "Pointcloud settings" , default_open = False ) as header_pcSettings_ID :
452- self .pointcloud_decimation_ID = dpg .add_checkbox (label = "Decimate Pointcloud" , default_value = self .decimatePointcloud , callback = self .set_Decimation_enabled_cb )
453- dpg .add_same_line ()
454- self .decimation_percentage_ID = dpg .add_input_int (label = " %" , default_value = self .decimatePercentage , min_value = 0 , max_value = 100 , width = 80 , callback = self .set_Decimation_percentage_cb )
455454
456- self .pointcloud_merge_ID = dpg .add_checkbox (label = "Merge Points by Distance: " , default_value = self .mergePoints , callback = self .set_Merge_Points_cb )
457- dpg .add_same_line ()
458- self .merge_distance_ID = dpg .add_input_float (label = "" , default_value = self .mergeDistance , callback = self .set_Merge_Distance_cb , min_value = 0 , width = 200 )
455+ with dpg .group (horizontal = True ):
456+ self .pointcloud_decimation_ID = dpg .add_checkbox (label = "Decimate Pointcloud" , default_value = self .decimatePointcloud , callback = self .set_Decimation_enabled_cb )
457+ self .decimation_percentage_ID = dpg .add_input_int (label = " %" , default_value = self .decimatePercentage , min_value = 0 , max_value = 100 , width = 80 , callback = self .set_Decimation_percentage_cb )
458+
459+ with dpg .group (horizontal = True ):
460+ self .pointcloud_merge_ID = dpg .add_checkbox (label = "Merge Points by Distance: " , default_value = self .mergePoints , callback = self .set_Merge_Points_cb )
461+ self .merge_distance_ID = dpg .add_input_float (label = " " , default_value = self .mergeDistance , callback = self .set_Merge_Distance_cb , min_value = 0 , width = 200 )
459462
460463 self .generate_normals_ID = dpg .add_checkbox (label = "Estimate normals" , default_value = self .generateNormals , callback = self .set_Generate_Normals_enabled_cb )
461464
462-
463465 dpg .add_spacer (height = 5 )
464466
465467 with dpg .collapsing_header (label = "Texture settings" , default_open = False ) as header_textureSettings_ID :
@@ -469,15 +471,14 @@ def RunUI(self):
469471
470472 self .text_error_log_ID = dpg .add_text ("" , color = [255 , 0 , 0 ], wrap = 450 )
471473 self .text_info_log_ID = dpg .add_text ("" , color = [255 , 255 , 255 ], wrap = 450 )
472-
474+
473475 self .progress_bar_ID = dpg .add_progress_bar (default_value = 0 , width = 470 )
474476 dpg .add_spacer (height = 5 )
475- dpg .add_button (label = "Start Conversion" , callback = lambda :self .start_conversion_cb ())
476- dpg .add_same_line ()
477- dpg .add_button (label = "Cancel" , callback = lambda :self .cancel_processing_cb ())
478- dpg .add_same_line ()
479- self .thread_count_ID = dpg .add_input_int (label = "Thread count" , default_value = 8 , min_value = 0 , max_value = 64 , width = 100 , tag = "threadCount" )
480477
478+ with dpg .group (horizontal = True ):
479+ dpg .add_button (label = "Start Conversion" , callback = lambda :self .start_conversion_cb ())
480+ dpg .add_button (label = "Cancel" , callback = lambda :self .cancel_processing_cb ())
481+ self .thread_count_ID = dpg .add_input_int (label = "Thread count" , default_value = 8 , min_value = 0 , max_value = 64 , width = 100 , tag = "threadCount" )
481482
482483 dpg .show_viewport ()
483484 dpg .set_primary_window ("main_window" , True )
@@ -492,7 +493,7 @@ def RunUI(self):
492493 dpg .render_dearpygui_frame ()
493494 jobs = dpg .get_callback_queue ()
494495 dpg .run_callbacks (jobs )
495-
496+
496497 if (dpg .is_item_left_clicked (header_pcSettings_ID )):
497498 pointcloud_header_open = not pointcloud_header_open
498499 self .set_viewport_height (pointcloud_header_open , texture_header_open )
@@ -504,7 +505,7 @@ def RunUI(self):
504505 if (self .conversionFinished ):
505506 self .finish_conversion ()
506507 self .conversionFinished = False
507-
508+
508509 # Shutdown threads when they are still running
509510 self .cancel_processing_cb ()
510511 self .save_config ()
0 commit comments