Skip to content

Commit 506e3ac

Browse files
Merge pull request #92 from BPLA-Team/umbrella_coding
Minor fixes and updates
2 parents cda006a + 294ae4d commit 506e3ac

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+491
-627
lines changed

.github/workflows/build.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Checkout repository
13+
uses: actions/checkout@v4
14+
with:
15+
submodules: "recursive"
16+
17+
- name: Setup Qt
18+
uses: jurplel/install-qt-action@v4
19+
with:
20+
version: "6.6.0"
21+
host: linux
22+
target: desktop
23+
24+
- name: Add Qt to PATH
25+
run: echo "$QT_PATH/bin" >> $GITHUB_PATH
26+
27+
- name: Install dependencies
28+
run: |
29+
sudo apt-get update
30+
sudo apt-get install -y build-essential cmake libgl1-mesa-dev libboost-all-dev
31+
32+
- name: Configure CMake
33+
run: |
34+
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
35+
36+
- name: Build project
37+
run: |
38+
cmake --build build --config Release --parallel 2

CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,16 @@ set(CMAKE_AUTORCC ON)
2626
include(cmake_paths.cmake)
2727

2828
# --------------------------------- Find Qt ---------------------------------
29-
find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets Core PrintSupport REQUIRED)
30-
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Core PrintSupport REQUIRED)
29+
find_package(QT NAMES Qt6 COMPONENTS Widgets Core PrintSupport REQUIRED)
30+
find_package(Qt6 COMPONENTS Widgets Core PrintSupport REQUIRED)
3131

3232
# --------------------------------- Find Boost ---------------------------------
3333
set(Boost_USE_STATIC_LIBS OFF)
3434

35+
if(POLICY CMP0167)
36+
cmake_policy(SET CMP0167 NEW)
37+
endif()
38+
3539
find_package(Boost REQUIRED COMPONENTS locale unit_test_framework)
3640

3741
# --------------------------------- Submodules folders ---------------------------------

README.md

Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,40 @@
77
**Project of four first grade MIPT DAFE/RSE students (for engineering practical work in the second semester) in Qt C++**
88

99
## Documentation
10-
Project's [documentation](https://umbrellaleaf5.github.io/locus_no_pilotus/index.html) generated with Doxygen with [convenient CSS theme](#used-libs-and-sources).
10+
11+
Project's [documentation](https://bpla-team.github.io/locus_no_pilotus/index.html) generated with Doxygen with [convenient CSS theme](#used-libs-and-sources).
1112

1213
# Contents
13-
* [Description](#description)
14-
* [Installation and configuring](#installation-and-configuring "with using MSYS")
15-
* [Used libs and sources](#used-libs-and-sources "we are using GitHub submodules feature 😎")
16-
* [Authors](#authors "the best guys")
17-
* [Presentation](#presentation "video link")
14+
15+
- [Description](#description)
16+
- [Installation and configuring](#installation-and-configuring "with using MSYS")
17+
- [Used libs and sources](#used-libs-and-sources "we are using GitHub submodules feature 😎")
18+
- [Authors](#authors "the best guys")
19+
- [Presentation](#presentation "video link")
1820

1921
## Description
2022

21-
In this project, we are developing an application that calculates the trajectory of a flying delivery robot that collects valuable cargo from control points: **Targets**.
22-
On its way, it may encounter high mountains that it cannot fly over: **Hills**; or elliptical territories that are impossible to visit due to climate conditions: **TrappyCircles**.
23-
Also, through some control points, the robot is simply unable to move, as the cargo may not be ready for transportation at that time, these are **TrappyLines**.
23+
In this project, we are developing an application that calculates the trajectory of a flying delivery robot that collects valuable cargo from control points: **Targets**.
24+
On its way, it may encounter high mountains that it cannot fly over: **Hills**; or elliptical territories that are impossible to visit due to climate conditions: **TrappyCircles**.
25+
Also, through some control points, the robot is simply unable to move, as the cargo may not be ready for transportation at that time, these are **TrappyLines**.
2426

25-
The robot's trajectory is calculated using several mathematical algorithms: [...].
26-
The graphical interface for constructing the trajectory was created using [Qt](#used-libs-and-sources) and [QCustomPlot](#used-libs-and-sources).
27+
The robot's trajectory is calculated using several mathematical algorithms: [...].
28+
The graphical interface for constructing the trajectory was created using [Qt](#used-libs-and-sources) and [QCustomPlot](#used-libs-and-sources).
2729

28-
In the application, you can add objects using window forms, interact with the trajectory calculation plot using the mouse cursor, create and open files in ```.json``` format with a specific style for this application. Editing objects can also be done with cursors or using a special dynamic input field with tables, opened in a separate window mode or embedded in the main one.
30+
In the application, you can add objects using window forms, interact with the trajectory calculation plot using the mouse cursor, create and open files in `.json` format with a specific style for this application. Editing objects can also be done with cursors or using a special dynamic input field with tables, opened in a separate window mode or embedded in the main one.
2931

30-
*We strongly recommend that you install our application using the instructions below and try it out!*
32+
_We strongly recommend that you install our application using the instructions below and try it out!_
3133

3234
## Installation and configuring
3335

3436
#### On Windows 64 bit system
35-
1) Install **[MSYS2](https://www.msys2.org/)** to any convenient folder as compiler setup
36-
> *P.S. of course you can try install all the libs and packages used in repo manually, but our team got pain and tears trying to install Boost on MINGW in this way, so we recommend to install MSYS (besides, it is an excellent tool for compiling any other C++ and etc. projects)*
3737

38-
2) Open ```MSYS2 MSYS``` console, copy the command below and paste it with ```Shift+Ins``` or ```RBM and 'Paste'``` to download all the packages used in our project
38+
1. Install **[MSYS2](https://www.msys2.org/)** to any convenient folder as compiler setup
39+
40+
> _P.S. of course you can try install all the libs and packages used in repo manually, but our team got pain and tears trying to install Boost on MINGW in this way, so we recommend to install MSYS (besides, it is an excellent tool for compiling any other C++ and etc. projects)_
41+
42+
2. Open `MSYS2 MSYS` console, copy the command below and paste it with `Shift+Ins` or `RBM and 'Paste'` to download all the packages used in our project
43+
3944
```
4045
pacman -S mingw-w64-x86_64-gcc
4146
pacman -S mingw-w64-x86_64-gdb
@@ -46,50 +51,51 @@ pacman -S mingw-w64-x86_64-boost
4651
pacman -S mingw-w64-x86_64-clang
4752
```
4853

49-
3) Install **[Git Bash](https://gitforwindows.org/)** to any convenient folder (if you haven't get it yet)
54+
3. Install **[Git Bash](https://gitforwindows.org/)** to any convenient folder (if you haven't get it yet)
55+
56+
4. Open `Git Bash` and use command like `cd C:/CodeFolder` to go to the folder where you usually save the code
5057

51-
4) Open ```Git Bash``` and use command like ```cd C:/CodeFolder``` to go to the folder where you usually save the code
58+
5. Clone our repo with including submodules to such folder:
5259

53-
5) Clone our repo with including submodules to such folder:
54-
```
55-
git clone --recurse-submodules https://github.com/UmbrellaLeaf5/locus_no_pilotus
5660
```
61+
git clone --recurse-submodules https://github.com/BPLA-Team/locus_no_pilotus
62+
```
63+
64+
6. Open the MSYS bin folder in path like `C:\YourPathToMsys\msys64\mingw64\bin` than find and start `qtcreator.exe`
5765

58-
6) Open the MSYS bin folder in path like ```C:\YourPathToMsys\msys64\mingw64\bin``` than find and start ```qtcreator.exe```
66+
7. In folder with our project clone find **_CMakeLists.txt_** and open it with QtCreator
5967

60-
7) In folder with our project clone find ***CMakeLists.txt*** and open it with QtCreator
68+
8. Set the compiler that allow _CMake_ configuration in the kits list and click `Configure Project`
6169

62-
8) Set the compiler that allow *CMake* configuration in the kits list and click ```Configure Project```
70+
9. To use the full working version: **Build** (hammer button in the lower left corner) the project, and after ending process with error use **_Build > Run CMake_** in the top menu to reconfigure and fix error with including QCustomPlot
6371

64-
9) To use the full working version: **Build** (hammer button in the lower left corner) the project, and after ending process with error use ***Build > Run CMake*** in the top menu to reconfigure and fix error with including QCustomPlot
65-
> *P.S. because of using QCustomPlot, we need to copy additional .lib file to build directory, and our script does this when activating the Run CMake command*
72+
> _P.S. because of using QCustomPlot, we need to copy additional .lib file to build directory, and our script does this when activating the Run CMake command_
6673
67-
10) Now you can use full working project with **Run** (green triangle button in the lower left corner)!
74+
10. Now you can use full working project with **Run** (green triangle button in the lower left corner)!
6875

6976
#### On Linux system
7077

71-
*Coming soon...*
78+
_Coming soon..._
7279

7380
> Much respect and help for this installation method to [George Sukhanov](https://github.com/TheFueRr "our colleague with an equally interesting project on processing experimental data")!
7481
7582
## Used libs and sources
76-
* [CMake](https://cmake.org/): main project build system
77-
* [Qt](https://www.qt.io/): main project library for full-working program
78-
* [QCustomPlot](https://www.qcustomplot.com/): library for drawing all objects on same place with autoscaling ([submodule](https://github.com/UmbrellaLeaf5/qcustomplot "reference for submodule with lib in GitHub"))
79-
* [IceCream-Cpp](https://github.com/renatoGarcia/icecream-cpp): library for simple code debugging (we really recommend to use it in C++ projects)
80-
* [Doxygen](https://www.doxygen.nl/): full documentation generation
81-
* [Doxygen Awesome](https://github.com/jothepro/doxygen-awesome-css): convenient CSS theme for Doxygen HTML documentation (it is really awesome)
82-
* [Flaticon](https://www.flaticon.com/): perfect icons source
83-
* [GeoGebra](https://www.geogebra.org/): best platform for geometry calculations
83+
84+
- [CMake](https://cmake.org/): main project build system
85+
- [Qt](https://www.qt.io/): main project library for full-working program
86+
- [QCustomPlot](https://www.qcustomplot.com/): library for drawing all objects on same place with autoscaling ([submodule](https://github.com/UmbrellaLeaf5/qcustomplot "reference for submodule with lib in GitHub"))
87+
- [IceCream-Cpp](https://github.com/renatoGarcia/icecream-cpp): library for simple code debugging (we really recommend to use it in C++ projects)
88+
- [Doxygen](https://www.doxygen.nl/): full documentation generation
89+
- [Doxygen Awesome](https://github.com/jothepro/doxygen-awesome-css): convenient CSS theme for Doxygen HTML documentation (it is really awesome)
90+
- [Flaticon](https://www.flaticon.com/): perfect icons source
91+
- [GeoGebra](https://www.geogebra.org/): best platform for geometry calculations
8492

8593
## Authors
94+
8695
**[Romanov Fedor](https://github.com/Romanov-Fedor "math greatest gigachad and refactor guy (also Desmos and GeoGebra proger)")**
8796

8897
**[Rybalkin Ilya](https://github.com/Stargazer2005 "traveling salesman problem and Dijkstra algos enjoyer, the trajectory guy")**
8998

9099
**[Akramov Nikita](https://github.com/MrWh1teF0x "jsons, add forms, cursors, animation, scale hero")**
91100

92101
**[Krivoruchko Dmitry](https://github.com/UmbrellaLeaf5 "repo manager and gui guy with tables instead of muscles and arcs instead of veins")**
93-
94-
## Presentation
95-
**[Video-presentation](https://disk.yandex.ru/i/R-6LPpjHcT5Fdw)** of out project on Russian language (with all team members).

0 commit comments

Comments
 (0)