#include #include "list_tem.hpp" #include "zsp.hpp" ZSP_Data::~ZSP_Data() { while (zone_array.size()) { zone_array.delete_first_entry(); } } ZSP_Data::ZSP_Data (const char * zdata, size_t /*zsize*/) { const char * ptr = zdata; num_x_cubes = *((int *) ptr); ptr += 4; num_y_cubes = *((int *) ptr); ptr += 4; num_z_cubes = *((int *) ptr); ptr += 4; cube_size = *((double *) ptr); ptr += 8; cube_radius = *((double *) ptr); ptr += 8; int i,j; int numzones = num_x_cubes*num_y_cubes*num_z_cubes; for (i=0; i znl(&zdata->zone_array); !znl.done(); znl.next()) { sz += 8 + (znl().num_z_polys * 4) + (znl().num_z_verts * 4); } return (chunk_size = sz); } void Shape_ZSP_Data_Chunk::fill_data_block ( char * data_start) { strncpy (data_start, identifier, 8); data_start += 8; *((int *) data_start) = chunk_size; data_start += 4; *((int *) data_start) = zspdata.num_x_cubes; data_start += 4; *((int *) data_start) = zspdata.num_y_cubes; data_start += 4; *((int *) data_start) = zspdata.num_z_cubes; data_start += 4; *((double *) data_start) = zspdata.cube_size; data_start += 8; *((double *) data_start) = zspdata.cube_radius; data_start += 8; ZSP_Data * zdata = (ZSP_Data *)(&zspdata); for (LIF znl(&zdata->zone_array); !znl.done(); znl.next()) { *((int *) data_start) = znl().num_z_polys; data_start += 4; *((int *) data_start) = znl().num_z_verts; data_start += 4; int i; for (i=0; i