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 2a784ae50c682fb6e1c81466083b67195cf2279a
parent 46a23365ddb007729c2a792bb6719566ef7254a2
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Wed, 15 Jan 2025 11:20:27 +0100

Improve logs

Output building construction mode, dataset name, height, and number of
levels for any construction mode.

Diffstat:
Msrc/cg_building.h | 1+
Msrc/cg_construction_mode.c | 3+++
Msrc/cg_construction_mode_0.c | 4+++-
Msrc/cg_construction_mode_1.c | 4++--
Msrc/cg_construction_mode_2.c | 35++++++++++++++---------------------
5 files changed, 23 insertions(+), 24 deletions(-)

diff --git a/src/cg_building.h b/src/cg_building.h @@ -113,6 +113,7 @@ struct building { /* generic construction mode data */ struct str name; + struct str dataset_name; struct str external_layer_name; struct city* city; double total_height; diff --git a/src/cg_construction_mode.c b/src/cg_construction_mode.c @@ -64,12 +64,14 @@ init_building_base building->city = city; str_init(city->allocator, &building->name); + str_init(city->allocator, &building->dataset_name); str_init(city->allocator, &building->external_layer_name); htable_building_init(city->allocator, &building->close_buildings); darray_double_init(city->allocator, &building->levels_height); building->structs_initialized = 1; ERR(str_set(&building->name, parsed_data->name)); + ERR(str_set(&building->dataset_name, parsed_data->dataset_name)); ERR(scpr_polygon_create(city->scpr, &building->pg)); ERR(scpr_polygon_setup_indexed_vertices(building->pg, 1, get_nverts, get_pos, parsed_data)); @@ -120,6 +122,7 @@ release_building_base if(building->structs_initialized) { str_release(&building->name); + str_release(&building->dataset_name); str_release(&building->external_layer_name); htable_building_release(&building->close_buildings); darray_double_release(&building->levels_height); diff --git a/src/cg_construction_mode_0.c b/src/cg_construction_mode_0.c @@ -535,7 +535,9 @@ build_cad_cmode_0 height = building->total_height; data = (struct dataset_cmode_0 *)building->data; - logger_print(logger, LOG_OUTPUT, "Building '%s' construction mode 0.\n", name); + logger_print(logger, LOG_OUTPUT, + "Building '%s' construction mode 0, dataset '%s', %g m tall.\n", + name, str_cget(&building->dataset_name), building->total_height); if(height <= 0 || data->wall_thickness <= 0 || data->floor_thickness <= 0) { res = RES_BAD_ARG; diff --git a/src/cg_construction_mode_1.c b/src/cg_construction_mode_1.c @@ -1570,8 +1570,8 @@ build_cad_cmode_1 logger = building->city->logger; logger_print(logger, LOG_OUTPUT, - "Building '%s' construction mode 1, with %lu levels.\n", - name, 1 + data->inter_floor_count); + "Building '%s' construction mode 1, dataset '%s', %g m tall.\n", + name, str_cget(&building->dataset_name), building->total_height); data_cad = MEM_CALLOC(allocator, 1, sizeof(struct data_cad_cmode_1)); if(!data_cad) { diff --git a/src/cg_construction_mode_2.c b/src/cg_construction_mode_2.c @@ -1557,8 +1557,6 @@ init_cmode_2 const double upper[2]) { res_T res = RES_OK; - struct str dataset_name; - int name_initialized = 0; struct dataset_cmode_2* data; static struct construction_mode_functors functors_2 = { &init_cmode_2, @@ -1569,7 +1567,6 @@ init_cmode_2 &export_stl_cmode_2, &release_cad_cmode_2 }; - struct mem_allocator* allocator; struct logger* logger; int has_external_insulation; double *lh; @@ -1580,7 +1577,6 @@ init_cmode_2 goto error; } - allocator = city->allocator; logger = city->logger; building->construction_mode = mode_2; building->functors = &functors_2; @@ -1605,14 +1601,12 @@ init_cmode_2 goto error; } - str_init(allocator, &dataset_name); - name_initialized = 1; - ERR(str_set(&dataset_name, parsed_data->dataset_name)); - building->data = htable_dataset_cmode_2_find(&catalog->catalog_2, &dataset_name); + building->data = htable_dataset_cmode_2_find(&catalog->catalog_2, + &building->dataset_name); if(building->data == NULL) { ERR(logger_print(logger, LOG_ERROR, "Unknown dataset name: '%s' used by building '%s'.\n", - str_cget(&dataset_name), str_cget(&building->name))); + str_cget(&building->dataset_name), str_cget(&building->name))); res = RES_BAD_ARG; goto error; } @@ -1641,28 +1635,27 @@ init_cmode_2 } exit: - if(name_initialized) str_release(&dataset_name); return res; error: goto exit; } res_T - release_cmode_2 -(struct building* building) +release_cmode_2 + (struct building* building) { if(!building) return RES_BAD_ARG; return release_building_base(building); } res_T - build_cad_cmode_2 -(struct building* building, - int dump_footprints_level, - int keep_running_on_errors, - struct darray_adjoining_data* adjoining_data, - struct darray_geometries* current_cad, - void** cad) +build_cad_cmode_2 + (struct building* building, + int dump_footprints_level, + int keep_running_on_errors, + struct darray_adjoining_data* adjoining_data, + struct darray_geometries* current_cad, + void** cad) { res_T res = RES_OK; double height = building->total_height; @@ -1699,8 +1692,8 @@ res_T levels_n = darray_double_size_get(&building->levels_height); logger_print(logger, LOG_OUTPUT, - "Building '%s' construction mode 2, %g m tall, with %lu levels.\n", - name, building->total_height, levels_n); + "Building '%s' construction mode 2, dataset '%s', %g m tall, %lu levels.\n", + name, str_cget(&building->dataset_name), building->total_height, levels_n); data_cad = MEM_CALLOC(allocator, 1, sizeof(struct data_cad_cmode_2)); if(!data_cad) {