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:
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) {