From fb884b82ba20991ca16dd9e03e8c9e7b8a459897 Mon Sep 17 00:00:00 2001
From: Djalim Simaila <DjalimS.pro@outlook.fr>
Date: Mon, 24 Apr 2023 09:19:28 +0200
Subject: [PATCH] general improvement

---
 main.py                         | 37 ++++++++++++++++++++++++++-------
 utils/files/output.py           |  2 +-
 utils/graph2D/visplot_render.py |  3 ---
 utils/graph3D/visplot_render.py |  1 -
 4 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/main.py b/main.py
index 6a757a5..f2b288a 100644
--- a/main.py
+++ b/main.py
@@ -3,8 +3,9 @@ from utils.files import output
 from utils.files.input import ScannedObject
 from utils.math.position_manipulation import verticalise
 from utils.graph3D.visplot_render import render3D
+import time
 
-def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
+def get_raw_data(obj:ScannedObject, ndigits:int, delta_z:int = 1)->dict:
     """
     Calculates data from the given object
 
@@ -23,7 +24,7 @@ def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
     data = {}
     for colone in colones:
         data[colone] = []
-    for discrete_values in obj.get_discrete_vertices():
+    for discrete_values in obj.get_discrete_vertices(delta_z):
         mean_x ,mean_y, mean_z = data_extraction.get_x_y_z_mean(discrete_values)
         for x,y,z in discrete_values:
             data["X (en mm)"].append(round(x, ndigits))
@@ -35,7 +36,7 @@ def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
             data["Yi-Ymoy"].append(round(y-mean_y, ndigits))
     return data
 
-def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
+def get_discrete_data(obj:ScannedObject, ndigits:int,delta_z:int= 1)->dict:
     """
     Calculates data from the given object
 
@@ -52,7 +53,7 @@ def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
     data = {}
     for colone in colones:
         data[colone] = []
-    for discrete_values in obj.get_discrete_vertices():
+    for discrete_values in obj.get_discrete_vertices(delta_z):
         x,y,z = data_extraction.get_x_y_z_mean(discrete_values)
         data["X moy (en mm)"].append(round(x, ndigits))
         data["Y moy (en mm)"].append(round(y, ndigits))
@@ -66,12 +67,26 @@ def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
 
 def main():
     # Create an object from the given file
+    total_time = time.time()
+    print("Loading file...")
+    t = time.time()
     obj = ScannedObject.from_obj_file("datasets/Barette/1 - BARETTE.obj")
+    print("File loaded in {} seconds".format(time.time()-t))
+    t = time.time()
+    print("Verticalising object...")
     verticalise(obj)
+    print("Object verticalised in {} seconds".format(time.time()-t))
+    t = time.time() 
+    print("Normalising object...")
     obj.normalise()
+    print("Object normalised in {} seconds".format(time.time()-t))
 
     # Calculate raw data and save it in a file
-    data = get_raw_data(obj, 6)
+    t = time.time()
+    data = get_raw_data(obj, 6,2)
+    print("Raw data calculated in {} seconds".format(time.time()-t))
+    t = time.time()
+    print("Saving data...")
     output.save_output_file('analyse_brute.txt',
                              output.format_data(data,
                                                 '\t',
@@ -82,9 +97,15 @@ def main():
                                                 "rayon (en mm)",
                                                 "Xi-Xmoy",
                                                 "Yi-Ymoy"] ))
-
+    print("Data saved in {} seconds".format(time.time()-t))
+    
     # Calculate discrete data and save it in a file
-    data = get_discrete_data(obj, 6)
+    t = time.time()
+    print("Calculating discrete data...")
+    data = get_discrete_data(obj, 6,2)
+    print("Discrete data calculated in {} seconds".format(time.time()-t))
+    t = time.time()
+    print("Saving data...")
     output.save_output_file('analyse_rayon.txt',
                              output.format_data(data,
                                                 '\t',
@@ -94,6 +115,8 @@ def main():
                                                 "Delta z(en mm)",
                                                 "Rayon moyen (en mm)",
                                                 "Rayon ecart type (en mm)"] ))
+    print("Data saved in {} seconds".format(time.time()-t))
+    print("Total time : {} seconds".format(time.time()-total_time))
 
 if __name__ == '__main__':
     main()
\ No newline at end of file
diff --git a/utils/files/output.py b/utils/files/output.py
index 3eca9ab..ec1f1ab 100644
--- a/utils/files/output.py
+++ b/utils/files/output.py
@@ -32,7 +32,7 @@ def format_data(data:dict, separator:str, selected_columns:list = None) -> str:
     output += '\n'
     for i in range(len(data[selected_columns[0]])):
         for column in selected_columns:
-            output += str(data[column][i]).ljust(len(column)) + separator
+            output += str(data[column][i]).ljust(len(column) if len(column) > 6 else 7 ) + separator
         output += '\n'
     return output
 
diff --git a/utils/graph2D/visplot_render.py b/utils/graph2D/visplot_render.py
index 86627b1..81e2c22 100644
--- a/utils/graph2D/visplot_render.py
+++ b/utils/graph2D/visplot_render.py
@@ -1,8 +1,6 @@
 import vispy.plot as vp
 import numpy as np
 
-
-
 def render2D(values:list):
     fig = vp.Fig(size=(600, 500), show=False)
     plotwidget = fig[0, 0]
@@ -11,7 +9,6 @@ def render2D(values:list):
     plotwidget.colorbar(position="top", cmap="autumn")
     fig.show(run=True)
 
-
 def cross_section(x:list,y:list):
     color = (0.3, 0.5, 0.8)
     fig = vp.Fig(show=False)
diff --git a/utils/graph3D/visplot_render.py b/utils/graph3D/visplot_render.py
index d2cd0f2..9392ee9 100644
--- a/utils/graph3D/visplot_render.py
+++ b/utils/graph3D/visplot_render.py
@@ -1,7 +1,6 @@
 import numpy as np
 from vispy import app, scene
 from vispy.scene.visuals import Mesh
-from vispy.scene import transforms
 from vispy.visuals.filters import ShadingFilter, WireframeFilter
 from utils.files.input import ScannedObject
 
-- 
GitLab