Skip to content
Snippets Groups Projects
  1. May 22, 2023
  2. May 17, 2023
  3. May 16, 2023
    • Djalim Simaila's avatar
      :rocket: feat(docs): add Sphinx documentation to the project · be673c97
      Djalim Simaila authored
      The Sphinx documentation has been added to the project. This includes a Makefile, a make.bat file, and a conf.py file in the docs directory. The source directory contains the documentation files in reStructuredText format. The documentation includes an installation guide and an API reference. The utils package has been reorganized to be more modular and easier to document. The documentation can be built using the `make html` command in the docs directory.
      
      :tada: feat(utils): add new modules and packages to the project
      New modules and packages have been added to the project. The following packages have been added:
      - utils.gui.pyqt.about
      - utils.gui.pyqt.error_popup
      - utils.gui.pyqt.main_window
      - utils.gui.pyqt.settings
      - utils.math
      - utils.settings
      
      The new packages contain modules that provide additional functionality to the project.
      be673c97
    • Djalim Simaila's avatar
      :art: style(data_processing.py): fix typo in variable names · e57d9e98
      Djalim Simaila authored
      The variable names σ_〈R〉 and σ_〈R〉^tot were corrected to σ_<R> and σ_<R>^tot respectively to improve consistency with the naming conventions used in the rest of the code.
      e57d9e98
    • Djalim Simaila's avatar
      :mag: chore(data_processing.py): add missing variables to the documentation · 16750d84
      Djalim Simaila authored
      This commit adds missing variables to the documentation of the `get_advanced_data` function in `data_processing.py`. The added variables are `H`, `L`, `l`, `MI_mR`, `MI_mH`, `MI_mr_in`, `V_scan`, `R_V_scan`, `S_V_scan`, and `HI`. This improves the documentation of the function and makes it easier for developers to understand the function's behavior.
      16750d84
  4. May 15, 2023
    • Djalim Simaila's avatar
      :rocket: feat(README.md): add support for .stl file format · 70b4e11b
      Djalim Simaila authored
      :bug: fix(data_processing.py): fix typo in advanced data keys and add R_max to advanced data
      :sparkles: feat(MainWindow.py): add support for exporting advanced data to a text file
      :art: style(MainWindow.ui, UI_MainWindow.py): change the display of advanced data labels to use <R> instead of 〈R〉 and σ<R> instead of σ〈R〉
      The README.md file now reflects the fact that the tool can now read .stl files. The advanced data keys in data_processing.py have been fixed to use the correct symbols and R_max has been added to the advanced data. The MainWindow.py now allows the user to export the advanced data to a text file. The display of advanced data labels in MainWindow.ui and UI_MainWindow.py has been changed to use <R> instead of 〈
      70b4e11b
  5. May 12, 2023
    • Djalim Simaila's avatar
      :bug: fix(input.py): add authorised_extensions as a static variable to ScannedObject class · 5babe707
      Djalim Simaila authored
      :sparkles: feat(input.py): add support for binary and ascii STL files to ScannedObject class
      The ScannedObject class now has a static variable called authorised_extensions which contains a list of file extensions that are supported by the class. This improves the readability of the code and makes it easier to maintain. The ScannedObject class now also supports binary and ascii STL files, which increases the flexibility of the class and allows it to handle more file formats.
      5babe707
    • Djalim Simaila's avatar
      :rocket: feat(MainWindow.py, PreProcessWorker.py, Settings.py, UI_Settings.py,... · 5a6be471
      Djalim Simaila authored
      :rocket: feat(MainWindow.py, PreProcessWorker.py, Settings.py, UI_Settings.py, settings.ui): add support for verticalising scanned objects
      :sparkles: feat(Settings.py, UI_Settings.py, settings.ui): add checkbox to enable/disable verticalisation of scanned objects
      The changes add support for verticalising scanned objects before processing them. A new checkbox has been added to the settings UI to enable/disable this feature.
      
      :wrench: refactor(SettingManager.py): add default settings dictionary and refactor createInitialSettings method
      :sparkles: feat(SettingManager.py): add new settings to the config file if they are not present
      The `default_settings` dictionary is added to the `SettingManager` class to store the default values for the settings. The `createInitialSettings` method is refactored to use the `default_settings` dictionary to set the initial values of the settings. If new settings are added to the `default_settings` dictionary, they are added to the config file if they are not already present. The `remove_changed` method is added to remove the `has_changed` flag.
      5a6be471
    • Djalim Simaila's avatar
      :pencil: docs(README.md): capitalize the first letter of the title · 914d6bb7
      Djalim Simaila authored
      The first letter of the title "Analyse morphologique" was not capitalized, which is inconsistent with the usual capitalization rules for titles.
      
      :frame_photo: chore(README.md): update image and fix typo in rotation instructions
      The image in the README.md file was updated to reflect the correct rotation instructions. A typo in the rotation instructions was also fixed.
      
      :busts_in_silhouette: chore(README.md): fix typo in contributor's role
      A typo in the role of one of the contributors was fixed.
      
      :bug: fix(data_processing.py): add missing half discretisation values to L calculation
      The calculation of L in the get_advanced_data function of data_processing.py was missing half the discretisation values at the beginning and end of the object.
      
      :bug: fix(input.py): remove print statement
      A print statement was accidentally left in the from_xyz_file method of the ScannedObject class in input
      914d6bb7
  6. May 11, 2023
    • Djalim Simaila's avatar
      :bug: fix(input.py): handle case where faces is None in ScannedObject constructor · d64c8dd3
      Djalim Simaila authored
      :sparkles: feat(input.py): add support for reading .xyz files and raise InvalidFileFormat exception if file format is not supported
      :children_crossing: chore(gui): add warning popup when trying to use Mesh3D graph with .xyz file
      :children_crossing: chore(gui): refactor MainWindow.check_input_file method to handle .xyz files
      :children_crossing: chore(gui): refactor PreProcessWorker to use ScannedObject.from_file method
      :children_crossing: chore(math): add check for faces in verticalise function to avoid errors when faces is None
      The ScannedObject constructor now handles the case where faces is None. Support for reading .xyz files has been added, and an InvalidFileFormat exception is raised if the file format is not supported. A warning popup has been added to the MainWindow when trying to use the Mesh3D graph with a .xyz file. The MainWindow.check_input_file method
      d64c8dd3
    • Djalim Simaila's avatar
      chore: remove unused files · 4430309b
      Djalim Simaila authored
      4430309b
    • Djalim Simaila's avatar
      :pencil: docs(README.md): improve readability and fix typos · 6d03b848
      Djalim Simaila authored
      This commit improves the readability of the README.md file by fixing typos and grammatical errors. The changes include correcting the capitalization of some words, fixing the spelling of some words, and improving the formatting of the text. The commit also adds instructions for using the 2D and 3D graphs, and adds information for developers, including the variable naming convention, the use of relative imports, and the use of Qt Designer. Finally, the commit adds a contributors section to acknowledge the contributions of the developers who worked on the project.
      6d03b848
    • Djalim Simaila's avatar
      :pencil: docs(README.md): update README with new features and installation instructions · d1811b99
      Djalim Simaila authored
      The README file has been updated to include a more detailed description of the Analyse Morphologique tool, including its features and capabilities. Additionally, installation and usage instructions have been added to the README file to help users get started with the tool.
      d1811b99
  7. May 10, 2023
    • Djalim Simaila's avatar
      :bookmark: chore(SettingManager.py): update version to 1.2.0 · 68034433
      Djalim Simaila authored
      :hammer: refactor(SettingManager.py): reorder authors list and update description
      The version number has been updated to 1.2.0 to reflect the changes made to the application. The authors list has been reordered and the description has been updated to provide a more detailed explanation of the tool's functionality.
      68034433
    • Djalim Simaila's avatar
      :art: style(UI_MainWindow.py): set x_mean QDoubleSpinBox to read-only · 46f91432
      Djalim Simaila authored
      The x_mean QDoubleSpinBox is now set to read-only to prevent the user from changing its value.
      46f91432
    • Djalim Simaila's avatar
      :art: style(MainWindow.ui, UI_MainWindow.py): update GUI elements default values · 283930b1
      Djalim Simaila authored
      The default value of the "show_graph_checkbox" element has been changed from false to true. The "x_mean" element has been set to read-only mode. The "scrollAreaWidgetContents" element has been shifted upwards by 179 pixels to improve the layout. These changes improve the user experience and make the GUI more intuitive.
      283930b1
    • Djalim Simaila's avatar
      :wrench: refactor(MainWindow.py): move connection of refresh_advanced_metrics button to its own method · e1d3ad7a
      Djalim Simaila authored
      :wrench: refactor(MainWindow.py): rename process_advanced_data method to process_advanced_metrics to improve semantics
      :wrench: refactor(AdvancedDataWorker.py): add V_scan parameter to constructor to improve semantics
      :wrench: refactor(Settings.py): add conditional to set output_file_separator to '\t' if '\\t' is entered
      The refresh_advanced_metrics button is now connected to its own method to improve readability. The process_advanced_data method has been renamed to process_advanced_metrics to better reflect its purpose. The AdvancedDataWorker constructor now takes a V_scan parameter to improve semantics. The Settings class now has a conditional to set the output_file_separator to '\t' if '\\t' is entered to improve consistency.
      e1d3ad7a
    • Djalim Simaila's avatar
      033ecb96
    • Djalim Simaila's avatar
      :hammer: refactor(data_processing.py): rename function parameter to improve semantics · aeb8c6ed
      Djalim Simaila authored
      The function parameter `update_progress_bar` has been renamed to `progressbar_placeholder` to improve the semantics of the function. This change does not affect the functionality of the code.
      
      :sparkles: feat(data_processing.py): add new morphological indicators to the output of the `get_advanced_data` function
      The `get_advanced_data` function now calculates and returns the following morphological indicators:
      - MI_mR: the ratio of the maximum radius to the mean radius
      - MI_mH: the ratio of the maximum radius to the height of the object
      - V_scan: the volume of the scanned object
      - R_V_scan: the radius of a sphere with the same volume as the scanned object
      - S_V_scan: the surface area of a sphere with the same volume as the scanned object
      - R_h: the hydraulic radius of the object
      - HI: the hydraulic index of the object
      aeb8c6ed
    • Djalim Simaila's avatar
      :wrench: chore(data_processing.py): update keys in the dict returned by... · 16f43c21
      Djalim Simaila authored
      :wrench: chore(data_processing.py): update keys in the dict returned by get_advanced_data function to be more descriptive
      :sparkles: feat(MainWindow.py): add functionality to export advanced data to a text file
      :rocket: feat(MainWindow.py): add button to export advanced data to a text file
      :rocket: feat(MainWindow.ui): update labels for Volume and Surface to include units
      The keys in the dict returned by the get_advanced_data function were updated to be more descriptive. The export_advanced_data function was added to the MainWindow class to allow the user to export the advanced data to a text file. A button was added to the GUI to allow the user to export the advanced data. The labels for Volume and Surface were updated to include the units of measurement.
      
      :art: style(UI_MainWindow.py): rename tab_5 to parameters and tab_6 to values for better semantics
      The names of the tabs have been changed to better reflect their contents. The tab previously named tab_5 is now named parameters, and the tab previously named tab_6 is now named values. This improves the readability and maintainability of the code.
      
      :art: style(UI_MainWindow.py): rename tab_6 to values and tab to graph_pane_1, tab_2 to graph_pane_2, tab_3 to graph_pane_3, and tab_4 to graph_pane_4 for better semantics
      This commit only renames the tabs in the UI_MainWindow.py file to improve the semantics of the code. The tab_6 is renamed to values, and tab, tab_2, tab_3, and tab_4 are renamed to graph_pane_1, graph_pane_2, graph_pane_3, and graph_pane_4, respectively.
      
      :hammer: refactor(UI_MainWindow.py): update labels for volume and surface to include units
      The labels for volume and surface have been updated to include the units of measurement in millimeters. The tab names for the settings and graph panes have also been updated to improve readability and consistency with the naming conventions.
      
      :hammer: refactor(AdvancedDataWorker.py): update keys in the dict returned by the function to be more explicit
      :hammer: refactor(position_manipulation.py): remove unnecessary computation of the center of gravity in the verticalise function
      The keys in the dict returned by the AdvancedDataWorker function have been updated to be more explicit. The keys 'Volume' and 'Surface' have been updated to 'Volume en mm3' and 'Surface en mm2' respectively to indicate the units of measurement. In the position_manipulation.py file, the computation of the center of gravity in the verticalise function was unnecessary and has been removed to improve performance.
      16f43c21
  8. May 09, 2023
    • Djalim Simaila's avatar
      :bug: fix(data_test.py): change variable name from teta_diffs to theta_diffs to improve semantics · fb2bb6e9
      Djalim Simaila authored
      :sparkles: feat(data_processing.py): add function to calculate morphological indicators from discrete data
      The variable name teta_diffs was changed to theta_diffs to improve semantics. A new function was added to calculate morphological indicators from discrete data. The function calculates Tortuosity, Volume, Surface, Mean radius, Standard deviation of radius, Sigma r tot, MI_l, and MI_p.
      
      :fire: refactor(input.py): remove unused result_file_path parameter from ScannedObject constructor and from_xyz_file method
      :sparkles: feat(input.py): add encoding parameter to open method in from_obj_file and from_xyz_file methods
      The result_file_path parameter was not being used in the ScannedObject constructor and from_xyz_file method, so it was removed to simplify the code. The encoding parameter was added to the open method in the from_obj_file and from_xyz_file methods to ensure that the files are opened with the correct encoding.
      
      :bug: fix(output.py): add utf-8 encoding when writing to output file
      :sparkles: feat(output.py): remove unused import and function argument, improve code readability
      The fix adds the utf-8 encoding when writing to the output file to avoid encoding issues. The feat removes the unused import and function argument to improve code readability. The function format_data now only takes the necessary arguments and the unused import is removed.
      
      :bug: fix(main_window.py): fix typo in function name
      :sparkles: feat(main_window.py): add persistence to pre-processed data
      The fix corrects a typo in the function name get_true_theta_from_x_y. The feat adds persistence to the pre-processed data by storing the raw data, discrete data, and advanced data in the main window. This avoids re-computation of the data when switching between tabs.
      
      :art: style(MainWindow.ui): add export_advanced_metrics button to the UI
      :art: style(UI_MainWindow.py): add export_advanced_metrics button to the UI
      :art: style(ressources_rc.py): update the resource file
      :bug: fix(data_extraction.py): fix typo in function name get_mean_teta to get_mean_theta
      The changes add a new button to the UI named "export_advanced_metrics" which allows the user to export variables. The resource file is updated to reflect the changes. The typo in the function name get_mean_teta is fixed to get_mean_theta.
      fb2bb6e9
    • Djalim Simaila's avatar
      :pencil: docs(DiscreteDataWorker.py): add docstring to run() method · 44020856
      Djalim Simaila authored
      This commit adds a docstring to the run() method in the DiscreteDataWorker class. The docstring explains what the method does, what it calculates, and what it emits. It also mentions that the result is saved in a file located in the output_path. This improves the readability and maintainability of the code.
      44020856
    • Djalim Simaila's avatar
      :pencil: docs(AdvancedDataWorker.py): update docstrings to reflect changes in the module · a0e05be9
      Djalim Simaila authored
      The name of the module has been changed to AdvancedDataWorker.py to better reflect its functionality. The description has been updated to include the extraction of morphological indicators. The parameters and instance variables have been updated to reflect the change in functionality. The run() method has been updated to include a description of the emitted signal and the keys of the dictionary that is emitted.
      a0e05be9
    • Djalim Simaila's avatar
      :hammer: refactor(PreProcessWorker.py): rename objpath to obj_path and... · 8357be80
      Djalim Simaila authored
      :hammer: refactor(PreProcessWorker.py): rename objpath to obj_path and discretisation_value to delta_z for better readability
      This commit renames the objpath parameter to obj_path and discretisation_value to delta_z for better readability and consistency with the naming conventions. The function run() has been updated to include a more detailed description of what it does.
      8357be80
    • Djalim Simaila's avatar
      :pencil: docs(RawDataWorker.py): add docstring to run method · a12b4238
      Djalim Simaila authored
      :bug: fix(RawDataWorker.py): fix typo in theta key name in the output dict
      :sparkles: feat(RawDataWorker.py): save the result of the calculation in a file located in the output_path
      The run method now has a docstring that explains what it does. The typo in the theta key name in the output dict has been fixed. The result of the calculation is now saved in a file located in the output_path. This improves the functionality of the RawDataWorker class.
      a12b4238
  9. May 04, 2023
  10. May 03, 2023
    • Djalim Simaila's avatar
      :bug: fix(.gitignore): add test.py to the list of ignored files · 81755612
      Djalim Simaila authored
      :sparkles: feat(data_processing.py): remove deprecated get_discrete_vertices2 method and rename get_discrete_vertices3 to get_discrete_vertices. Simplify get_discrete_vertices method by removing the selection of the discretisation method from the settings and always using the Z0-Zi < DeltaZ method. This improves code readability and maintainability.
      :sparkles: feat(input.py): remove deprecated result_file_path and bruteforce_discretization_result attributes from ScannedObject class. Add old_delta, old_discrete, and old_discrete_type attributes to cache the results of the get_discrete_vertices method. This improves performance by avoiding unnecessary recomputations of the discretized vertices.
      :sparkles: feat(MainWindow.py): add support for selecting a layer to display discrete graphs for. Add two new graph types: "Coupe de la couche" and "Difference entre le rayon de chaque points
      
      :wrench: fix(ui): change tab index to display the correct tab on startup
      :sparkles: feat(ui): add label and combobox to select layer to display
      :wrench: fix(worker): add discretisation_value parameter to PreProcessWorker constructor
      :sparkles: feat(math): add get_true_teta_from_x_y, get_difference_from_mean_value, and get_distance_between_two_vertices functions
      The UI fix changes the tab index to display the correct tab on startup. The new label and combobox allow the user to select the layer to display. The worker fix adds a discretisation_value parameter to the PreProcessWorker constructor. The new math functions are get_true_teta_from_x_y, get_difference_from_mean_value, and get_distance_between_two_vertices. These functions are useful for calculating teta, differences from mean values, and distances between vertices.
      81755612
  11. May 02, 2023
  12. Apr 28, 2023
Loading