cpp-arena 2.9__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cpp_arena-2.9.data/purelib/cpp_arena/__init__.py +54 -0
- cpp_arena-2.9.data/purelib/cpp_arena/__main__.py +3 -0
- cpp_arena-2.9.data/purelib/cpp_arena/application.zip +0 -0
- cpp_arena-2.9.dist-info/METADATA +85 -0
- cpp_arena-2.9.dist-info/RECORD +14 -0
- cpp_arena-2.9.dist-info/WHEEL +5 -0
- cpp_arena-2.9.dist-info/entry_points.txt +3 -0
- cpp_arena-2.9.dist-info/licenses/LICENSE +674 -0
- cpp_arena-2.9.dist-info/licenses/NOTICE +20 -0
- cpp_arena-2.9.dist-info/licenses/third_party/CGAL-LICENSE.txt +40 -0
- cpp_arena-2.9.dist-info/licenses/third_party/LICENSE.GPL +674 -0
- cpp_arena-2.9.dist-info/licenses/third_party/LICENSE.LGPL +165 -0
- cpp_arena-2.9.dist-info/licenses/third_party/LICENSE_1_0.txt +23 -0
- cpp_arena-2.9.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Launch the existing desktop application from a writable user directory."""
|
|
2
|
+
import argparse
|
|
3
|
+
from importlib.metadata import version
|
|
4
|
+
import os
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
import struct
|
|
7
|
+
import subprocess
|
|
8
|
+
import sys
|
|
9
|
+
import tempfile
|
|
10
|
+
import zipfile
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def application_directory():
|
|
14
|
+
"""Keep the original app's source-relative data paths out of site-packages."""
|
|
15
|
+
release = version("cpp-arena")
|
|
16
|
+
root = Path(os.environ["CPP_ARENA_HOME"]) if "CPP_ARENA_HOME" in os.environ else (
|
|
17
|
+
Path(os.environ["LOCALAPPDATA"]) / "CPP Arena")
|
|
18
|
+
destination = root.resolve() / release
|
|
19
|
+
if not destination.exists():
|
|
20
|
+
root.mkdir(parents=True, exist_ok=True)
|
|
21
|
+
with tempfile.TemporaryDirectory(prefix=".install-", dir=root) as temporary:
|
|
22
|
+
staged = Path(temporary) / release
|
|
23
|
+
with zipfile.ZipFile(Path(__file__).with_name("application.zip")) as archive:
|
|
24
|
+
archive.extractall(staged)
|
|
25
|
+
# Publish the whole application together, so an interrupted extraction
|
|
26
|
+
# cannot leave an apparently installed but incomplete application.
|
|
27
|
+
staged.rename(destination)
|
|
28
|
+
return destination
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _launch(history=False):
|
|
32
|
+
parser = argparse.ArgumentParser(description=(
|
|
33
|
+
"CPP Arena offline experiment viewer" if history else
|
|
34
|
+
"CPP Arena UAV coverage path planning desktop application"))
|
|
35
|
+
parser.add_argument("--version", action="version", version=version("cpp-arena"))
|
|
36
|
+
if history:
|
|
37
|
+
parser.add_argument("experiment", nargs="?", help="Experiment folder or archive")
|
|
38
|
+
arguments = parser.parse_args()
|
|
39
|
+
if sys.platform != "win32" or struct.calcsize("P") != 8:
|
|
40
|
+
parser.error("CPP Arena currently requires 64-bit Python on Windows x64")
|
|
41
|
+
directory = application_directory()
|
|
42
|
+
entry = directory / ("HistoryViewer/viewer.py" if history else "main.py")
|
|
43
|
+
command = [sys.executable, str(entry)]
|
|
44
|
+
if history and arguments.experiment:
|
|
45
|
+
command.append(str(Path(arguments.experiment).resolve()))
|
|
46
|
+
return subprocess.call(command, cwd=directory)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def main():
|
|
50
|
+
return _launch()
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def history_main():
|
|
54
|
+
return _launch(history=True)
|
|
Binary file
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cpp-arena
|
|
3
|
+
Version: 2.9
|
|
4
|
+
Summary: Desktop comparison platform for UAV coverage path planning algorithms
|
|
5
|
+
License-Expression: GPL-3.0-or-later
|
|
6
|
+
Project-URL: Repository, https://github.com/lyujayne/CPPArena
|
|
7
|
+
Project-URL: Issues, https://github.com/lyujayne/CPPArena/issues
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Environment :: Win32 (MS Windows)
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
License-File: NOTICE
|
|
18
|
+
License-File: third_party/CGAL-LICENSE.txt
|
|
19
|
+
License-File: third_party/LICENSE.GPL
|
|
20
|
+
License-File: third_party/LICENSE.LGPL
|
|
21
|
+
License-File: third_party/LICENSE_1_0.txt
|
|
22
|
+
Requires-Dist: PySide6>=6.5
|
|
23
|
+
Requires-Dist: shapely>=2.0
|
|
24
|
+
Requires-Dist: pyproj>=3.0
|
|
25
|
+
Requires-Dist: numpy>=1.24
|
|
26
|
+
Requires-Dist: scipy>=1.11
|
|
27
|
+
Requires-Dist: pandas>=1.5
|
|
28
|
+
Requires-Dist: matplotlib>=3.7
|
|
29
|
+
Requires-Dist: lxml>=4.9
|
|
30
|
+
Requires-Dist: requests>=2.20
|
|
31
|
+
Requires-Dist: Pillow>=9
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# CPP Arena
|
|
35
|
+
|
|
36
|
+
CPP Arena is a desktop comparison platform for UAV coverage path planning.
|
|
37
|
+
It provides polygon import, nine decomposition methods, seven route planners,
|
|
38
|
+
experiment comparisons, waypoint export, and an offline experiment viewer.
|
|
39
|
+
|
|
40
|
+
## Install and launch
|
|
41
|
+
|
|
42
|
+
Requires **Windows x64 and 64-bit Python 3.10 or newer**. The bundled CGAL
|
|
43
|
+
partition backend is a Windows x64 native library.
|
|
44
|
+
|
|
45
|
+
```powershell
|
|
46
|
+
python -m pip install cpp-arena
|
|
47
|
+
cpp-arena
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
You can also launch the application with `python -m cpp_arena`.
|
|
51
|
+
To open the independent offline experiment viewer:
|
|
52
|
+
|
|
53
|
+
```powershell
|
|
54
|
+
cpp-arena-history
|
|
55
|
+
cpp-arena-history "D:\experiments\my-experiment"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
On first launch, the packaged application is extracted to
|
|
59
|
+
`%LOCALAPPDATA%\CPP Arena\2.9`. Settings, datasets, projects, pictures, and
|
|
60
|
+
experiment records are saved inside that writable directory. Existing local
|
|
61
|
+
experiments are not included in the distribution; import them with the viewer.
|
|
62
|
+
Set `CPP_ARENA_HOME` before launch to use a different parent directory. Each
|
|
63
|
+
release keeps its own application and data directory; uninstalling the Python
|
|
64
|
+
package leaves those files in place.
|
|
65
|
+
|
|
66
|
+
## Scope
|
|
67
|
+
|
|
68
|
+
The application compares decomposition and planning implementations with
|
|
69
|
+
explicit implementation budgets and assumptions. Algorithm alignment notes are
|
|
70
|
+
included in the packaged `PAPER_ALIGNMENT.md` and `UPGRADE_v2.9.md`. Results
|
|
71
|
+
are research outputs; exported waypoints do not include camera trigger commands.
|
|
72
|
+
|
|
73
|
+
The source distribution contains the application Python sources in
|
|
74
|
+
`cpp_arena/application.zip`, plus the native wrapper source, build instructions,
|
|
75
|
+
and third-party notices. Extract the ZIP to inspect or run the original source.
|
|
76
|
+
CGAL and Boost header download URLs and hashes are in
|
|
77
|
+
`algorithms/native/README.md` inside that archive.
|
|
78
|
+
|
|
79
|
+
## License and source
|
|
80
|
+
|
|
81
|
+
CPP Arena is distributed under **GPL-3.0-or-later**. The bundled CGAL and Boost
|
|
82
|
+
components retain their own notices and license texts. See `LICENSE`, `NOTICE`,
|
|
83
|
+
and `third_party` in the distribution.
|
|
84
|
+
|
|
85
|
+
[Source repository](https://github.com/lyujayne/CPPArena)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
cpp_arena-2.9.data/purelib/cpp_arena/__init__.py,sha256=AeNEpcB7-yeaChrO7tR-LYPtrYmEJab7eZobwzjctmw,2138
|
|
2
|
+
cpp_arena-2.9.data/purelib/cpp_arena/__main__.py,sha256=BHLi_-4Bx1gsZn-z6x7wECPn1YTxdc74y0deRea9FzY,45
|
|
3
|
+
cpp_arena-2.9.data/purelib/cpp_arena/application.zip,sha256=JuvkIDQgX-r36U9qEqhoJ6XUROw3BSaHfeCFC2D6bck,927136
|
|
4
|
+
cpp_arena-2.9.dist-info/licenses/LICENSE,sha256=QWITIDR54nAVwy2eizD4Cih5YqRnUEQbIiNwbN05IRY,35155
|
|
5
|
+
cpp_arena-2.9.dist-info/licenses/NOTICE,sha256=J-5534H6eJkBtSBqDEqRceiVq-uV0ciXIGItXOhWNM0,1145
|
|
6
|
+
cpp_arena-2.9.dist-info/licenses/third_party/CGAL-LICENSE.txt,sha256=_T3_RkmIeZwh9lOXoxTrSOroKIpprFEpZ7Fh55uS2J4,1981
|
|
7
|
+
cpp_arena-2.9.dist-info/licenses/third_party/LICENSE.GPL,sha256=QWITIDR54nAVwy2eizD4Cih5YqRnUEQbIiNwbN05IRY,35155
|
|
8
|
+
cpp_arena-2.9.dist-info/licenses/third_party/LICENSE.LGPL,sha256=N0pD9iWhuHf28TcZ0bq0yoeR7eYE2j4AnDztofb4VIk,7656
|
|
9
|
+
cpp_arena-2.9.dist-info/licenses/third_party/LICENSE_1_0.txt,sha256=yb_3VziSIZPmf6cm-iJVNYcNKqEFn5FFLEEXNihK1WY,1338
|
|
10
|
+
cpp_arena-2.9.dist-info/METADATA,sha256=hWbrTyYXDJNpxtgRYrrUvTy2nvGoSAAGq_vQIZCRR1I,3310
|
|
11
|
+
cpp_arena-2.9.dist-info/WHEEL,sha256=BlXG8Qkq_mCTKpY-toCToAQAmGPE73xawTOhla8_4pE,98
|
|
12
|
+
cpp_arena-2.9.dist-info/entry_points.txt,sha256=o0qQu6zKBJ9WgiJj1ihtme21V-ueqUz_IJgaWlSBtTU,88
|
|
13
|
+
cpp_arena-2.9.dist-info/top_level.txt,sha256=6oi3ZbIfUinUUQB4lQC2T-s0XNE6fl3YQ26F5o71jP0,10
|
|
14
|
+
cpp_arena-2.9.dist-info/RECORD,,
|