#include <dm3io.h>
Public Member Functions | |
| TagTable () | |
| ~TagTable () | |
| void | add (const string &name, const string &value) |
| void | add_data (char *data) |
| string | get_string (const string &name) |
| int | get_int (const string &name) |
| float | get_float (const string &name) |
| double | get_double (const string &name) |
| int | get_xsize () const |
| int | get_ysize () const |
| int | get_datatype () const |
| char * | get_data () const |
| void | dump () const |
| template<class T> | |
| void | become_host_endian (T *data, int n=1) |
| void | set_endian (bool big_endian) |
Private Member Functions | |
| void | set_thumb_index (int i) |
Private Attributes | |
| int | img_index |
| bool | is_big_endian |
| std::map< string, string > | tags |
| vector< int > | x_list |
| vector< int > | y_list |
| vector< int > | datatype_list |
| vector< char * > | data_list |
Static Private Attributes | |
| const char * | IMAGE_WIDTH_TAG = "Dimensions #0" |
| const char * | IMAGE_HEIGHT_TAG = "Dimensions #1" |
| const char * | IMAGE_DATATYPE_TAG = "DataType" |
| const char * | IMAGE_THUMB_INDEX_TAG = "ImageIndex" |
|
|
Definition at line 50 of file dm3io.cpp. 00051 : img_index(0), is_big_endian(true) 00052 { 00053 }
|
|
|
Definition at line 55 of file dm3io.cpp. References data_list. 00056 {
00057 for (unsigned int i = 0; i < data_list.size(); i++) {
00058 if (data_list[i]) {
00059 delete[]data_list[i];
00060 data_list[i] = 0;
00061 }
00062 }
00063 }
|
|
||||||||||||
|
Definition at line 66 of file dm3io.cpp. References datatype_list, set_thumb_index(), tags, x_list, and y_list. Referenced by EMAN::Gatan::TagData::read_any(), EMAN::Gatan::TagData::read_array_data(), and EMAN::Gatan::TagData::read_native(). 00067 {
00068 const char *value_str = value.c_str();
00069
00070 if (name == IMAGE_WIDTH_TAG) {
00071 x_list.push_back(atoi(value_str));
00072 }
00073 else if (name == IMAGE_HEIGHT_TAG) {
00074 y_list.push_back(atoi(value_str));
00075 }
00076 else if (name == IMAGE_DATATYPE_TAG) {
00077 datatype_list.push_back(atoi(value_str));
00078 }
00079 else if (name == IMAGE_THUMB_INDEX_TAG) {
00080 set_thumb_index(atoi(value_str));
00081 }
00082 else {
00083 tags[name] = value;
00084 }
00085 }
|
|
|
Definition at line 87 of file dm3io.cpp. References data, data_list, and NullPointerException. Referenced by EMAN::Gatan::TagData::read_array_data(). 00088 {
00089 if (!data) {
00090 throw NullPointerException("DM3 data is NULL");
00091 }
00092 else {
00093 data_list.push_back(data);
00094 }
00095 }
|
|
||||||||||||||||
|
Definition at line 69 of file dm3io.h. References data. Referenced by EMAN::Gatan::TagData::read_array_data(), EMAN::Gatan::TagData::read_native(), and EMAN::Gatan::TagData::read_string(). 00069 {
00070 if (is_big_endian != ByteOrder::is_host_big_endian()) {
00071 ByteOrder::swap_bytes(data, n);
00072 }
00073 }
|
|
|
Definition at line 117 of file dm3io.cpp. References LOGDEBUG, and tags. 00118 {
00119 map < string, string >::const_iterator p;
00120
00121 for (p = tags.begin(); p != tags.end(); p++) {
00122 LOGDEBUG(" %s: %s", (*p).first.c_str(), (*p).second.c_str());
00123 }
00124 }
|
|
|
Definition at line 141 of file dm3io.cpp. References data_list. 00142 {
00143 return data_list[img_index];
00144 }
|
|
|
Definition at line 136 of file dm3io.cpp. References datatype_list. 00137 {
00138 return datatype_list[img_index];
00139 }
|
|
|
Definition at line 112 of file dm3io.cpp. References tags. 00113 {
00114 return atof(tags[name].c_str());
00115 }
|
|
|
Definition at line 107 of file dm3io.cpp. References tags. 00108 {
00109 return static_cast < float >(atof(tags[name].c_str()));
00110 }
|
|
|
Definition at line 102 of file dm3io.cpp. References tags. 00103 {
00104 return atoi(tags[name].c_str());
00105 }
|
|
|
Definition at line 97 of file dm3io.cpp. References tags. 00098 {
00099 return tags[name];
00100 }
|
|
|
Definition at line 126 of file dm3io.cpp. References x_list. 00127 {
00128 return x_list[img_index];
00129 }
|
|
|
Definition at line 131 of file dm3io.cpp. References y_list. 00132 {
00133 return y_list[img_index];
00134 }
|
|
|
Definition at line 75 of file dm3io.h. 00076 {
00077 is_big_endian = big_endian;
00078 }
|
|
|
Definition at line 146 of file dm3io.cpp. References img_index, and OutofRangeException. Referenced by add(). 00147 {
00148 if (i != 0 && i != 1) {
00149 throw OutofRangeException(0, 1, i, "image index");
00150 }
00151 else {
00152 if (i == 0) {
00153 img_index = 1;
00154 }
00155 else {
00156 img_index = 0;
00157 }
00158 }
00159 }
|
|
|
Definition at line 94 of file dm3io.h. Referenced by add_data(), get_data(), and ~TagTable(). |
|
|
Definition at line 93 of file dm3io.h. Referenced by add(), and get_datatype(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 88 of file dm3io.h. Referenced by set_thumb_index(). |
|
|
|
|
|
Definition at line 90 of file dm3io.h. Referenced by add(), dump(), get_double(), get_float(), get_int(), and get_string(). |
|
|
Definition at line 91 of file dm3io.h. Referenced by add(), and get_xsize(). |
|
|
Definition at line 92 of file dm3io.h. Referenced by add(), and get_ysize(). |
1.3.9.1