city_generator2

Generated conformal 3D meshes representing a city
git clone git://git.meso-star.fr/city_generator2.git
Log | Files | Refs | README | LICENSE

commit 9fbdd0c8b03729329bb73c7665f26e7ab988d12b
parent e8292d9213b30ae1d6a446f8c28af24da1d92805
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Wed, 12 Jun 2024 17:30:24 +0200

Merge branch 'release_0.3' into develop

Diffstat:
MREADME.md | 87+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Mconfig.mk | 2+-
2 files changed, 60 insertions(+), 29 deletions(-)

diff --git a/README.md b/README.md @@ -1,45 +1,47 @@ # City Generator 2 -The purpose of "City Generator 2" is to produce the .stl files that can be used -by volumic solver software like the -[Stardis](https://gitlab.com/meso-star/star-cad) program. It's designed to -produce conformal mesh which describe a city. - -## How to build - -It relies the -[CMake](http://www.cmake.org) and the -[RCMake](https://gitlab.com/vaplv/rcmake/) packages to build. It also depends -on the -[RSys](https://gitlab.com/vaplv/rsys/), -[Star-CAD](https://gitlab.com/meso-star/star-cad), -[Star-CAD](https://gitlab.com/meso-star/star-clipper) and -[libcyaml](https://github.com/tlsa/libcyaml) libraries. - -First ensure that CMake is installed on your system. Then install the RCMake -package as well as the aforementioned prerequisites. Finally generate the -project from the `cmake/CMakeLists.txt` file by appending to the -`CMAKE_PREFIX_PATH` variable the install directories of its dependencies. The -resulting project can be edited, built, tested and installed as any CMake -project. Refer to the [CMake documentation](https://cmake.org/documentation) -for further informations on CMake. - -Some parameters that change the program behaviour can be set at the cmake stage. -To set them one can use the -D<VAR>=<VAL> pattern. The parameters are: +City Generator 2 is a software that produces conformal 3D meshes representing a +city (in the form of .stl files) from a simple ascii description. These files +can be used by volumic solver software like the +[Stardis](https://gitlab.com/meso-star/star-cad) program. + +## Requirements + +- C compiler +- POSIX make +- pkg-config +- [mandoc](https://mandoc.bsd.lv) +- [RSys](https://gitlab.com/vaplv/rsys) +- [Star-CAD](https://gitlab.com/meso-star/star-cad), +- [Star-CPR](https://gitlab.com/meso-star/star-clipper) +- [libcyaml](https://github.com/tlsa/libcyaml) + +## Installation + +Edit config.mk as needed, then run: + + make clean install + +## Parameters + +Some parameters that change the program behaviour can be set by editing +config.mk before running make: - `CG2_ARGS_DEFAULT_VERBOSITY_LEVEL`: the default verbosity level if the `-V` option is not used. Default is 1 (errors only). - `STL_OUTPUT_DEFAULT_IS_BINARY`: The default format for output STL files. Default is ascii. Depending of this option, the command line options allow - either -a the change the type to ascii, or -b to change it to binary. + either -a to change the type to ascii, or -b to change it to binary. - `CG2_CLOSE_NEIGHBOR_DISTANCE`: The distance up to which a close neighbor building prevents windows to be generated. Default is 2 meters, must be strictly positive. - `CG2_MIN_DISTANCE_TO_MAP_LIMITS': The minimum distance between a building and - the ground limits. Default is 2 meters, must be strictly positive. + the ground limits. If a building is closer than this distance, it is ruled + out as invalid and is removed from the output. Default is 2 meters, must be + strictly positive. - `CG2_MIN_WINDOWS_WIDTH': The minimum width for a window to be valid. Below this threshold, windows are removed. Default is 0.1 meter, must be strictly @@ -47,6 +49,35 @@ To set them one can use the -D<VAR>=<VAL> pattern. The parameters are: ## Release notes +### Version 0.3 + +#### Use POSIX make as a build system + +The build procedure is now written in POSIX make instead of CMake. +In addition to the features already provided by its CMake alternative, +the Makefile supports the use of static libraries and provides an +uninstall target. In any case, the main motivation behind its writing is +to use a good old well-established standard with simple features, +available on all UNIX systems, thus simplifying its portability and +support while being much lighter + +#### Proof-reading and editing manual pages + +Write the man pages directly in mdoc's roff macros, instead of using the +asciidoc markup language as a source for man pages. + +Unlike writing manuals with man's roff macros, and even more so with +asciidoc, mdoc macros take care of layout, font handling and all the other +typesetting details which, by construction, guarantee the consistency of +all manuals without leaving the responsibility to the individual author. +This also facilitates translation into other formats and documentation +tools. These are the main reasons for writing manual pages with mdoc +macros. + +A complete re-reading of the manual pages was carried out during the +translation into mdoc, with several corrections and rewrites to make the +manual clearer. + ### Version 0.2 - Many bugfixes. diff --git a/config.mk b/config.mk @@ -1,5 +1,5 @@ VERSION_MAJOR = 0 -VERSION_MINOR = 2 +VERSION_MINOR = 3 VERSION_PATCH = 0 VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH) PREFIX = /usr/local