<commit_before>Some C++ datastructures that would be handy for building map generators.

The map grid is modelled as a `Graph` (with a fixed number of nodes), and everything else is done by means of `TotalField<T>`s which assign a value to every node (e.g. elevation, water flux, etc).
The node's (x, y) position can also be laid out as a field with coordinate pairs as its values.
There's also a `PartialField<T>` which only assign values to some nodes (might be handy for e.g. settlement locations).

Currently completely undocumented, but the [integration test](tests/test_integration.cpp) should demonstrate the principle.

# Building

```
cmake .
make
make test
```

The project is set up to emit a static library, you can probably hack a shared library out of it if you really need one.

# Requirements

* C++11 compiler
* [CMake](https://cmake.org/)
* [Doxygen](http://doxygen.org/) (for building documentation)<commit_msg>update README with doxygen instructions (such as they are)<commit_after>Some C++ datastructures that would be handy for building map generators.

The map grid is modelled as a `Graph` (with a fixed number of nodes), and everything else is done by means of `TotalField<T>`s which assign a value to every node (e.g. elevation, water flux, etc).
The node's (x, y) position can also be laid out as a field with coordinate pairs as its values.
There's also a `PartialField<T>` which only assign values to some nodes (might be handy for e.g. settlement locations).

Currently completely undocumented, but the [integration test](tests/test_integration.cpp) should demonstrate the principle.

# Building

To build and run tests:

> cmake .
> make
> make test

To build documentation:

> doxygen

The project is set up to emit a static library, you can probably hack a shared library out of it if you really need one.

# Requirements

* C++11 compiler
* [CMake](https://cmake.org/)
* [Doxygen](http://doxygen.org/) (for building documentation)
{'fraction_non_alphanumeric': 0.0835030549898167, 'fraction_numerical': 0.002036659877800407, 'mean_word_length': 4.504201680672269, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 11, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7160353', 'n_tokens_mistral': 563, 'n_tokens_neox': 522, 'n_words': 280}