Jump to navigation Jump to search
1,458 bytes removed ,  00:22, 3 January 2018
** [ Official page]
====Required skills====
: m-file scripting, C, C++, API knowledge, file I/O, classdef (optional).
: easy/medium
: [[User:KaKiLa|KaKiLa]]
=== FullSWOF overland flow simulator ===
Create scripting tools for (optional: native interfaces).
Starting points
* [ The FullSWOF Project].
* [ FullSWOF: A software for overland flow simulation]
* [ Initial work on Bitbucket]
====Required skills====
* '''Mentor and co-mentor'''
: [[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 [ 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 [ ClipperLib] (now implemented), [ Boost::Polygon] (partly implemented), [ Boost::Geometry], or [ 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 [ 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 ==


Navigation menu