@@ -54,6 +54,8 @@ class ConverterUI:
5454 generateNormals = False
5555 save_normals = False
5656 decimatePercentage = 100
57+ mergePoints = False
58+ mergeDistance = 0.001
5759
5860 validModelTypes = ["obj" , "3ds" , "fbx" , "glb" , "gltf" , "obj" , "ply" , "ptx" , "stl" , "xyz" , "pts" ]
5961 validImageTypes = ["jpg" , "jpeg" , "png" , "bmp" , "tga" ]
@@ -106,10 +108,18 @@ def set_Generate_Normals_enabled_cb(self, sender, app_data):
106108 dpg .set_value (self .save_normals_ID , app_data )
107109 self .write_settings_string ("generateNormals" , str (app_data ))
108110
109- def set_normales_enabled_cb (self , sender , app_data ):
111+ def set_normals_enabled_cb (self , sender , app_data ):
110112 self .save_normals = app_data
111113 self .write_settings_string ("saveNormals" , str (app_data ))
112114
115+ def set_Merge_Points_cb (self , sender , app_data ):
116+ self .mergePoints = app_data
117+ self .write_settings_string ("mergePoints" , str (app_data ))
118+
119+ def set_Merge_Distance_cb (self , sender , app_data ):
120+ self .mergeDistance = app_data
121+ self .write_settings_string ("mergeDistance" , str (app_data ))
122+
113123 def start_conversion_cb (self ):
114124
115125 if (self .isRunning ):
@@ -151,6 +161,8 @@ def start_conversion_cb(self):
151161 convertSettings .decimatePercentage = self .decimatePercentage
152162 convertSettings .saveNormals = self .save_normals
153163 convertSettings .generateNormals = self .generateNormals
164+ convertSettings .mergePoints = self .mergePoints
165+ convertSettings .mergeDistance = self .mergeDistance
154166
155167 self .converter .start_conversion (convertSettings , self .single_conversion_finished_cb )
156168
@@ -286,8 +298,10 @@ def load_config(self):
286298 self .config ['Settings' ]['ASTC' ] = "true"
287299 self .config ['Settings' ]['decimatePointcloud' ] = "false"
288300 self .config ['Settings' ]['decimatePercentage' ] = "100"
289- self .config ['Settings' ]['saveNormals' ] = "true "
301+ self .config ['Settings' ]['saveNormals' ] = "false "
290302 self .config ['Settings' ]['generateNormals' ] = "false"
303+ self .config ['Settings' ]['mergePoints' ] = "false"
304+ self .config ['Settings' ]['mergeDistance' ] = "0.001"
291305 self .save_config ()
292306
293307 self .config .read (self .configPath )
@@ -430,14 +444,19 @@ def RunUI(self):
430444 dpg .add_spacer (height = 30 )
431445
432446 dpg .add_text ("General settings:" )
433- self .save_normals_ID = dpg .add_checkbox (label = "Save normals" , default_value = self .save_normals , callback = self .set_normales_enabled_cb )
447+ self .save_normals_ID = dpg .add_checkbox (label = "Save normals" , default_value = self .save_normals , callback = self .set_normals_enabled_cb )
434448
435449 dpg .add_spacer (height = 5 )
436450
437451 with dpg .collapsing_header (label = "Pointcloud settings" , default_open = False ) as header_pcSettings_ID :
438452 self .pointcloud_decimation_ID = dpg .add_checkbox (label = "Decimate Pointcloud" , default_value = self .decimatePointcloud , callback = self .set_Decimation_enabled_cb )
439453 dpg .add_same_line ()
440454 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 )
455+
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 )
459+
441460 self .generate_normals_ID = dpg .add_checkbox (label = "Estimate normals" , default_value = self .generateNormals , callback = self .set_Generate_Normals_enabled_cb )
442461
443462
0 commit comments