stlb: localize variables in their direct scope

This commit is contained in:
Hugues Delorme 2013-03-05 16:22:26 +01:00
parent fb89b4ddcb
commit 1401860c83
2 changed files with 30 additions and 25 deletions

View File

@ -27,13 +27,9 @@ static void foug_stlb_read_facets(foug_stlb_geom_input_t* geom_input,
int foug_stlb_read(foug_stlb_read_args_t *args) int foug_stlb_read(foug_stlb_read_args_t *args)
{ {
uint8_t progress_pc;
uint8_t header_data[FOUG_STLB_HEADER_SIZE];
uint32_t total_facet_count; uint32_t total_facet_count;
size_t buffer_facet_count;
size_t accum_facet_count_read; size_t accum_facet_count_read;
int error; int error;
size_t facet_count_read;
if (args->buffer == NULL) if (args->buffer == NULL)
return FOUG_DATAX_NULL_BUFFER_ERROR; return FOUG_DATAX_NULL_BUFFER_ERROR;
@ -41,11 +37,16 @@ int foug_stlb_read(foug_stlb_read_args_t *args)
return FOUG_DATAX_INVALID_BUFFER_SIZE_ERROR; return FOUG_DATAX_INVALID_BUFFER_SIZE_ERROR;
/* Read header */ /* Read header */
if (foug_stream_read(&args->stream, header_data, 1, FOUG_STLB_HEADER_SIZE) != FOUG_STLB_HEADER_SIZE) {
return FOUG_STLB_READ_HEADER_WRONG_SIZE_ERROR; uint8_t header_data[FOUG_STLB_HEADER_SIZE];
if (foug_stream_read(&args->stream, header_data, 1, FOUG_STLB_HEADER_SIZE)
if (args->geom_input.process_header_func != NULL) != FOUG_STLB_HEADER_SIZE)
args->geom_input.process_header_func(&args->geom_input, header_data); {
return FOUG_STLB_READ_HEADER_WRONG_SIZE_ERROR;
}
if (args->geom_input.process_header_func != NULL)
args->geom_input.process_header_func(&args->geom_input, header_data);
}
/* Read facet count */ /* Read facet count */
if (foug_stream_read(&args->stream, args->buffer, sizeof(uint32_t), 1) != 1) if (foug_stream_read(&args->stream, args->buffer, sizeof(uint32_t), 1) != 1)
@ -56,12 +57,13 @@ int foug_stlb_read(foug_stlb_read_args_t *args)
args->geom_input.begin_triangles_func(&args->geom_input, total_facet_count); args->geom_input.begin_triangles_func(&args->geom_input, total_facet_count);
/* Read triangles */ /* Read triangles */
buffer_facet_count = args->buffer_size / FOUG_STLB_TRIANGLE_SIZE;
accum_facet_count_read = 0; accum_facet_count_read = 0;
error = FOUG_DATAX_NO_ERROR; error = FOUG_DATAX_NO_ERROR;
while (foug_datax_no_error(error) && accum_facet_count_read < total_facet_count) { while (foug_datax_no_error(error) && accum_facet_count_read < total_facet_count) {
facet_count_read = foug_stream_read(&args->stream, const size_t facet_count_read = foug_stream_read(&args->stream,
args->buffer, FOUG_STLB_TRIANGLE_SIZE, buffer_facet_count); args->buffer,
FOUG_STLB_TRIANGLE_SIZE,
args->buffer_size / FOUG_STLB_TRIANGLE_SIZE);
if (foug_stream_error(&args->stream) != 0) if (foug_stream_error(&args->stream) != 0)
error = FOUG_DATAX_STREAM_ERROR; error = FOUG_DATAX_STREAM_ERROR;
else if (facet_count_read > 0) else if (facet_count_read > 0)
@ -70,6 +72,8 @@ int foug_stlb_read(foug_stlb_read_args_t *args)
break; /* Exit if no facet to read */ break; /* Exit if no facet to read */
if (foug_datax_no_error(error)) { if (foug_datax_no_error(error)) {
uint8_t progress_pc;
foug_stlb_read_facets(&args->geom_input, args->buffer, facet_count_read); foug_stlb_read_facets(&args->geom_input, args->buffer, facet_count_read);
accum_facet_count_read += facet_count_read; accum_facet_count_read += facet_count_read;
progress_pc = foug_percentage(0, total_facet_count, accum_facet_count_read); progress_pc = foug_percentage(0, total_facet_count, accum_facet_count_read);

View File

@ -27,7 +27,6 @@ static void foug_stlb_write_facets(const foug_stlb_geom_output_t* geom_output,
int foug_stlb_write(foug_stlb_write_args_t *args) int foug_stlb_write(foug_stlb_write_args_t *args)
{ {
uint8_t header_data[FOUG_STLB_HEADER_SIZE];
uint32_t facet_count; uint32_t facet_count;
uint32_t i_facet; uint32_t i_facet;
uint32_t buffer_facet_count; uint32_t buffer_facet_count;
@ -44,13 +43,16 @@ int foug_stlb_write(foug_stlb_write_args_t *args)
return FOUG_STLB_WRITE_NULL_GET_TRIANGLE_FUNC; return FOUG_STLB_WRITE_NULL_GET_TRIANGLE_FUNC;
/* Write header */ /* Write header */
if (args->geom_output.get_header_func != NULL) {
args->geom_output.get_header_func(&args->geom_output, header_data); uint8_t header_data[FOUG_STLB_HEADER_SIZE];
else if (args->geom_output.get_header_func != NULL)
memset(header_data, 0, FOUG_STLB_HEADER_SIZE); args->geom_output.get_header_func(&args->geom_output, header_data);
else
memset(header_data, 0, FOUG_STLB_HEADER_SIZE);
if (foug_stream_write(&args->stream, header_data, FOUG_STLB_HEADER_SIZE, 1) != 1) if (foug_stream_write(&args->stream, header_data, FOUG_STLB_HEADER_SIZE, 1) != 1)
return FOUG_DATAX_STREAM_ERROR; return FOUG_DATAX_STREAM_ERROR;
}
/* Write facet count */ /* Write facet count */
facet_count = args->geom_output.get_triangle_count_func(&args->geom_output); facet_count = args->geom_output.get_triangle_count_func(&args->geom_output);
@ -81,12 +83,11 @@ int foug_stlb_write(foug_stlb_write_args_t *args)
} }
/* Task control */ /* Task control */
if (foug_datax_no_error(error)) { if (foug_datax_no_error(error)
if (!foug_task_control_handle_progress(&args->task_control, && !foug_task_control_handle_progress(&args->task_control,
foug_percentage(0, facet_count, i_facet + 1))) foug_percentage(0, facet_count, i_facet + 1)))
{ {
error = FOUG_DATAX_TASK_STOPPED_ERROR; error = FOUG_DATAX_TASK_STOPPED_ERROR;
}
} }
} /* end for */ } /* end for */