16 #include <H5Tpublic.h>
17 #include <H5Dpublic.h>
18 #include <H5Gpublic.h>
19 #include <H5Ppublic.h>
27 const char* elem_handle,
34 hid_t elem_id, table_id;
42 if( nodes_per_elem <= 0 || count < 0 || !first_id_out )
49 if( elem_id < 0 )
return -1;
51 dims[0] = (hsize_t)count;
52 dims[1] = (hsize_t)nodes_per_elem;
55 if( table_id < 0 )
return -1;
57 first_id = file_ptr->
max_id + 1;
64 *first_id_out = first_id;
79 const char* elem_handle,
80 int* num_nodes_per_elem_out,
81 long* num_elements_out,
82 long* first_elem_id_out,
86 hid_t elem_id, table_id;
93 if( !num_nodes_per_elem_out || !num_elements_out || !first_elem_id_out )
100 if( elem_id < 0 )
return -1;
105 if( table_id < 0 )
return -1;
107 *num_elements_out = dims[0];
108 *num_nodes_per_elem_out = dims[1];
119 hid_t elem_id, table_id;
126 if( elem_id < 0 )
return -1;
131 if( table_id < 0 )
return -1;
142 hid_t hdf_integer_type,
147 mhdf_write_data( table_id, offset, count, hdf_integer_type, nodes, H5P_DEFAULT, status );
153 hid_t hdf_integer_type,
159 mhdf_write_data( table_id, offset, count, hdf_integer_type, nodes, prop, status );
166 hid_t hdf_integer_type,
171 mhdf_read_data( table_id, offset, count, hdf_integer_type, nodes, H5P_DEFAULT, status );
177 hid_t hdf_integer_type,
183 mhdf_read_data( table_id, offset, count, hdf_integer_type, nodes, prop, status );
188 const char* elem_type,
190 long data_list_length,
192 hid_t handles_out[2],
196 hid_t elem_id, index_id, conn_id;
204 if( num_poly <= 0 || data_list_length <= 0 || !first_id_out )
210 if( data_list_length < 3 * num_poly )
219 "Invalid polygon data: data length of %ld is "
220 "insufficient for %ld poly(gons/hedra).\n",
221 data_list_length, num_poly );
226 if( elem_id < 0 )
return;
228 dim = (hsize_t)num_poly;
236 dim = (hsize_t)data_list_length;
241 H5Dclose( index_id );
245 first_id = file_ptr->
max_id + 1;
248 H5Dclose( index_id );
253 *first_id_out = first_id;
254 file_ptr->
max_id += num_poly;
257 H5Dclose( index_id );
263 handles_out[0] = index_id;
264 handles_out[1] = conn_id;
269 const char* element_handle,
271 long* data_list_length_out,
272 long* first_poly_id_out,
273 hid_t handles_out[2],
277 hid_t elem_id, table_id, index_id;
284 if( !num_poly_out || !data_list_length_out || !first_poly_id_out )
291 if( elem_id < 0 )
return;
299 *num_poly_out = (int)row_count;
306 H5Dclose( index_id );
309 *data_list_length_out = (long)row_count;
313 H5Dclose( table_id );
314 H5Dclose( index_id );
319 handles_out[0] = index_id;
320 handles_out[1] = table_id;
328 hid_t hdf_integer_type,
329 const void* index_list,
333 mhdf_write_data( table_id, offset, count, hdf_integer_type, index_list, H5P_DEFAULT, status );
339 hid_t hdf_integer_type,
340 const void* index_list,
345 mhdf_write_data( table_id, offset, count, hdf_integer_type, index_list, prop, status );
352 hid_t hdf_integer_type,
357 mhdf_read_data( table_id, offset, count, hdf_integer_type, index_list, H5P_DEFAULT, status );
363 hid_t hdf_integer_type,
369 mhdf_read_data( table_id, offset, count, hdf_integer_type, index_list, prop, status );
376 hid_t hdf_integer_type,
381 mhdf_write_data( table_id, offset, count, hdf_integer_type, id_list, H5P_DEFAULT, status );
387 hid_t hdf_integer_type,
393 mhdf_write_data( table_id, offset, count, hdf_integer_type, id_list, prop, status );
400 hid_t hdf_integer_type,
405 mhdf_read_data( table_id, offset, count, hdf_integer_type, id_list, H5P_DEFAULT, status );
411 hid_t hdf_integer_type,
417 mhdf_read_data( table_id, offset, count, hdf_integer_type, id_list, prop, status );