Documentation
This commit is contained in:
parent
31cf9e2502
commit
7dfb9fdc37
16
README.md
16
README.md
@ -1,21 +1,17 @@
|
||||
# Master Thesis - Polygon simplification
|
||||
|
||||
This is the repository for the masters thesis "Performance comparison of simplification algorithms for polygons in the context of web applications" from Alfred Melch. It contains the thesis itself, all LaTeX source files, the developed libraries and the application for benchmarking.
|
||||
|
||||
## Folder Structure
|
||||
|
||||
- benchmarking: web-app for benchmarking
|
||||
- compare-algorithms: web-app for algorithm comparison
|
||||
- build: All static files bundled in one place for deployment to a web server.
|
||||
- lib: 3rd party and self-written libraries
|
||||
- public: HTML entry point files for the build folder
|
||||
- thesis: latex source files and main pdf file
|
||||
|
||||
## web apps
|
||||
|
||||
Development:
|
||||
|
||||
- change to project directory (benchmarking or compare-algorithms)
|
||||
- npm install
|
||||
- npm run serve
|
||||
- server running on localhost:8080
|
||||
Further explanation can be found in README files in the respective folders.
|
||||
|
||||
## Build all
|
||||
|
||||
`make` produces a build directory that combines all parts of this thesis. It is meant for later to deploy all material to a web server.
|
||||
`make` produces a build directory that combines all parts of this thesis. It is meant for deployment to a web server. `nodejs` and `npm` are required.
|
||||
|
39
benchmarking/README.md
Normal file
39
benchmarking/README.md
Normal file
@ -0,0 +1,39 @@
|
||||
# benchmarking app
|
||||
|
||||
This is the web application to test the simplification libraries on different devices. It is implemented as a npm project. To build the project and run the developent server `npm` and `nodejs` are required.
|
||||
|
||||
- Install dependencies: `npm install`
|
||||
- Run the development server: `npm run serve`
|
||||
- Build the app: `npm run build`
|
||||
|
||||
## Structure
|
||||
|
||||
Important files:
|
||||
|
||||
- `.babelrc`: Configuration of the transpiler "babel"
|
||||
- `.prettierrc`: Configuration of the code formatter "Prettier"
|
||||
- `package.json`: Listing project information, scripts and dependencies
|
||||
- `webpack.config.js` Configuration of the asset bundler "webpack"
|
||||
|
||||
Important folders:
|
||||
|
||||
- `public`: Static files. Entrypoints for pages. Stylesheets
|
||||
- `results`: The prepared results in json format. The index.js gathers all for importing them in JavaScript.
|
||||
- `src`: JavaScript source files
|
||||
|
||||
## Structure of the JavaScript source files
|
||||
|
||||
There are three entry points for the three web pages built:
|
||||
|
||||
- `index.js`: The main app for benchmarking.
|
||||
- `loadChart.js`: Loading a previously saved chart file to display the interactive chart.
|
||||
- `results.js`: Interactive overview for the prepared results
|
||||
|
||||
`loadChart.js` and `results.js` are mostly self-contained or only require external dependencies. Via `index.js` the other JavaScript files are imported.
|
||||
|
||||
Folders in the `src` folder:
|
||||
|
||||
- `benchmarkCases`: Implementation of the several cases that are benchmarked
|
||||
- `benchmarks`: The three benchmark types and the benchmark suite.
|
||||
- `components`: The React UI-components
|
||||
- `data`: The three data sets.
|
@ -1,2 +1,2 @@
|
||||
make all -B
|
||||
make -B
|
||||
rsync -r ./build/ root@mt.melch.pro:/var/www/mt
|
||||
|
12
lib/README.md
Normal file
12
lib/README.md
Normal file
@ -0,0 +1,12 @@
|
||||
# 3rd party and self written libraries
|
||||
|
||||
The libraries from third paries are:
|
||||
|
||||
- simplify-js
|
||||
- turf-simplify
|
||||
|
||||
Self written libraries are:
|
||||
|
||||
- simplify-js-alternative
|
||||
- simplify-wasm
|
||||
- wasm-util
|
@ -1 +1,5 @@
|
||||
# Simplify.js alternative
|
||||
|
||||
This is an alternative Simplify.js version to take coordinates as a nested array.
|
||||
|
||||
All changes to the main file `simplify.js` can be seen in `simplify.diff`.
|
||||
|
13
lib/simplify-wasm/README.md
Normal file
13
lib/simplify-wasm/README.md
Normal file
@ -0,0 +1,13 @@
|
||||
# Simplify.wasm
|
||||
|
||||
A port of Simplify.js to C. Compiled with Emscripten the library can be used on the web again.
|
||||
|
||||
## Important files
|
||||
|
||||
- `example.html`: can be served from a simple http server to test the functionality
|
||||
- `index.js`: abstractions on top of Emscripten to simulate the behavior of Simplify.js
|
||||
- `Makefile`: the compiler call to Emscriptens compiler `emcc`
|
||||
- `simplify.c`: the C source code
|
||||
- `simplify.js`: the JavaScript glue code produced by Emscripten
|
||||
- `simplify.wasm`: the WebAssembly bytecode in binary representation
|
||||
- `simplify.wat`: the WebAssembly code in text representation
|
@ -1 +1,3 @@
|
||||
# WebAssembly utility functions
|
||||
|
||||
Utility function for handling emscripten modules and transfering arrays to and from module memory.
|
Loading…
Reference in New Issue
Block a user