Documentation

This commit is contained in:
Alfred Melch 2019-08-25 15:12:55 +02:00
parent 31cf9e2502
commit 7dfb9fdc37
7 changed files with 78 additions and 12 deletions

View File

@ -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
View 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.

View File

@ -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
View 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

View File

@ -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`.

View 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

View File

@ -1 +1,3 @@
# WebAssembly utility functions
Utility function for handling emscripten modules and transfering arrays to and from module memory.