├── .github
├── CI_OVERVIEW.md
└── workflows
│ ├── ci_linux_arch.yml
│ ├── ci_linux_fedora.yml
│ ├── ci_linux_ubuntu.yml
│ ├── ci_linux_ubuntu_armv7.yml
│ ├── ci_macos.yml
│ ├── ci_macos_conda.yml
│ └── ci_windows.yml
├── .gitignore
├── CMakeLists.txt
├── LICENSE.txt
├── README.md
├── cmake
└── OpenCascadeWin.cmake
├── doc
├── 3rdparty_licenses.md
├── screencast_1.gif
├── screencast_cli.gif
├── screenshot_1.png
├── screenshot_2.png
├── screenshot_3.png
├── screenshot_4.png
├── screenshot_5.png
├── screenshot_6.png
├── screenshot_mayoconv_linux.png
├── screenshot_ubuntu_1.png
├── screenshot_ubuntu_2.png
├── screenshot_ubuntu_3.png
├── screenshot_ubuntu_4.png
├── screenshot_ubuntu_5.png
├── screenshot_ubuntu_main.png
├── src_modules.odg
├── src_modules.png
├── win_cmake_01.png
├── win_cmake_02.png
├── win_cmake_03.png
├── win_cmake_04.png
├── win_cmake_05.png
├── win_cmake_06.png
└── win_msvc_mp.png
├── i18n
├── i18n.pro
├── mayo.qrc
├── mayo_en.qm
├── mayo_en.ts
├── mayo_fr.qm
├── mayo_fr.ts
├── mayo_zh.qm
├── mayo_zh.ts
├── messages.cpp
├── qt5base.qrc
├── qt5base_en.qm
├── qt5base_fr.qm
├── qt5base_zh.qm
├── qt6base.qrc
├── qt6base_en.qm
├── qt6base_fr.qm
└── qt6base_zh.qm
├── images
├── appicon.icns
├── appicon.ico
├── appicon.rc
├── appicon.svg
├── appicon_128.png
├── appicon_16.png
├── appicon_24.png
├── appicon_256.png
├── appicon_32.png
├── appicon_64.png
├── credits.txt
├── graphics
│ └── opencascade_hatch_1.png
├── mayo.qrc
├── themes
│ ├── classic
│ │ ├── add-file.svg
│ │ ├── back-square.svg
│ │ ├── back.svg
│ │ ├── camera.svg
│ │ ├── clip-plane.svg
│ │ ├── cross.svg
│ │ ├── edit.svg
│ │ ├── expand.svg
│ │ ├── export.svg
│ │ ├── file.svg
│ │ ├── gear.svg
│ │ ├── grid.svg
│ │ ├── import.svg
│ │ ├── indicator-down-disabled_8.png
│ │ ├── indicator-down_8.png
│ │ ├── item-mesh.svg
│ │ ├── item-xde.svg
│ │ ├── left-sidebar.svg
│ │ ├── link.svg
│ │ ├── measure.svg
│ │ ├── multiple.svg
│ │ ├── next.svg
│ │ ├── open-files.svg
│ │ ├── reload.svg
│ │ ├── stop.svg
│ │ ├── turn-ccw.svg
│ │ ├── turn-cw.svg
│ │ ├── view-back.svg
│ │ ├── view-bottom.svg
│ │ ├── view-front.svg
│ │ ├── view-iso.svg
│ │ ├── view-left.svg
│ │ ├── view-right.svg
│ │ ├── view-top.svg
│ │ ├── xde-assembly.svg
│ │ ├── xde-simple-shape.svg
│ │ ├── zoom-in.svg
│ │ └── zoom-out.svg
│ └── dark
│ │ ├── back-square.svg
│ │ ├── back.svg
│ │ ├── camera.svg
│ │ ├── clip-plane.svg
│ │ ├── cross.svg
│ │ ├── edit.svg
│ │ ├── expand.svg
│ │ ├── export.svg
│ │ ├── file.svg
│ │ ├── gear.svg
│ │ ├── grid.svg
│ │ ├── import.svg
│ │ ├── indicator-down-disabled_8.png
│ │ ├── indicator-down_8.png
│ │ ├── item-mesh.svg
│ │ ├── item-xde.svg
│ │ ├── left-sidebar.svg
│ │ ├── link.svg
│ │ ├── measure.svg
│ │ ├── multiple.svg
│ │ ├── next.svg
│ │ ├── reload.svg
│ │ ├── stop.svg
│ │ ├── turn-ccw.svg
│ │ ├── turn-cw.svg
│ │ ├── view-back.svg
│ │ ├── view-bottom.svg
│ │ ├── view-front.svg
│ │ ├── view-iso.svg
│ │ ├── view-left.svg
│ │ ├── view-right.svg
│ │ ├── view-top.svg
│ │ ├── xde-assembly.svg
│ │ ├── xde-simple-shape.svg
│ │ ├── zoom-in.svg
│ │ └── zoom-out.svg
├── widget_pseudo_fold.png
└── xde_reference_16.png
├── scripts
├── bump-version.rb
├── gen-cmake-opencascade-vars.bat
├── release-i18n.bat
└── update-i18n.bat
├── src
├── 3rdparty
│ ├── commit_fast_float.txt
│ ├── commit_fmt.txt
│ ├── commit_gsl.txt
│ ├── commit_kdbindings.txt
│ ├── commit_magic_enum.txt
│ ├── fast_float
│ │ ├── ascii_number.h
│ │ ├── decimal_to_binary.h
│ │ ├── fast_float.h
│ │ ├── fast_table.h
│ │ ├── float_common.h
│ │ ├── parse_number.h
│ │ └── simple_decimal_conversion.h
│ ├── fmt
│ │ ├── args.h
│ │ ├── base.h
│ │ ├── chrono.h
│ │ ├── color.h
│ │ ├── compile.h
│ │ ├── core.h
│ │ ├── format-inl.h
│ │ ├── format.h
│ │ ├── os.h
│ │ ├── ostream.h
│ │ ├── printf.h
│ │ ├── ranges.h
│ │ ├── src
│ │ │ ├── fmt.cc
│ │ │ ├── format.cc
│ │ │ └── os.cc
│ │ ├── std.h
│ │ └── xchar.h
│ ├── gsl
│ │ ├── algorithm
│ │ ├── assert
│ │ ├── byte
│ │ ├── gsl
│ │ ├── gsl_algorithm
│ │ ├── gsl_assert
│ │ ├── gsl_byte
│ │ ├── gsl_narrow
│ │ ├── gsl_util
│ │ ├── narrow
│ │ ├── pointers
│ │ ├── span
│ │ ├── span_ext
│ │ ├── string_span
│ │ └── util
│ ├── kdbindings
│ │ ├── genindex_array.h
│ │ ├── signal.h
│ │ └── utils.h
│ └── magic_enum
│ │ └── magic_enum.hpp
├── app
│ ├── app_context.cpp
│ ├── app_context.h
│ ├── app_module.cpp
│ ├── app_module.h
│ ├── app_module_properties.cpp
│ ├── app_module_properties.h
│ ├── app_ui_state.cpp
│ ├── app_ui_state.h
│ ├── button_flat.cpp
│ ├── button_flat.h
│ ├── command_system_information.cpp
│ ├── command_system_information_occopengl.cpp
│ ├── command_system_information_occopengl.h
│ ├── commands_api.cpp
│ ├── commands_api.h
│ ├── commands_display.cpp
│ ├── commands_display.h
│ ├── commands_file.cpp
│ ├── commands_file.h
│ ├── commands_help.cpp
│ ├── commands_help.h
│ ├── commands_tools.cpp
│ ├── commands_tools.h
│ ├── commands_window.cpp
│ ├── commands_window.h
│ ├── dialog_about.cpp
│ ├── dialog_about.h
│ ├── dialog_about.ui
│ ├── dialog_inspect_xde.cpp
│ ├── dialog_inspect_xde.h
│ ├── dialog_inspect_xde.ui
│ ├── dialog_options.cpp
│ ├── dialog_options.h
│ ├── dialog_options.ui
│ ├── dialog_save_image_view.cpp
│ ├── dialog_save_image_view.h
│ ├── dialog_save_image_view.ui
│ ├── dialog_task_manager.cpp
│ ├── dialog_task_manager.h
│ ├── dialog_task_manager.ui
│ ├── document_files_watcher.cpp
│ ├── document_files_watcher.h
│ ├── document_property_group.cpp
│ ├── document_property_group.h
│ ├── document_tree_node_properties_providers.cpp
│ ├── document_tree_node_properties_providers.h
│ ├── grid_helper.cpp
│ ├── grid_helper.h
│ ├── gui_document_list_model.cpp
│ ├── gui_document_list_model.h
│ ├── item_view_buttons.cpp
│ ├── item_view_buttons.h
│ ├── iwidget_main_page.h
│ ├── library_info.h
│ ├── list_helper.cpp
│ ├── list_helper.h
│ ├── main.cpp
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ ├── mainwindow.ui
│ ├── occt_window.cpp
│ ├── occt_window.h
│ ├── property_editor_factory.cpp
│ ├── property_editor_factory.h
│ ├── property_item_delegate.cpp
│ ├── property_item_delegate.h
│ ├── proxy_styled_item_delegate.cpp
│ ├── proxy_styled_item_delegate.h
│ ├── qmeta_property.h
│ ├── qmeta_tdf_label.h
│ ├── qstring_utils.cpp
│ ├── qstring_utils.h
│ ├── qtgui_utils.cpp
│ ├── qtgui_utils.h
│ ├── qtwidgets_utils.cpp
│ ├── qtwidgets_utils.h
│ ├── recent_files.cpp
│ ├── recent_files.h
│ ├── theme.cpp
│ ├── theme.h
│ ├── view3d_navigation_style.h
│ ├── widget_clip_planes.cpp
│ ├── widget_clip_planes.h
│ ├── widget_clip_planes.ui
│ ├── widget_explode_assembly.cpp
│ ├── widget_explode_assembly.h
│ ├── widget_explode_assembly.ui
│ ├── widget_file_system.cpp
│ ├── widget_file_system.h
│ ├── widget_grid.cpp
│ ├── widget_grid.h
│ ├── widget_grid.ui
│ ├── widget_gui_document.cpp
│ ├── widget_gui_document.h
│ ├── widget_home_files.cpp
│ ├── widget_home_files.h
│ ├── widget_main_control.cpp
│ ├── widget_main_control.h
│ ├── widget_main_control.ui
│ ├── widget_main_home.cpp
│ ├── widget_main_home.h
│ ├── widget_main_home.ui
│ ├── widget_measure.cpp
│ ├── widget_measure.h
│ ├── widget_measure.ui
│ ├── widget_message_indicator.cpp
│ ├── widget_message_indicator.h
│ ├── widget_model_tree.cpp
│ ├── widget_model_tree.h
│ ├── widget_model_tree.ui
│ ├── widget_model_tree_builder.cpp
│ ├── widget_model_tree_builder.h
│ ├── widget_model_tree_builder_mesh.cpp
│ ├── widget_model_tree_builder_mesh.h
│ ├── widget_model_tree_builder_xde.cpp
│ ├── widget_model_tree_builder_xde.h
│ ├── widget_occ_view.cpp
│ ├── widget_occ_view.h
│ ├── widget_occ_view_controller.cpp
│ ├── widget_occ_view_controller.h
│ ├── widget_occ_view_impl.cpp
│ ├── widget_properties_editor.cpp
│ ├── widget_properties_editor.h
│ ├── widget_properties_editor.ui
│ └── windows
│ │ ├── win_taskbar_global_progress.cpp
│ │ └── win_taskbar_global_progress.h
├── base
│ ├── application.cpp
│ ├── application.h
│ ├── application_item.cpp
│ ├── application_item.h
│ ├── application_item_selection_model.cpp
│ ├── application_item_selection_model.h
│ ├── application_ptr.h
│ ├── bnd_utils.cpp
│ ├── bnd_utils.h
│ ├── brep_utils.cpp
│ ├── brep_utils.h
│ ├── caf_utils.cpp
│ ├── caf_utils.h
│ ├── cpp_utils.h
│ ├── document.cpp
│ ├── document.h
│ ├── document_ptr.h
│ ├── document_tree_node.cpp
│ ├── document_tree_node.h
│ ├── document_tree_node_properties_provider.cpp
│ ├── document_tree_node_properties_provider.h
│ ├── enumeration.cpp
│ ├── enumeration.h
│ ├── enumeration_fromenum.h
│ ├── filepath.h
│ ├── filepath_conv.h
│ ├── geom_utils.cpp
│ ├── geom_utils.h
│ ├── global.h
│ ├── io_format.cpp
│ ├── io_format.h
│ ├── io_parameters_provider.h
│ ├── io_reader.cpp
│ ├── io_reader.h
│ ├── io_single_format_factory.h
│ ├── io_system.cpp
│ ├── io_system.h
│ ├── io_writer.cpp
│ ├── io_writer.h
│ ├── label_data.cpp
│ ├── label_data.h
│ ├── libtree.h
│ ├── math_utils.cpp
│ ├── math_utils.h
│ ├── mesh_access.cpp
│ ├── mesh_access.h
│ ├── mesh_utils.cpp
│ ├── mesh_utils.h
│ ├── messenger.cpp
│ ├── messenger.h
│ ├── messenger_client.cpp
│ ├── messenger_client.h
│ ├── meta_enum.h
│ ├── occ_brep_mesh_parameters.h
│ ├── occ_handle.h
│ ├── occ_progress_indicator.cpp
│ ├── occ_progress_indicator.h
│ ├── occ_static_variables_rollback.cpp
│ ├── occ_static_variables_rollback.h
│ ├── occt_enums.cpp
│ ├── occt_enums.h
│ ├── point_cloud_data.cpp
│ ├── point_cloud_data.h
│ ├── property.cpp
│ ├── property.h
│ ├── property_builtins.cpp
│ ├── property_builtins.h
│ ├── property_enumeration.cpp
│ ├── property_enumeration.h
│ ├── property_value_conversion.cpp
│ ├── property_value_conversion.h
│ ├── quantity.cpp
│ ├── quantity.h
│ ├── settings.cpp
│ ├── settings.h
│ ├── settings_index.h
│ ├── signal.cpp
│ ├── signal.h
│ ├── span.h
│ ├── string_conv.cpp
│ ├── string_conv.h
│ ├── task_common.h
│ ├── task_manager.cpp
│ ├── task_manager.h
│ ├── task_progress.cpp
│ ├── task_progress.h
│ ├── text_id.cpp
│ ├── text_id.h
│ ├── tkernel_utils.cpp
│ ├── tkernel_utils.h
│ ├── triangulation_annex_data.cpp
│ ├── triangulation_annex_data.h
│ ├── typed_scalar.h
│ ├── unit.cpp
│ ├── unit.h
│ ├── unit_system.cpp
│ ├── unit_system.h
│ ├── xcaf.cpp
│ └── xcaf.h
├── cli
│ ├── cli_export.cpp
│ ├── cli_export.h
│ ├── console.cpp
│ ├── console.h
│ └── main.cpp
├── graphics
│ ├── ais_text.cpp
│ ├── ais_text.h
│ ├── graphics_create_driver.cpp
│ ├── graphics_create_virtual_window.cpp
│ ├── graphics_mesh_data_source.cpp
│ ├── graphics_mesh_data_source.h
│ ├── graphics_mesh_object_driver.cpp
│ ├── graphics_mesh_object_driver.h
│ ├── graphics_object_driver.cpp
│ ├── graphics_object_driver.h
│ ├── graphics_object_ptr.h
│ ├── graphics_owner_ptr.h
│ ├── graphics_point_cloud_object_driver.cpp
│ ├── graphics_point_cloud_object_driver.h
│ ├── graphics_scene.cpp
│ ├── graphics_scene.h
│ ├── graphics_shape_object_driver.cpp
│ ├── graphics_shape_object_driver.h
│ ├── graphics_texture2d.h
│ ├── graphics_utils.cpp
│ ├── graphics_utils.h
│ └── graphics_view_ptr.h
├── gui
│ ├── gui_application.cpp
│ ├── gui_application.h
│ ├── gui_document.cpp
│ ├── gui_document.h
│ ├── gui_vkey_mouse.h
│ ├── v3d_view_camera_animation.cpp
│ ├── v3d_view_camera_animation.h
│ ├── v3d_view_controller.cpp
│ └── v3d_view_controller.h
├── io_assimp
│ ├── io_assimp.cpp
│ ├── io_assimp.h
│ ├── io_assimp_reader.cpp
│ └── io_assimp_reader.h
├── io_dxf
│ ├── aci_table.h
│ ├── dxf.cpp
│ ├── dxf.h
│ ├── freecad.h
│ ├── io_dxf.cpp
│ └── io_dxf.h
├── io_gmio
│ ├── io_gmio.cpp
│ ├── io_gmio.h
│ ├── io_gmio_amf_writer.cpp
│ └── io_gmio_amf_writer.h
├── io_image
│ ├── io_image.cpp
│ └── io_image.h
├── io_occ
│ ├── io_occ.cpp
│ ├── io_occ.h
│ ├── io_occ_base_mesh.cpp
│ ├── io_occ_base_mesh.h
│ ├── io_occ_brep.cpp
│ ├── io_occ_brep.h
│ ├── io_occ_caf.cpp
│ ├── io_occ_caf.h
│ ├── io_occ_common.cpp
│ ├── io_occ_common.h
│ ├── io_occ_gltf_reader.cpp
│ ├── io_occ_gltf_reader.h
│ ├── io_occ_gltf_writer.cpp
│ ├── io_occ_gltf_writer.h
│ ├── io_occ_iges.cpp
│ ├── io_occ_iges.h
│ ├── io_occ_obj_reader.cpp
│ ├── io_occ_obj_reader.h
│ ├── io_occ_obj_writer.cpp
│ ├── io_occ_obj_writer.h
│ ├── io_occ_step.cpp
│ ├── io_occ_step.h
│ ├── io_occ_stl.cpp
│ ├── io_occ_stl.h
│ ├── io_occ_vrml_reader.cpp
│ ├── io_occ_vrml_reader.h
│ ├── io_occ_vrml_writer.cpp
│ └── io_occ_vrml_writer.h
├── io_off
│ ├── io_off_reader.cpp
│ ├── io_off_reader.h
│ ├── io_off_writer.cpp
│ └── io_off_writer.h
├── io_ply
│ ├── commit_miniply.txt
│ ├── io_ply_reader.cpp
│ ├── io_ply_reader.h
│ ├── io_ply_writer.cpp
│ ├── io_ply_writer.h
│ ├── miniply.cpp
│ └── miniply.h
├── mayo_config.h.cmake
├── mayo_version.h.cmake
├── measure
│ ├── measure_display.cpp
│ ├── measure_display.h
│ ├── measure_tool.cpp
│ ├── measure_tool.h
│ ├── measure_tool_brep.cpp
│ ├── measure_tool_brep.h
│ └── measure_type.h
├── qtbackend
│ ├── qsettings_storage.cpp
│ ├── qsettings_storage.h
│ ├── qt_animation_backend.cpp
│ ├── qt_animation_backend.h
│ ├── qt_app_translator.cpp
│ ├── qt_app_translator.h
│ ├── qt_signal_thread_helper.cpp
│ └── qt_signal_thread_helper.h
└── qtcommon
│ ├── filepath_conv.h
│ ├── log_message_handler.cpp
│ ├── log_message_handler.h
│ ├── qstring_conv.cpp
│ ├── qstring_conv.h
│ ├── qtcore_hfuncs.h
│ ├── qtcore_utils.cpp
│ └── qtcore_utils.h
└── tests
├── inputs
├── #258_cube.off
├── #332_file.stp
├── cube.bin
├── cube.brep
├── cube.gltf
├── cube.iges
├── cube.mtl
├── cube.obj
├── cube.off
├── cube.ply
├── cube.step
├── cube.stla
├── cube.stlb
├── cube.wrl
├── face_trsf_scale_almost_1.stl
└── mayo_bezier_curve.brep
├── qttest_utils.h
├── runtests.cpp
├── test_app.cpp
├── test_app.h
├── test_base.cpp
├── test_base.h
├── test_measure.cpp
└── test_measure.h
/.github/CI_OVERVIEW.md:
--------------------------------------------------------------------------------
1 |
2 | OS | Status
3 | ---------|---------------------------------------------------
4 | Linux | [](https://github.com/fougue/mayo/actions/workflows/ci_linux_arch.yml)
[](https://github.com/fougue/mayo/actions/workflows/ci_linux_fedora.yml)
[](https://github.com/fougue/mayo/actions/workflows/ci_linux_ubuntu_armv7.yml)
[](https://github.com/fougue/mayo/actions/workflows/ci_linux_ubuntu.yml)
5 | macOS | [](https://github.com/fougue/mayo/actions/workflows/ci_macos.yml)
[](https://github.com/fougue/mayo/actions/workflows/ci_macos_conda.yml)
6 | Windows | [](https://github.com/fougue/mayo/actions/workflows/ci_windows.yml)
7 |
--------------------------------------------------------------------------------
/.github/workflows/ci_linux_arch.yml:
--------------------------------------------------------------------------------
1 | name: Linux Arch x64
2 |
3 | on: [push]
4 |
5 | jobs:
6 | build-archlinux:
7 | runs-on: ubuntu-latest
8 | name: build-archlinux-qt5
9 |
10 | steps:
11 | - name: Checkout
12 | uses: actions/checkout@v2
13 | with:
14 | path: 'mayo'
15 |
16 | - name: Setup Podman
17 | run: |
18 | sudo apt update
19 | sudo apt-get -y install podman
20 | podman pull docker.io/library/archlinux:latest
21 |
22 | - name: Create container and run build+tests
23 | run: |
24 | {
25 | echo 'FROM archlinux:latest'
26 | echo 'RUN pacman -Syu --noconfirm'
27 | echo 'RUN pacman -Sy --noconfirm make cmake git gcc'
28 | echo 'RUN pacman -Sy --noconfirm qt5-base qt5-svg xcb-util-cursor'
29 | echo 'RUN pacman -Sy --noconfirm opencascade libxi'
30 | echo 'RUN pacman -Sy --noconfirm assimp'
31 | echo 'COPY mayo mayo'
32 | echo 'RUN mkdir /mayo/build'
33 | echo 'WORKDIR /mayo/build'
34 | echo 'RUN cmake .. -DMayo_BuildTests=ON -DMayo_BuildPluginAssimp=ON'
35 | echo 'RUN cmake --build . --parallel --config Release'
36 | } > podmanfile
37 | podman build --tag archlinux-ci -f ./podmanfile
38 |
--------------------------------------------------------------------------------
/.github/workflows/ci_linux_fedora.yml:
--------------------------------------------------------------------------------
1 | name: Linux Fedora x64
2 |
3 | on: [push]
4 |
5 | jobs:
6 | build-fedora:
7 | runs-on: ubuntu-latest
8 | name: build-fedora40-qt5
9 |
10 | steps:
11 | - name: Checkout
12 | uses: actions/checkout@v2
13 | with:
14 | path: 'mayo'
15 |
16 | - name: Setup Podman
17 | run: |
18 | sudo apt update
19 | sudo apt-get -y install podman
20 | podman pull fedora:40
21 |
22 | - name: Create container and run build+tests
23 | run: |
24 | {
25 | echo 'FROM fedora:40'
26 | echo 'RUN dnf -y update'
27 | echo 'RUN dnf -y install xorg-x11-server-Xvfb'
28 | echo 'RUN dnf -y install make cmake git gcc-c++'
29 | echo 'RUN dnf -y install qt5-qtbase qt5-qtsvg xcb-util-cursor'
30 | echo 'RUN dnf -y install opencascade-devel'
31 | echo 'RUN dnf -y install assimp assimp-devel'
32 | echo 'RUN dnf clean all'
33 | echo 'COPY mayo mayo'
34 | echo 'WORKDIR /mayo'
35 | echo 'RUN mkdir build'
36 | echo 'WORKDIR /mayo/build'
37 | echo 'RUN cmake .. -DMayo_BuildTests=ON -DMayo_BuildPluginAssimp=ON'
38 | echo 'RUN cmake --build . --parallel --config Release'
39 | #echo 'RUN Xvfb $DISPLAY -screen 0 1280x1024x24 &'
40 | #echo 'RUN sleep 5s'
41 | #echo 'RUN ./mayo --runtests'
42 | } > podmanfile
43 | podman build --tag fedora40-ci -f ./podmanfile
44 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | build-*
2 | *.user
3 | *.user.*
4 | custom.pri
5 | env.pri
6 | cmake/CustomSteps.cmake
7 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | BSD 2-Clause License
2 |
3 | Copyright (c) 2016, Fougue Ltd.
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions
8 | are met:
9 |
10 | 1. Redistributions of source code must retain the above copyright
11 | notice, this list of conditions and the following disclaimer.
12 |
13 | 2. Redistributions in binary form must reproduce the above
14 | copyright notice, this list of conditions and the following
15 | disclaimer in the documentation and/or other materials provided
16 | with the distribution.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/doc/screencast_1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screencast_1.gif
--------------------------------------------------------------------------------
/doc/screencast_cli.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screencast_cli.gif
--------------------------------------------------------------------------------
/doc/screenshot_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_1.png
--------------------------------------------------------------------------------
/doc/screenshot_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_2.png
--------------------------------------------------------------------------------
/doc/screenshot_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_3.png
--------------------------------------------------------------------------------
/doc/screenshot_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_4.png
--------------------------------------------------------------------------------
/doc/screenshot_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_5.png
--------------------------------------------------------------------------------
/doc/screenshot_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_6.png
--------------------------------------------------------------------------------
/doc/screenshot_mayoconv_linux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_mayoconv_linux.png
--------------------------------------------------------------------------------
/doc/screenshot_ubuntu_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_ubuntu_1.png
--------------------------------------------------------------------------------
/doc/screenshot_ubuntu_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_ubuntu_2.png
--------------------------------------------------------------------------------
/doc/screenshot_ubuntu_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_ubuntu_3.png
--------------------------------------------------------------------------------
/doc/screenshot_ubuntu_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_ubuntu_4.png
--------------------------------------------------------------------------------
/doc/screenshot_ubuntu_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_ubuntu_5.png
--------------------------------------------------------------------------------
/doc/screenshot_ubuntu_main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/screenshot_ubuntu_main.png
--------------------------------------------------------------------------------
/doc/src_modules.odg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/src_modules.odg
--------------------------------------------------------------------------------
/doc/src_modules.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/src_modules.png
--------------------------------------------------------------------------------
/doc/win_cmake_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/win_cmake_01.png
--------------------------------------------------------------------------------
/doc/win_cmake_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/win_cmake_02.png
--------------------------------------------------------------------------------
/doc/win_cmake_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/win_cmake_03.png
--------------------------------------------------------------------------------
/doc/win_cmake_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/win_cmake_04.png
--------------------------------------------------------------------------------
/doc/win_cmake_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/win_cmake_05.png
--------------------------------------------------------------------------------
/doc/win_cmake_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/win_cmake_06.png
--------------------------------------------------------------------------------
/doc/win_msvc_mp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/doc/win_msvc_mp.png
--------------------------------------------------------------------------------
/i18n/i18n.pro:
--------------------------------------------------------------------------------
1 | HEADERS += \
2 | $$files(../src/app/*.h) \
3 | $$files(../src/app/windows/*.h) \
4 | $$files(../src/base/*.h) \
5 | $$files(../src/cli/*.h) \
6 | $$files(../src/graphics/*.h) \
7 | $$files(../src/gui/*.h) \
8 | $$files(../src/io_assimp/*.h) \
9 | $$files(../src/io_dxf/*.h) \
10 | $$files(../src/io_gmio/*.h) \
11 | $$files(../src/io_image/*.h) \
12 | $$files(../src/io_occ/*.h) \
13 | $$files(../src/io_off/*.h) \
14 | $$files(../src/io_ply/*.h) \
15 | $$files(../src/measure/*.h) \
16 |
17 |
18 | SOURCES += \
19 | $$files(../src/app/*.cpp) \
20 | $$files(../src/app/windows/*.cpp) \
21 | $$files(../src/base/*.cpp) \
22 | $$files(../src/cli/*.cpp) \
23 | $$files(../src/graphics/*.cpp) \
24 | $$files(../src/gui/*.cpp) \
25 | $$files(../src/io_assimp/*.cpp) \
26 | $$files(../src/io_dxf/*.cpp) \
27 | $$files(../src/io_gmio/*.cpp) \
28 | $$files(../src/io_image/*.cpp) \
29 | $$files(../src/io_occ/*.cpp) \
30 | $$files(../src/io_off/*.cpp) \
31 | $$files(../src/measure/*.cpp) \
32 | \
33 | messages.cpp \
34 |
35 | FORMS += $$files(../src/app/*.ui)
36 |
37 | TRANSLATIONS += \
38 | mayo_en.ts \
39 | mayo_fr.ts \
40 | mayo_zh.ts \
41 |
--------------------------------------------------------------------------------
/i18n/mayo.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | mayo_en.qm
4 | mayo_fr.qm
5 | mayo_zh.qm
6 |
7 |
8 |
--------------------------------------------------------------------------------
/i18n/mayo_en.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/mayo_en.qm
--------------------------------------------------------------------------------
/i18n/mayo_fr.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/mayo_fr.qm
--------------------------------------------------------------------------------
/i18n/mayo_zh.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/mayo_zh.qm
--------------------------------------------------------------------------------
/i18n/qt5base.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | qt5base_en.qm
4 | qt5base_fr.qm
5 | qt5base_zh.qm
6 |
7 |
8 |
--------------------------------------------------------------------------------
/i18n/qt5base_en.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/qt5base_en.qm
--------------------------------------------------------------------------------
/i18n/qt5base_fr.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/qt5base_fr.qm
--------------------------------------------------------------------------------
/i18n/qt5base_zh.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/qt5base_zh.qm
--------------------------------------------------------------------------------
/i18n/qt6base.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | qt6base_en.qm
4 | qt6base_fr.qm
5 | qt6base_zh.qm
6 |
7 |
8 |
--------------------------------------------------------------------------------
/i18n/qt6base_en.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/qt6base_en.qm
--------------------------------------------------------------------------------
/i18n/qt6base_fr.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/qt6base_fr.qm
--------------------------------------------------------------------------------
/i18n/qt6base_zh.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/i18n/qt6base_zh.qm
--------------------------------------------------------------------------------
/images/appicon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/appicon.icns
--------------------------------------------------------------------------------
/images/appicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/appicon.ico
--------------------------------------------------------------------------------
/images/appicon.rc:
--------------------------------------------------------------------------------
1 | IDI_ICON1 ICON DISCARDABLE "appicon.ico"
--------------------------------------------------------------------------------
/images/appicon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
42 |
--------------------------------------------------------------------------------
/images/appicon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/appicon_128.png
--------------------------------------------------------------------------------
/images/appicon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/appicon_16.png
--------------------------------------------------------------------------------
/images/appicon_24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/appicon_24.png
--------------------------------------------------------------------------------
/images/appicon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/appicon_256.png
--------------------------------------------------------------------------------
/images/appicon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/appicon_32.png
--------------------------------------------------------------------------------
/images/appicon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/appicon_64.png
--------------------------------------------------------------------------------
/images/graphics/opencascade_hatch_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/graphics/opencascade_hatch_1.png
--------------------------------------------------------------------------------
/images/themes/classic/add-file.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/classic/back-square.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
46 |
--------------------------------------------------------------------------------
/images/themes/classic/back.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
40 |
--------------------------------------------------------------------------------
/images/themes/classic/cross.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
45 |
--------------------------------------------------------------------------------
/images/themes/classic/edit.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
44 |
--------------------------------------------------------------------------------
/images/themes/classic/expand.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
47 |
--------------------------------------------------------------------------------
/images/themes/classic/grid.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/classic/indicator-down-disabled_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/themes/classic/indicator-down-disabled_8.png
--------------------------------------------------------------------------------
/images/themes/classic/indicator-down_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/themes/classic/indicator-down_8.png
--------------------------------------------------------------------------------
/images/themes/classic/item-mesh.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
46 |
--------------------------------------------------------------------------------
/images/themes/classic/left-sidebar.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
43 |
--------------------------------------------------------------------------------
/images/themes/classic/link.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
45 |
--------------------------------------------------------------------------------
/images/themes/classic/measure.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/classic/next.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
41 |
--------------------------------------------------------------------------------
/images/themes/classic/open-files.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/classic/reload.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
46 |
--------------------------------------------------------------------------------
/images/themes/classic/stop.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
43 |
--------------------------------------------------------------------------------
/images/themes/classic/turn-ccw.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/classic/turn-cw.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/dark/back-square.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
46 |
--------------------------------------------------------------------------------
/images/themes/dark/back.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
40 |
--------------------------------------------------------------------------------
/images/themes/dark/camera.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
48 |
--------------------------------------------------------------------------------
/images/themes/dark/cross.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
45 |
--------------------------------------------------------------------------------
/images/themes/dark/edit.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
44 |
--------------------------------------------------------------------------------
/images/themes/dark/expand.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
47 |
--------------------------------------------------------------------------------
/images/themes/dark/export.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
50 |
--------------------------------------------------------------------------------
/images/themes/dark/file.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
40 |
--------------------------------------------------------------------------------
/images/themes/dark/grid.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/dark/import.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
50 |
--------------------------------------------------------------------------------
/images/themes/dark/indicator-down-disabled_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/themes/dark/indicator-down-disabled_8.png
--------------------------------------------------------------------------------
/images/themes/dark/indicator-down_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/themes/dark/indicator-down_8.png
--------------------------------------------------------------------------------
/images/themes/dark/item-mesh.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
45 |
--------------------------------------------------------------------------------
/images/themes/dark/item-xde.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
44 |
--------------------------------------------------------------------------------
/images/themes/dark/left-sidebar.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
43 |
--------------------------------------------------------------------------------
/images/themes/dark/link.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
45 |
--------------------------------------------------------------------------------
/images/themes/dark/measure.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/dark/next.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
41 |
--------------------------------------------------------------------------------
/images/themes/dark/reload.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
46 |
--------------------------------------------------------------------------------
/images/themes/dark/stop.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
43 |
--------------------------------------------------------------------------------
/images/themes/dark/turn-ccw.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/dark/turn-cw.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/themes/dark/zoom-in.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
44 |
--------------------------------------------------------------------------------
/images/themes/dark/zoom-out.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
43 |
--------------------------------------------------------------------------------
/images/widget_pseudo_fold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/widget_pseudo_fold.png
--------------------------------------------------------------------------------
/images/xde_reference_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fougue/mayo/fffa83cd0f40b0227b6c02da851a46b6bb4f5e98/images/xde_reference_16.png
--------------------------------------------------------------------------------
/scripts/bump-version.rb:
--------------------------------------------------------------------------------
1 | ##
2 | ## Copyright (c) 2021, Fougue Ltd.
3 | ## All rights reserved.
4 | ## See license at https://github.com/fougue/mayo/blob/master/LICENSE.txt
5 | ##
6 |
7 | #!/usr/bin/ruby
8 |
9 | if ARGV.empty?
10 | puts "Error: no version argument"
11 | return
12 | end
13 |
14 | version_array = ARGV.first.split('.')
15 | if version_array.size != 3
16 | puts "Error: wrong version format(maj.min.patch)"
17 | return
18 | end
19 |
20 | major = version_array[0]
21 | minor = version_array[1]
22 | patch = version_array[2]
23 | puts "Major: #{major}"
24 | puts "Minor: #{minor}"
25 | puts "Patch: #{patch}"
26 | scripts_dir_name = File.expand_path(File.dirname(__FILE__))
27 |
28 | # ../README.md
29 | path_README_md = "#{scripts_dir_name}/../README.md"
30 | README_md = File.open(path_README_md, "r").read
31 | README_md.sub!(/(img.shields.io\/badge\/version-v)\d+\.\d+.\d+/, "\\1#{major}.#{minor}.#{patch}")
32 | README_md.sub!(/(Mayo_VersionMinor\s+)\d+/, "\\1#{minor}")
33 | README_md.sub!(/(Mayo_VersionPatch\s+)\d+/, "\\1#{patch}")
34 | File.open(path_README_md, "w").write(README_md)
35 | puts "Bumped #{path_README_md}"
36 |
37 | # ../CMakeLists.txt
38 | path_CMakeLists_txt = "#{scripts_dir_name}/../CMakeLists.txt"
39 | CMakeLists_txt = File.open(path_CMakeLists_txt, "r").read
40 | CMakeLists_txt.sub!(/(Mayo_VersionMajor\s+)\d+/, "\\1#{major}")
41 | CMakeLists_txt.sub!(/(Mayo_VersionMinor\s+)\d+/, "\\1#{minor}")
42 | CMakeLists_txt.sub!(/(Mayo_VersionPatch\s+)\d+/, "\\1#{patch}")
43 | File.open(path_CMakeLists_txt, "w").write(CMakeLists_txt)
44 | puts "Bumped #{path_CMakeLists_txt}"
45 |
--------------------------------------------------------------------------------
/scripts/release-i18n.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | set DIR_SCRIPTS=%~dp0
4 | lrelease-pro %DIR_SCRIPTS%\..\i18n\i18n.pro
5 |
--------------------------------------------------------------------------------
/scripts/update-i18n.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | set DIR_SCRIPTS=%~dp0
4 | lupdate -tr-function-alias ^
5 | QT_TRANSLATE_NOOP+=MAYO_TEXT_ID,^
6 | Q_DECLARE_TR_FUNCTIONS+=MAYO_DECLARE_TEXT_ID_FUNCTIONS,^
7 | tr+=textId,^
8 | tr+=textIdTr^
9 | %DIR_SCRIPTS%\..\i18n\i18n.pro
10 |
11 | rem lupdate -no-obsolete
12 |
--------------------------------------------------------------------------------
/src/3rdparty/commit_fast_float.txt:
--------------------------------------------------------------------------------
1 | 6c97156f6de7a40119a2f1a4913a457e69d34b12
2 |
--------------------------------------------------------------------------------
/src/3rdparty/commit_fmt.txt:
--------------------------------------------------------------------------------
1 | 18a325f370ffd5ec1eda0087d2efc3dc9b3faf56
2 |
--------------------------------------------------------------------------------
/src/3rdparty/commit_gsl.txt:
--------------------------------------------------------------------------------
1 | ef0ffefe525a6219ff245d19a832ce06f3fd3504
2 |
--------------------------------------------------------------------------------
/src/3rdparty/commit_kdbindings.txt:
--------------------------------------------------------------------------------
1 | 055b3fa320e98516555e68f36d8529e24ee9d60e
2 | Branch main
--------------------------------------------------------------------------------
/src/3rdparty/commit_magic_enum.txt:
--------------------------------------------------------------------------------
1 | ec11ae0c285773e691a1e8372e4984189a6bed1e
2 |
--------------------------------------------------------------------------------
/src/3rdparty/fmt/core.h:
--------------------------------------------------------------------------------
1 | // This file is only provided for compatibility and may be removed in future
2 | // versions. Use fmt/base.h if you don't need fmt::format and fmt/format.h
3 | // otherwise.
4 |
5 | #include "format.h"
6 |
--------------------------------------------------------------------------------
/src/3rdparty/fmt/src/format.cc:
--------------------------------------------------------------------------------
1 | // Formatting library for C++
2 | //
3 | // Copyright (c) 2012 - 2016, Victor Zverovich
4 | // All rights reserved.
5 | //
6 | // For the license information refer to format.h.
7 |
8 | #include "fmt/format-inl.h"
9 |
10 | FMT_BEGIN_NAMESPACE
11 | namespace detail {
12 |
13 | template FMT_API auto dragonbox::to_decimal(float x) noexcept
14 | -> dragonbox::decimal_fp;
15 | template FMT_API auto dragonbox::to_decimal(double x) noexcept
16 | -> dragonbox::decimal_fp;
17 |
18 | #ifndef FMT_STATIC_THOUSANDS_SEPARATOR
19 | template FMT_API locale_ref::locale_ref(const std::locale& loc);
20 | template FMT_API auto locale_ref::get() const -> std::locale;
21 | #endif
22 |
23 | // Explicit instantiations for char.
24 |
25 | template FMT_API auto thousands_sep_impl(locale_ref)
26 | -> thousands_sep_result;
27 | template FMT_API auto decimal_point_impl(locale_ref) -> char;
28 |
29 | template FMT_API void buffer::append(const char*, const char*);
30 |
31 | template FMT_API void vformat_to(buffer&, string_view,
32 | typename vformat_args<>::type, locale_ref);
33 |
34 | // Explicit instantiations for wchar_t.
35 |
36 | template FMT_API auto thousands_sep_impl(locale_ref)
37 | -> thousands_sep_result;
38 | template FMT_API auto decimal_point_impl(locale_ref) -> wchar_t;
39 |
40 | template FMT_API void buffer::append(const wchar_t*, const wchar_t*);
41 |
42 | } // namespace detail
43 | FMT_END_NAMESPACE
44 |
--------------------------------------------------------------------------------
/src/3rdparty/gsl/gsl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////
2 | //
3 | // Copyright (c) 2015 Microsoft Corporation. All rights reserved.
4 | //
5 | // This code is licensed under the MIT License (MIT).
6 | //
7 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
9 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
10 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
11 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
12 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
13 | // THE SOFTWARE.
14 | //
15 | ///////////////////////////////////////////////////////////////////////////////
16 |
17 | #ifndef GSL_GSL_H
18 | #define GSL_GSL_H
19 |
20 | #include // copy
21 | #include // Ensures/Expects
22 | #include // byte
23 | #include // owner, not_null
24 | #include // span
25 | #include // zstring, string_span, zstring_builder...
26 | #include // finally()/narrow_cast()...
27 |
28 | #ifdef __cpp_exceptions
29 | #include // narrow()
30 | #endif
31 |
32 | #endif // GSL_GSL_H
33 |
--------------------------------------------------------------------------------
/src/3rdparty/gsl/gsl_algorithm:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #pragma message("This header will soon be removed. Use instead of ")
3 | #include
4 |
--------------------------------------------------------------------------------
/src/3rdparty/gsl/gsl_assert:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #pragma message("This header will soon be removed. Use instead of ")
3 | #include
4 |
--------------------------------------------------------------------------------
/src/3rdparty/gsl/gsl_byte:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #pragma message("This header will soon be removed. Use instead of ")
3 | #include
4 |
--------------------------------------------------------------------------------
/src/3rdparty/gsl/gsl_narrow:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #pragma message("This header will soon be removed. Use instead of ")
3 | #include
4 |
--------------------------------------------------------------------------------
/src/3rdparty/gsl/gsl_util:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #pragma message("This header will soon be removed. Use instead of ")
3 | #include
4 |
--------------------------------------------------------------------------------
/src/app/app_context.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Copyright (c) 2022, Fougue Ltd.
3 | ** All rights reserved.
4 | ** See license at https://github.com/fougue/mayo/blob/master/LICENSE.txt
5 | ****************************************************************************/
6 |
7 | #pragma once
8 |
9 | #include "commands_api.h"
10 |
11 | namespace Mayo {
12 |
13 | class MainWindow;
14 | class WidgetGuiDocument;
15 |
16 | // Provides implementation of IAppContext based on MainWindow
17 | class AppContext : public IAppContext {
18 | public:
19 | AppContext(MainWindow* wnd);
20 |
21 | GuiApplication* guiApp() const override;
22 | TaskManager* taskMgr() const override;
23 | V3dViewController* v3dViewController(const GuiDocument* guiDoc) const override;
24 |
25 | QWidget* widgetMain() const override;
26 | QWidget* widgetPage(Page page) const override;
27 | Page currentPage() const override;
28 | void setCurrentPage(Page page) override;
29 | QWidget* pageDocuments_widgetLeftSideBar() const override;
30 |
31 | int findDocumentIndex(Document::Identifier docId) const override;
32 | Document::Identifier findDocumentFromIndex(int index) const override;
33 |
34 | Document::Identifier currentDocument() const override;
35 | void setCurrentDocument(Document::Identifier docId) override;
36 |
37 | void updateControlsEnabledStatus() override;
38 |
39 | private:
40 | WidgetGuiDocument* widgetGuiDocument(int idx) const;
41 | WidgetGuiDocument* findWidgetGuiDocument(std::function fn) const;
42 |
43 | void onCurrentDocumentIndexChanged(int docIndex);
44 |
45 | MainWindow* m_wnd = nullptr;
46 | };
47 |
48 | } // namespace Mayo
49 |
--------------------------------------------------------------------------------
/src/app/app_ui_state.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Copyright (c) 2024, Fougue Ltd.
3 | ** All rights reserved.
4 | ** See license at https://github.com/fougue/mayo/blob/master/LICENSE.txt
5 | ****************************************************************************/
6 |
7 | #pragma once
8 |
9 | #include "../base/property_builtins.h"
10 | #include "../base/span.h"
11 |
12 | #include
13 |
14 | namespace Mayo {
15 |
16 | // Stores the UI state of the main application widgets
17 | struct AppUiState {
18 | std::vector mainWindowGeometry; // Provided by QWidget::saveGeometry()
19 | bool pageDocuments_isLeftSideBarVisible = true;
20 | double pageDocuments_widgetLeftSideBarWidthFactor = 0.25;
21 |
22 | // Serialization functions
23 | static std::vector toBlob(const AppUiState& state);
24 | static AppUiState fromBlob(Span blob, bool* ok = nullptr);
25 | };
26 | using PropertyAppUiState = GenericProperty;
27 |
28 | } // namespace Mayo
29 |
--------------------------------------------------------------------------------
/src/app/command_system_information_occopengl.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | ** Copyright (c) 2024, Fougue Ltd.
3 | ** All rights reserved.
4 | ** See license at https://github.com/fougue/mayo/blob/master/LICENSE.txt
5 | ****************************************************************************/
6 |
7 | #pragma once
8 |
9 | // Auxiliary file to avoid OpenGL macros collisions between Qt and OpenCascade headers.
10 |
11 | #include