Summer of Code - Getting Started: Difference between revisions

Line 252: Line 252:
====EPANET====
====EPANET====
** [https://www.epa.gov/water-research/epanet Official page]
** [https://www.epa.gov/water-research/epanet Official page]
====Required skills====
: m-file scripting, C, C++, API knowledge, file I/O, classdef (optional).
====Difficulty====
: easy/medium
====Mentor====
: [[User:KaKiLa|KaKiLa]]
===  FullSWOF overland flow simulator ===
Create scripting tools for (optional: native interfaces).
Starting points
* [http://www.univ-orleans.fr/mapmo/soft/FullSWOF/ The FullSWOF Project].
* [https://arxiv.org/abs/1204.3210 FullSWOF: A software for overland flow simulation]
* [https://bitbucket.org/binello7/fswof2d Initial work on Bitbucket]


====Required skills====
====Required skills====
Line 307: Line 324:
* '''Mentor and co-mentor'''
* '''Mentor and co-mentor'''
: [[User:oheim|Oliver Heimlich]], [[User:Siko1056|Kai T. Ohlhus]]
: [[User:oheim|Oliver Heimlich]], [[User:Siko1056|Kai T. Ohlhus]]
=== Mapping or Geometry package: Implement boolean operations on polygons ===
The goal is to implement a Matlab-compatible set of boolean operations and supporting function for acting on polygons, allowing users to choose from several polygon clipping libraries. These include the standard set of potential operations such as union/OR, intersection/AND, difference/subtraction, and exclusiveor/XOR.
There is already an octave-forge package that implements a large part of this (the [http://octave.sourceforge.net/octclip/index.html octclip package]); however that does not do XOR; processing polygons with holes could be done better; and maintainability is hampered because all code comments etc. are in Spanish. Other than that, octclip performs fine.
In the OF geometry-3.0.0 package a first implementation based on Clipperlib has been added. Another implemenation based on Boost was made during GSoC 2016 but that one needs significant additional work before it can be integrated into the geometry package.
There are a variety of existing polygon libraries that implement much of the functionality and thus this would be incorporating the library into GNU Octave. The libraries with acceptable licenses are [http://www.angusj.com/delphi/clipper.php ClipperLib] (now implemented), [http://www.boost.org/doc/libs/1_60_0/libs/polygon/doc/index.htm Boost::Polygon] (partly implemented), [https://github.com/boostorg/geometry Boost::Geometry], or [http://boolean.klaasholwerda.nl/bool.html kbool]. This would include implementing the following functions: polybool, ispolycw, poly2ccw, poly2cw, poly2fv, polyjoin, and polysplit. Another, partial, implementation with ClipperLib and GPC can be found [https://sites.google.com/site/ulfgri/numerical/polybool here].
* '''Required skills'''
: Knowledge of C++; C; familiarity with boolean logic; polygons, windings, and geometry
* '''Difficulty'''
: Easy to Medium.
* '''Potential mentor'''
: John Swensen
: [[User:KaKiLa|KaKiLa]]


== Infrastructure ==
== Infrastructure ==
657

edits