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)
{
uint8_t progress_pc;
uint8_t header_data[FOUG_STLB_HEADER_SIZE];
uint32_t total_facet_count;
size_t buffer_facet_count;
size_t accum_facet_count_read;
int error;
size_t facet_count_read;
if (args->buffer == NULL)
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;
/* 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;
if (args->geom_input.process_header_func != NULL)
args->geom_input.process_header_func(&args->geom_input, header_data);
{
uint8_t header_data[FOUG_STLB_HEADER_SIZE];
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;
}
if (args->geom_input.process_header_func != NULL)
args->geom_input.process_header_func(&args->geom_input, header_data);
}
/* Read facet count */
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);
/* Read triangles */
buffer_facet_count = args->buffer_size / FOUG_STLB_TRIANGLE_SIZE;
accum_facet_count_read = 0;
error = FOUG_DATAX_NO_ERROR;
while (foug_datax_no_error(error) && accum_facet_count_read < total_facet_count) {
facet_count_read = foug_stream_read(&args->stream,
args->buffer, FOUG_STLB_TRIANGLE_SIZE, buffer_facet_count);
const size_t facet_count_read = foug_stream_read(&args->stream,
args->buffer,
FOUG_STLB_TRIANGLE_SIZE,
args->buffer_size / FOUG_STLB_TRIANGLE_SIZE);
if (foug_stream_error(&args->stream) != 0)
error = FOUG_DATAX_STREAM_ERROR;
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 */
if (foug_datax_no_error(error)) {
uint8_t progress_pc;
foug_stlb_read_facets(&args->geom_input, args->buffer, facet_count_read);
accum_facet_count_read += 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)
{
uint8_t header_data[FOUG_STLB_HEADER_SIZE];
uint32_t facet_count;
uint32_t i_facet;
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;
/* Write header */
if (args->geom_output.get_header_func != NULL)
args->geom_output.get_header_func(&args->geom_output, header_data);
else
memset(header_data, 0, FOUG_STLB_HEADER_SIZE);
{
uint8_t header_data[FOUG_STLB_HEADER_SIZE];
if (args->geom_output.get_header_func != NULL)
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)
return FOUG_DATAX_STREAM_ERROR;
if (foug_stream_write(&args->stream, header_data, FOUG_STLB_HEADER_SIZE, 1) != 1)
return FOUG_DATAX_STREAM_ERROR;
}
/* Write facet count */
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 */
if (foug_datax_no_error(error)) {
if (!foug_task_control_handle_progress(&args->task_control,
foug_percentage(0, facet_count, i_facet + 1)))
{
error = FOUG_DATAX_TASK_STOPPED_ERROR;
}
if (foug_datax_no_error(error)
&& !foug_task_control_handle_progress(&args->task_control,
foug_percentage(0, facet_count, i_facet + 1)))
{
error = FOUG_DATAX_TASK_STOPPED_ERROR;
}
} /* end for */