- if (file_id < 0) {
- sys_error (ERR_WARNING, "Tried to read header with file closed [headerRead]");
- return (false);
- }
-
- lseek (file_id, 0, SEEK_SET);
- kuint16 file_signature;
- kuint16 file_pixel_size;
- kuint16 file_pixel_type;
-
- read_nint16 (&headersize, file_id);
- read_nint16 (&file_signature, file_id);
- read_nint16 (&num_labels, file_id);
- read_nint16 (&file_pixel_type, file_id);
- read_nint16 (&file_pixel_size, file_id);
- read_nint32 (&nx, file_id);
- read_nint32 (&ny, file_id);
- read_nint16 (&axis_increment_known, file_id);
- read_nfloat64 (&xinc, file_id);
- read_nfloat64 (&yinc, file_id);
- read_nint16 (&axis_extent_known, file_id);
- read_nfloat64 (&xmin, file_id);
- read_nfloat64 (&xmax, file_id);
- read_nfloat64 (&ymin, file_id);
- read_nfloat64 (&ymax, file_id);
- read_nfloat64 (&pv_offset, file_id);
- read_nfloat64 (&pv_scale, file_id);
-
- int read_headersize = lseek (file_id, 0, SEEK_CUR);
- if (read_headersize != headersize) {
- sys_error (ERR_WARNING, "Read headersize %d != file headersize %d", read_headersize, headersize);
- return (false);
- }
- if (file_signature != signature) {
- sys_error (ERR_WARNING, "File signature %d != true signature %d", file_signature, signature);
- return (false);
- }
- if (file_pixel_type != pixel_type) {
- sys_error (ERR_WARNING, "File pixel type %d != class pixel type %d", file_pixel_type, pixel_type);
- return (false);
- }
- if (file_pixel_size != pixel_size) {
- sys_error (ERR_WARNING, "File pixel size %d != class pixel size %d", file_pixel_size, pixel_size);
- return (false);
- }
-
- return (true);
-}
-
-template<class T>
-bool
-Array2dFile<T>::headerWrite (void)
-{
- if (file_id < 0) {
- sys_error (ERR_WARNING, "Tried to write header with file closed");
- return (false);
- }
-
- lseek (file_id, 0, SEEK_SET);
- write_nint16 (&headersize, file_id);
- write_nint16 (&signature, file_id);
- write_nint16 (&num_labels, file_id);
- write_nint16 (&pixel_type, file_id);
- write_nint16 (&pixel_size, file_id);
- write_nint32 (&nx, file_id);
- write_nint32 (&ny, file_id);
- write_nint16 (&axis_increment_known, file_id);
- write_nfloat64 (&xinc, file_id);
- write_nfloat64 (&yinc, file_id);
- write_nint16 (&axis_extent_known, file_id);
- write_nfloat64 (&xmin, file_id);
- write_nfloat64 (&xmax, file_id);
- write_nfloat64 (&ymin, file_id);
- write_nfloat64 (&ymax, file_id);
- write_nfloat64 (&pv_offset, file_id);
- write_nfloat64 (&pv_scale, file_id);
-
- headersize = lseek (file_id, 0, SEEK_CUR);
- lseek (file_id, 0, SEEK_SET);
- write_nint16 (&headersize, file_id);
-
- return (true);
-}
-
-template<class T>
-bool
-Array2dFile<T>::arrayDataWrite (void)
-{
- if (file_id < 0) {
- sys_error (ERR_WARNING, "Tried to arrayDataWrite with file_id < 0");
- return (false);