00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef MLN_IO_FLD_WRITE_HEADER_HH
00027 # define MLN_IO_FLD_WRITE_HEADER_HH
00028
00034
00035
00036 # include <mln/io/fld/header.hh>
00037 # include <iostream>
00038
00039 namespace mln
00040 {
00041
00042 namespace io
00043 {
00044
00045 namespace fld
00046 {
00052 void write_header(std::ostream& file, const fld_header& h);
00053
00054 # ifndef MLN_INCLUDE_ONLY
00055
00056 inline
00057 void
00058 write_header(std::ostream& file, const fld_header& h)
00059 {
00060 file << "# AVS field file" << std::endl;
00061 file << "# Generated by Milena 1.0 http://olena.lrde.epita.fr" << std::endl;
00062 file << "# EPITA Research and Development Laboratory (LRDE)" << std::endl;
00063
00064 file << "ndim=" << h.ndim << std::endl;
00065 for (int i = 0; i < h.ndim; i++)
00066 file << "dim" << (i + 1) << "=" << h.dim[i] << std::endl;
00067 file << "nspace=" << h.nspace << std::endl
00068 << "veclen=" << h.veclen << std::endl;
00069
00070 switch (h.data)
00071 {
00072 case data_type::BYTE :
00073 file << "data=byte" << std::endl;
00074 break;
00075 case data_type::SHORT :
00076 file << "data=short" << std::endl;
00077 break;
00078 case data_type::INTEGER :
00079 file << "data=integer" << std::endl;
00080 break;
00081 case data_type::FLOAT :
00082 file << "data=float" << std::endl;
00083 break;
00084 case data_type::DOUBLE :
00085 file << "data=double" << std::endl;
00086 break;
00087 default:
00088 std::cerr << "Data type not supported: abort().";
00089 abort();
00090 }
00091
00092 switch (h.field)
00093 {
00094 case field_type::UNIFORM :
00095 file << "field=uniform" << std::endl;
00096 break;
00097 case field_type::IRREGULAR :
00098 file << "field=irregular" << std::endl;
00099 break;
00100 case field_type::RECTILINEAR :
00101 file << "field=rectilinear" << std::endl;
00102 break;
00103 default:
00104 std::cerr << "Field type not suported: abort().";
00105 abort();
00106 }
00107
00108 file << "min_ext=";
00109 for (int i = 0; i < h.nspace; i++)
00110 file << h.min_ext[i] << " ";
00111 file << std::endl;
00112
00113 file << "max_ext=";
00114 for (int i = 0; i < h.nspace; i++)
00115 file << h.max_ext[i] << " ";
00116 file << std::endl;
00117
00118 file << "\f\f";
00119 }
00120
00121 #endif // !MLN_INCLUDE_ONLY
00122
00123 }
00124
00125 }
00126
00127 }
00128
00129 #endif // !MLN_IO_FLD_WRITE_HEADER_HH