README.md (4343B)
1 # City Generator 2 2 3 City Generator 2 is a software that produces conformal 3D meshes representing a 4 city (in the form of .stl files) from a simple ascii description. These files 5 can be used by volumic solver software like the 6 [Stardis](https://gitlab.com/meso-star/star-cad) program. 7 8 ## Requirements 9 10 - C compiler 11 - POSIX make 12 - pkg-config 13 - [mandoc](https://mandoc.bsd.lv) 14 - [RSys](https://gitlab.com/vaplv/rsys) 15 - [Star-CAD](https://gitlab.com/meso-star/star-cad), 16 - [Star-CPR](https://gitlab.com/meso-star/star-clipper) 17 - [libcyaml](https://github.com/tlsa/libcyaml) 18 19 ## Installation 20 21 Edit config.mk as needed, then run: 22 23 make clean install 24 25 ## Parameters 26 27 Some parameters that change the program behaviour can be set by editing 28 config.mk before running make: 29 30 - `CG2_ARGS_DEFAULT_VERBOSITY_LEVEL`: the default verbosity level if the `-V` 31 option is not used. Default is 1 (errors only). 32 33 - `STL_OUTPUT_DEFAULT_IS_BINARY`: The default format for output STL files. 34 Default is ascii. Depending of this option, the command line options allow 35 either -a to change the type to ascii, or -b to change it to binary. 36 37 - `CG2_CLOSE_NEIGHBOR_DISTANCE`: The distance up to which a close neighbor 38 building prevents windows to be generated. Default is 2 meters, must be 39 strictly positive. 40 41 - `CG2_MIN_DISTANCE_TO_MAP_LIMITS': The minimum distance between a building and 42 the ground limits. If a building is closer than this distance, it is ruled 43 out as invalid and is removed from the output. Default is 2 meters, must be 44 strictly positive. 45 46 - `CG2_MIN_WINDOWS_WIDTH': The minimum width for a window to be valid. Below 47 this threshold, windows are removed. Default is 0.1 meter, must be strictly 48 positive. 49 50 ## Release notes 51 52 ### Version 0.4 53 54 - Add new construction mode 2 55 56 ### Version 0.3.1 57 58 - Upgrade star-cpr dependency to 0.5.1 59 60 ### Version 0.3 61 62 #### Use POSIX make as a build system 63 64 The build procedure is now written in POSIX make instead of CMake. 65 In addition to the features already provided by its CMake alternative, 66 the Makefile supports the use of static libraries and provides an 67 uninstall target. In any case, the main motivation behind its writing is 68 to use a good old well-established standard with simple features, 69 available on all UNIX systems, thus simplifying its portability and 70 support while being much lighter 71 72 #### Proof-reading and editing manual pages 73 74 Write the man pages directly in mdoc's roff macros, instead of using the 75 asciidoc markup language as a source for man pages. 76 77 Unlike writing manuals with man's roff macros, and even more so with 78 asciidoc, mdoc macros take care of layout, font handling and all the other 79 typesetting details which, by construction, guarantee the consistency of 80 all manuals without leaving the responsibility to the individual author. 81 This also facilitates translation into other formats and documentation 82 tools. These are the main reasons for writing manual pages with mdoc 83 macros. 84 85 A complete re-reading of the manual pages was carried out during the 86 translation into mdoc, with several corrections and rewrites to make the 87 manual clearer. 88 89 ### Version 0.2 90 91 - Many bugfixes. 92 Version 0.1 was really broken in many ways and should not be used. 93 - Upgrade most dependencies. 94 95 Known limitations: 96 97 - Some building crossing configurations remain undetected (crossing at a 98 vertex). 99 100 - Mesh quality is limited to avoid non-conformity at building/ground connexion. 101 This can increase the error-rate if the mesh is used for raytracing. 102 103 104 ### Version 0.1 105 106 Initial version. 107 108 Known limitations: 109 110 - No detection of building-inside-building cases. 111 112 - Some building crossing configurations remain undetected (crossing at a 113 vertex). 114 115 - Mesh quality is limited to avoid non-conformity at building/ground connexion. 116 This can increase the error-rate if the mesh is used for raytracing. 117 118 ## Copyright notice 119 120 Copyright (C) 2022 Université de Pau et des Pays de l'Adour UPPA. 121 Copyright (C) 2022 CNRS 122 Copyright (C) 2022 Sorbonne Université 123 Copyright (C) 2022 Université Paul Sabatier 124 Copyright (C) 2022 [|Méso|Star>](https://www.meso-star.com) (<contact@meso-star.com>). 125 126 ## License 127 128 City Generator 2 is free software released under the GPL v3+ license: GNU GPL 129 version 3 or later. You are welcome to redistribute it under certain 130 conditions; refer to the COPYING file for details.