1 //---
2 // File: ossimNitfRsmidaTag.cpp
3 //---
4 
5 #include <ossim/support_data/ossimNitfRsmidaTag.h>
6 #include <iomanip>
7 #include <iostream>
8 
9 using namespace std;
10 
11 RTTI_DEF1(ossimNitfRsmidaTag, "ossimNitfRsmidaTag", ossimNitfRegisteredTag);
12 
ossimNitfRsmidaTag()13 ossimNitfRsmidaTag::ossimNitfRsmidaTag()
14    :
15    ossimNitfRegisteredTag(std::string("RSMIDA"), CEL_SIZE),
16    m_iid(),
17    m_edition(),
18    m_isid(),
19    m_sid(),
20    m_stid(),
21    m_year(),
22    m_month(),
23    m_day(),
24    m_hour(),
25    m_minute(),
26    m_second(),
27    m_nrg(),
28    m_ncg(),
29    m_trg(),
30    m_tcg(),
31    m_grndd(),
32 
33    m_xuor(),
34    m_yuor(),
35    m_zuor(),
36    m_xuxr(),
37    m_xuyr(),
38    m_xuzr(),
39    m_yuxr(),
40    m_yuyr(),
41    m_yuzr(),
42    m_zuxr(),
43    m_zuyr(),
44    m_zuzr(),
45 
46    m_v1x(),
47    m_v1y(),
48    m_v1z(),
49    m_v2x(),
50    m_v2y(),
51    m_v2z(),
52    m_v3x(),
53    m_v3y(),
54    m_v3z(),
55    m_v4x(),
56    m_v4y(),
57    m_v4z(),
58    m_v5x(),
59    m_v5y(),
60    m_v5z(),
61    m_v6x(),
62    m_v6y(),
63    m_v6z(),
64    m_v7x(),
65    m_v7y(),
66    m_v7z(),
67    m_v8x(),
68    m_v8y(),
69    m_v8z(),
70 
71    m_grpx(),
72    m_grpy(),
73    m_grpz(),
74 
75    m_fullr(),
76    m_fullc(),
77 
78    m_minr(),
79    m_maxr(),
80    m_minc(),
81    m_maxc(),
82 
83    m_ie0(),
84    m_ier(),
85    m_iec(),
86    m_ierr(),
87    m_ierc(),
88    m_iecc(),
89    m_ia0(),
90    m_iar(),
91    m_iac(),
92    m_iarr(),
93    m_iarc(),
94    m_iacc(),
95 
96    m_spx(),
97    m_svx(),
98    m_sax(),
99    m_spy(),
100    m_svy(),
101    m_say(),
102    m_spz(),
103    m_svz(),
104    m_saz()
105 {
106    clearFields();
107 }
108 
parseStream(std::istream & in)109 void ossimNitfRsmidaTag::parseStream(std::istream& in)
110 {
111    in.read(m_iid, IID_SIZE);
112    in.read(m_edition, EDITION_SIZE);
113    in.read(m_isid, ISID_SIZE);
114    in.read(m_sid, SID_SIZE);
115    in.read(m_stid, STID_SIZE);
116    in.read(m_year, YEAR_SIZE);
117    in.read(m_month, MONTH_SIZE);
118    in.read(m_day, DAY_SIZE);
119    in.read(m_hour, HOUR_SIZE);
120    in.read(m_minute, MINUTE_SIZE);
121    in.read(m_second, SECOND_SIZE);
122    in.read(m_nrg, NRG_SIZE);
123    in.read(m_ncg, NCG_SIZE);
124    in.read(m_trg, FLOAT21_SIZE);
125    in.read(m_tcg, FLOAT21_SIZE);
126    in.read(m_grndd, GRNDD_SIZE);
127    in.read(m_xuor, FLOAT21_SIZE);
128    in.read(m_yuor, FLOAT21_SIZE);
129    in.read(m_zuor, FLOAT21_SIZE);
130    in.read(m_xuxr, FLOAT21_SIZE);
131    in.read(m_xuyr, FLOAT21_SIZE);
132    in.read(m_xuzr, FLOAT21_SIZE);
133    in.read(m_yuxr, FLOAT21_SIZE);
134    in.read(m_yuyr, FLOAT21_SIZE);
135    in.read(m_yuzr, FLOAT21_SIZE);
136    in.read(m_zuxr, FLOAT21_SIZE);
137    in.read(m_zuyr, FLOAT21_SIZE);
138    in.read(m_zuzr, FLOAT21_SIZE);
139    in.read(m_v1x, FLOAT21_SIZE);
140    in.read(m_v1y, FLOAT21_SIZE);
141    in.read(m_v1z, FLOAT21_SIZE);
142    in.read(m_v2x, FLOAT21_SIZE);
143    in.read(m_v2y, FLOAT21_SIZE);
144    in.read(m_v2z, FLOAT21_SIZE);
145    in.read(m_v3x, FLOAT21_SIZE);
146    in.read(m_v3y, FLOAT21_SIZE);
147    in.read(m_v3z, FLOAT21_SIZE);
148    in.read(m_v4x, FLOAT21_SIZE);
149    in.read(m_v4y, FLOAT21_SIZE);
150    in.read(m_v4z, FLOAT21_SIZE);
151    in.read(m_v5x, FLOAT21_SIZE);
152    in.read(m_v5y, FLOAT21_SIZE);
153    in.read(m_v5z, FLOAT21_SIZE);
154    in.read(m_v6x, FLOAT21_SIZE);
155    in.read(m_v6y, FLOAT21_SIZE);
156    in.read(m_v6z, FLOAT21_SIZE);
157    in.read(m_v7x, FLOAT21_SIZE);
158    in.read(m_v7y, FLOAT21_SIZE);
159    in.read(m_v7z, FLOAT21_SIZE);
160    in.read(m_v8x, FLOAT21_SIZE);
161    in.read(m_v8y, FLOAT21_SIZE);
162    in.read(m_v8z, FLOAT21_SIZE);
163    in.read(m_grpx, FLOAT21_SIZE);
164    in.read(m_grpy, FLOAT21_SIZE);
165    in.read(m_grpz, FLOAT21_SIZE);
166    in.read(m_fullr, FULL_SIZE);
167    in.read(m_fullc, FULL_SIZE);
168    in.read(m_minr, MIN_SIZE);
169    in.read(m_maxr, MAX_SIZE);
170    in.read(m_minc, MIN_SIZE);
171    in.read(m_maxc, MAX_SIZE);
172    in.read(m_ie0, FLOAT21_SIZE);
173    in.read(m_ier, FLOAT21_SIZE);
174    in.read(m_iec, FLOAT21_SIZE);
175    in.read(m_ierr, FLOAT21_SIZE);
176    in.read(m_ierc, FLOAT21_SIZE);
177    in.read(m_iecc, FLOAT21_SIZE);
178    in.read(m_ia0, FLOAT21_SIZE);
179    in.read(m_iar, FLOAT21_SIZE);
180    in.read(m_iac, FLOAT21_SIZE);
181    in.read(m_iarr, FLOAT21_SIZE);
182    in.read(m_iarc, FLOAT21_SIZE);
183    in.read(m_iacc, FLOAT21_SIZE);
184    in.read(m_spx, FLOAT21_SIZE);
185    in.read(m_svx, FLOAT21_SIZE);
186    in.read(m_sax, FLOAT21_SIZE);
187    in.read(m_spy, FLOAT21_SIZE);
188    in.read(m_svy, FLOAT21_SIZE);
189    in.read(m_say, FLOAT21_SIZE);
190    in.read(m_spz, FLOAT21_SIZE);
191    in.read(m_svz, FLOAT21_SIZE);
192    in.read(m_saz, FLOAT21_SIZE);
193 }
194 
writeStream(std::ostream & out)195 void ossimNitfRsmidaTag::writeStream(std::ostream& out)
196 {
197    out.write(m_iid, IID_SIZE);
198    out.write(m_edition, EDITION_SIZE);
199    out.write(m_isid, ISID_SIZE);
200    out.write(m_sid, SID_SIZE);
201    out.write(m_stid, STID_SIZE);
202    out.write(m_year, YEAR_SIZE);
203    out.write(m_month, MONTH_SIZE);
204    out.write(m_day, DAY_SIZE);
205    out.write(m_hour, HOUR_SIZE);
206    out.write(m_minute, MINUTE_SIZE);
207    out.write(m_second, SECOND_SIZE);
208    out.write(m_nrg, NRG_SIZE);
209    out.write(m_ncg, NCG_SIZE);
210    out.write(m_trg, FLOAT21_SIZE);
211    out.write(m_tcg, FLOAT21_SIZE);
212    out.write(m_grndd, GRNDD_SIZE);
213    out.write(m_xuor, FLOAT21_SIZE);
214    out.write(m_yuor, FLOAT21_SIZE);
215    out.write(m_zuor, FLOAT21_SIZE);
216    out.write(m_xuxr, FLOAT21_SIZE);
217    out.write(m_xuyr, FLOAT21_SIZE);
218    out.write(m_xuzr, FLOAT21_SIZE);
219    out.write(m_yuxr, FLOAT21_SIZE);
220    out.write(m_yuyr, FLOAT21_SIZE);
221    out.write(m_yuzr, FLOAT21_SIZE);
222    out.write(m_zuxr, FLOAT21_SIZE);
223    out.write(m_zuyr, FLOAT21_SIZE);
224    out.write(m_zuzr, FLOAT21_SIZE);
225    out.write(m_v1x, FLOAT21_SIZE);
226    out.write(m_v1y, FLOAT21_SIZE);
227    out.write(m_v1z, FLOAT21_SIZE);
228    out.write(m_v2x, FLOAT21_SIZE);
229    out.write(m_v2y, FLOAT21_SIZE);
230    out.write(m_v2z, FLOAT21_SIZE);
231    out.write(m_v3x, FLOAT21_SIZE);
232    out.write(m_v3y, FLOAT21_SIZE);
233    out.write(m_v3z, FLOAT21_SIZE);
234    out.write(m_v4x, FLOAT21_SIZE);
235    out.write(m_v4y, FLOAT21_SIZE);
236    out.write(m_v4z, FLOAT21_SIZE);
237    out.write(m_v5x, FLOAT21_SIZE);
238    out.write(m_v5y, FLOAT21_SIZE);
239    out.write(m_v5z, FLOAT21_SIZE);
240    out.write(m_v6x, FLOAT21_SIZE);
241    out.write(m_v6y, FLOAT21_SIZE);
242    out.write(m_v6z, FLOAT21_SIZE);
243    out.write(m_v7x, FLOAT21_SIZE);
244    out.write(m_v7y, FLOAT21_SIZE);
245    out.write(m_v7z, FLOAT21_SIZE);
246    out.write(m_v8x, FLOAT21_SIZE);
247    out.write(m_v8y, FLOAT21_SIZE);
248    out.write(m_v8z, FLOAT21_SIZE);
249    out.write(m_grpx, FLOAT21_SIZE);
250    out.write(m_grpy, FLOAT21_SIZE);
251    out.write(m_grpz, FLOAT21_SIZE);
252    out.write(m_fullr, FULL_SIZE);
253    out.write(m_fullc, FULL_SIZE);
254    out.write(m_minr, MIN_SIZE);
255    out.write(m_maxr, MAX_SIZE);
256    out.write(m_minc, MIN_SIZE);
257    out.write(m_maxc, MAX_SIZE);
258    out.write(m_ie0, FLOAT21_SIZE);
259    out.write(m_ier, FLOAT21_SIZE);
260    out.write(m_iec, FLOAT21_SIZE);
261    out.write(m_ierr, FLOAT21_SIZE);
262    out.write(m_ierc, FLOAT21_SIZE);
263    out.write(m_iecc, FLOAT21_SIZE);
264    out.write(m_ia0, FLOAT21_SIZE);
265    out.write(m_iar, FLOAT21_SIZE);
266    out.write(m_iac, FLOAT21_SIZE);
267    out.write(m_iarr, FLOAT21_SIZE);
268    out.write(m_iarc, FLOAT21_SIZE);
269    out.write(m_iacc, FLOAT21_SIZE);
270    out.write(m_spx, FLOAT21_SIZE);
271    out.write(m_svx, FLOAT21_SIZE);
272    out.write(m_sax, FLOAT21_SIZE);
273    out.write(m_spy, FLOAT21_SIZE);
274    out.write(m_svy, FLOAT21_SIZE);
275    out.write(m_say, FLOAT21_SIZE);
276    out.write(m_spz, FLOAT21_SIZE);
277    out.write(m_svz, FLOAT21_SIZE);
278    out.write(m_saz, FLOAT21_SIZE);
279 }
280 
print(std::ostream & out,const std::string & prefix) const281 std::ostream& ossimNitfRsmidaTag::print(std::ostream& out,
282                                         const std::string& prefix) const
283 {
284    std::string pfx = prefix;
285    pfx += getTagName();
286    pfx += ".";
287    out << setiosflags(ios::left)
288        << pfx << std::setw(24) << "CETAG:"      << getTagName() << "\n"
289        << pfx << std::setw(24) << "CEL:"        << getTagLength() << "\n"
290        << pfx << std::setw(24) << "IID:" << m_iid << "\n"
291        << pfx << std::setw(24) << "EDITION:" << m_edition << "\n"
292        << pfx << std::setw(24) << "ISID:" << m_isid << "\n"
293        << pfx << std::setw(24) << "SID:" << m_sid << "\n"
294        << pfx << std::setw(24) << "STID:" << m_stid << "\n"
295        << pfx << std::setw(24) << "YEAR:" << m_year << "\n"
296        << pfx << std::setw(24) << "MONTH:" << m_month << "\n"
297        << pfx << std::setw(24) << "DAY:" << m_day << "\n"
298        << pfx << std::setw(24) << "HOUR:" << m_hour << "\n"
299        << pfx << std::setw(24) << "MINUTE:" << m_minute << "\n"
300        << pfx << std::setw(24) << "SECOND:" << m_second << "\n"
301        << pfx << std::setw(24) << "NRG:" << m_nrg << "\n"
302        << pfx << std::setw(24) << "NCG:" << m_ncg << "\n"
303        << pfx << std::setw(24) << "TRG:" << m_trg << "\n"
304        << pfx << std::setw(24) << "TCG:" << m_tcg << "\n"
305        << pfx << std::setw(24) << "GRNDD:" << m_grndd << "\n"
306        << pfx << std::setw(24) << "XUOR:" << m_xuor << "\n"
307        << pfx << std::setw(24) << "YUOR:" << m_yuor << "\n"
308        << pfx << std::setw(24) << "ZUOR:" << m_zuor << "\n"
309        << pfx << std::setw(24) << "XUXR:" << m_xuxr << "\n"
310        << pfx << std::setw(24) << "XUYR:" << m_xuyr << "\n"
311        << pfx << std::setw(24) << "XUZR:" << m_xuzr << "\n"
312        << pfx << std::setw(24) << "YUXR:" << m_yuxr << "\n"
313        << pfx << std::setw(24) << "YUYR:" << m_yuyr << "\n"
314        << pfx << std::setw(24) << "YUZR:" << m_yuzr << "\n"
315        << pfx << std::setw(24) << "ZUXR:" << m_zuxr << "\n"
316        << pfx << std::setw(24) << "ZUYR:" << m_zuyr << "\n"
317        << pfx << std::setw(24) << "ZUZR:" << m_zuzr << "\n"
318        << pfx << std::setw(24) << "V1X:" << m_v1x << "\n"
319        << pfx << std::setw(24) << "V1Y:" << m_v1x << "\n"
320        << pfx << std::setw(24) << "V1Z:" << m_v1x << "\n"
321        << pfx << std::setw(24) << "V2X:" << m_v1x << "\n"
322        << pfx << std::setw(24) << "V2Y:" << m_v1x << "\n"
323        << pfx << std::setw(24) << "V2Z:" << m_v1x << "\n"
324        << pfx << std::setw(24) << "V3X:" << m_v1x << "\n"
325        << pfx << std::setw(24) << "V3Y:" << m_v1x << "\n"
326        << pfx << std::setw(24) << "V3Z:" << m_v1x << "\n"
327        << pfx << std::setw(24) << "V4X:" << m_v1x << "\n"
328        << pfx << std::setw(24) << "V4Y:" << m_v1x << "\n"
329        << pfx << std::setw(24) << "V4Z:" << m_v1x << "\n"
330        << pfx << std::setw(24) << "V5X:" << m_v1x << "\n"
331        << pfx << std::setw(24) << "V5Y:" << m_v1x << "\n"
332        << pfx << std::setw(24) << "V5Z:" << m_v1x << "\n"
333        << pfx << std::setw(24) << "V6X:" << m_v1x << "\n"
334        << pfx << std::setw(24) << "V6Y:" << m_v1x << "\n"
335        << pfx << std::setw(24) << "V6Z:" << m_v1x << "\n"
336        << pfx << std::setw(24) << "V7X:" << m_v1x << "\n"
337        << pfx << std::setw(24) << "V7Y:" << m_v1x << "\n"
338        << pfx << std::setw(24) << "V7Z:" << m_v1x << "\n"
339        << pfx << std::setw(24) << "V8X:" << m_v1x << "\n"
340        << pfx << std::setw(24) << "V8Y:" << m_v1x << "\n"
341        << pfx << std::setw(24) << "V8Z:" << m_v1x << "\n"
342        << pfx << std::setw(24) << "GRPX:" << m_grpx << "\n"
343        << pfx << std::setw(24) << "GRPY:" << m_grpy << "\n"
344        << pfx << std::setw(24) << "GRPZ:" << m_grpz << "\n"
345        << pfx << std::setw(24) << "FULLR:" << m_fullr << "\n"
346        << pfx << std::setw(24) << "FULLC:" << m_fullc << "\n"
347        << pfx << std::setw(24) << "MINR:" << m_minr << "\n"
348        << pfx << std::setw(24) << "MAXR:" << m_maxr << "\n"
349        << pfx << std::setw(24) << "MINC:" << m_minc << "\n"
350        << pfx << std::setw(24) << "MAXC:" << m_maxc << "\n"
351        << pfx << std::setw(24) << "IE0:" << m_ie0 << "\n"
352        << pfx << std::setw(24) << "IER:" << m_ier << "\n"
353        << pfx << std::setw(24) << "IEC:" << m_iec << "\n"
354        << pfx << std::setw(24) << "IERR:" << m_ierr << "\n"
355        << pfx << std::setw(24) << "IERC:" << m_ierc << "\n"
356        << pfx << std::setw(24) << "IECC:" << m_iecc << "\n"
357        << pfx << std::setw(24) << "IA0:" << m_ia0 << "\n"
358        << pfx << std::setw(24) << "IAR:" << m_iar << "\n"
359        << pfx << std::setw(24) << "IAC:" << m_iac << "\n"
360        << pfx << std::setw(24) << "IARR:" << m_iarr << "\n"
361        << pfx << std::setw(24) << "IARC:" << m_iarc << "\n"
362        << pfx << std::setw(24) << "IACC:" << m_iacc << "\n"
363        << pfx << std::setw(24) << "SPX:" << m_spx << "\n"
364        << pfx << std::setw(24) << "SVX:" << m_svx << "\n"
365        << pfx << std::setw(24) << "SAX:" << m_sax << "\n"
366        << pfx << std::setw(24) << "SPY:" << m_spy << "\n"
367        << pfx << std::setw(24) << "SVY:" << m_svy << "\n"
368        << pfx << std::setw(24) << "SAY:" << m_say << "\n"
369        << pfx << std::setw(24) << "SPZ:" << m_spz << "\n"
370        << pfx << std::setw(24) << "SVZ:" << m_svz << "\n"
371        << pfx << std::setw(24) << "SAZ:" << m_saz << "\n";
372 
373    return out;
374 }
375 
clearFields()376 void ossimNitfRsmidaTag::clearFields()
377 {
378    memset(m_iid,' ', IID_SIZE);
379    memset(m_edition, ' ', EDITION_SIZE);
380    memset(m_isid, ' ', ISID_SIZE);
381    memset(m_sid, ' ', SID_SIZE);
382    memset(m_stid, ' ', STID_SIZE);
383    memset(m_year, ' ', YEAR_SIZE);
384    memset(m_month, ' ', MONTH_SIZE);
385    memset(m_day, ' ', DAY_SIZE);
386    memset(m_hour,' ', HOUR_SIZE);
387    memset(m_minute, ' ', MINUTE_SIZE);
388    memset(m_second, ' ', SECOND_SIZE);
389    memset(m_nrg, ' ', NRG_SIZE);
390    memset(m_ncg, ' ', NCG_SIZE);
391    memset(m_trg, ' ', FLOAT21_SIZE);
392    memset(m_tcg, ' ', FLOAT21_SIZE);
393    memset(m_grndd, ' ', GRNDD_SIZE);
394    memset(m_xuor, ' ', FLOAT21_SIZE);
395    memset(m_yuor, ' ', FLOAT21_SIZE);
396    memset(m_zuor, ' ', FLOAT21_SIZE);
397    memset(m_xuxr, ' ', FLOAT21_SIZE);
398    memset(m_xuyr, ' ', FLOAT21_SIZE);
399    memset(m_xuzr, ' ', FLOAT21_SIZE);
400    memset(m_yuxr, ' ', FLOAT21_SIZE);
401    memset(m_yuyr, ' ', FLOAT21_SIZE);
402    memset(m_yuzr, ' ', FLOAT21_SIZE);
403    memset(m_zuxr, ' ', FLOAT21_SIZE);
404    memset(m_zuyr, ' ', FLOAT21_SIZE);
405    memset(m_zuzr, ' ', FLOAT21_SIZE);
406    memset(m_v1x, ' ', FLOAT21_SIZE);
407    memset(m_v1y, ' ', FLOAT21_SIZE);
408    memset(m_v1z, ' ', FLOAT21_SIZE);
409    memset(m_v2x, ' ', FLOAT21_SIZE);
410    memset(m_v2y, ' ', FLOAT21_SIZE);
411    memset(m_v2z, ' ', FLOAT21_SIZE);
412    memset(m_v3x, ' ', FLOAT21_SIZE);
413    memset(m_v3y, ' ', FLOAT21_SIZE);
414    memset(m_v3z, ' ', FLOAT21_SIZE);
415    memset(m_v4x, ' ', FLOAT21_SIZE);
416    memset(m_v4y, ' ', FLOAT21_SIZE);
417    memset(m_v4z, ' ', FLOAT21_SIZE);
418    memset(m_v5x, ' ', FLOAT21_SIZE);
419    memset(m_v5y, ' ', FLOAT21_SIZE);
420    memset(m_v5z, ' ', FLOAT21_SIZE);
421    memset(m_v6x, ' ', FLOAT21_SIZE);
422    memset(m_v6y, ' ', FLOAT21_SIZE);
423    memset(m_v6z, ' ', FLOAT21_SIZE);
424    memset(m_v7x, ' ', FLOAT21_SIZE);
425    memset(m_v7y, ' ', FLOAT21_SIZE);
426    memset(m_v7z, ' ', FLOAT21_SIZE);
427    memset(m_v8x, ' ', FLOAT21_SIZE);
428    memset(m_v8y, ' ', FLOAT21_SIZE);
429    memset(m_v8z, ' ', FLOAT21_SIZE);
430    memset(m_grpx, ' ', FLOAT21_SIZE);
431    memset(m_grpy, ' ', FLOAT21_SIZE);
432    memset(m_grpz, ' ', FLOAT21_SIZE);
433    memset(m_fullr, ' ', FULL_SIZE);
434    memset(m_fullc, ' ', FULL_SIZE);
435    memset(m_minr, ' ', MIN_SIZE);
436    memset(m_maxr, ' ', MAX_SIZE);
437    memset(m_minc, ' ', MIN_SIZE);
438    memset(m_maxc, ' ', MAX_SIZE);
439    memset(m_ie0, ' ', FLOAT21_SIZE);
440    memset(m_ier, ' ', FLOAT21_SIZE);
441    memset(m_iec, ' ', FLOAT21_SIZE);
442    memset(m_ierr, ' ', FLOAT21_SIZE);
443    memset(m_ierc, ' ', FLOAT21_SIZE);
444    memset(m_iecc, ' ', FLOAT21_SIZE);
445    memset(m_ia0, ' ', FLOAT21_SIZE);
446    memset(m_iar, ' ', FLOAT21_SIZE);
447    memset(m_iac, ' ', FLOAT21_SIZE);
448    memset(m_iarr, ' ', FLOAT21_SIZE);
449    memset(m_iarc, ' ', FLOAT21_SIZE);
450    memset(m_iacc, ' ', FLOAT21_SIZE);
451    memset(m_spx, ' ', FLOAT21_SIZE);
452    memset(m_svx, ' ', FLOAT21_SIZE);
453    memset(m_sax, ' ', FLOAT21_SIZE);
454    memset(m_spy, ' ', FLOAT21_SIZE);
455    memset(m_svy, ' ', FLOAT21_SIZE);
456    memset(m_say, ' ', FLOAT21_SIZE);
457    memset(m_spz, ' ', FLOAT21_SIZE);
458    memset(m_svz, ' ', FLOAT21_SIZE);
459    memset(m_saz, ' ', FLOAT21_SIZE);
460 
461    m_iid[IID_SIZE] = '\0';
462    m_edition[EDITION_SIZE] = '\0';
463    m_isid[ISID_SIZE] = '\0';
464    m_sid[SID_SIZE] = '\0';
465    m_stid[STID_SIZE] = '\0';
466    m_year[YEAR_SIZE] = '\0';
467    m_month[MONTH_SIZE] = '\0';
468    m_day[DAY_SIZE] = '\0';
469    m_hour[HOUR_SIZE] = '\0';
470    m_minute[MINUTE_SIZE] = '\0';
471    m_second[SECOND_SIZE] = '\0';
472    m_nrg[NRG_SIZE] = '\0';
473    m_ncg[NCG_SIZE] = '\0';
474    m_trg[FLOAT21_SIZE] = '\0';
475    m_tcg[FLOAT21_SIZE] = '\0';
476    m_grndd[GRNDD_SIZE] = '\0';
477    m_xuor[FLOAT21_SIZE] = '\0';
478    m_yuor[FLOAT21_SIZE] = '\0';
479    m_zuor[FLOAT21_SIZE] = '\0';
480    m_xuxr[FLOAT21_SIZE] = '\0';
481    m_xuyr[FLOAT21_SIZE] = '\0';
482    m_xuzr[FLOAT21_SIZE] = '\0';
483    m_yuxr[FLOAT21_SIZE] = '\0';
484    m_yuyr[FLOAT21_SIZE] = '\0';
485    m_yuzr[FLOAT21_SIZE] = '\0';
486    m_zuxr[FLOAT21_SIZE] = '\0';
487    m_zuyr[FLOAT21_SIZE] = '\0';
488    m_zuzr[FLOAT21_SIZE] = '\0';
489    m_v1x[FLOAT21_SIZE] = '\0';
490    m_v1y[FLOAT21_SIZE] = '\0';
491    m_v1z[FLOAT21_SIZE] = '\0';
492    m_v2x[FLOAT21_SIZE] = '\0';
493    m_v2y[FLOAT21_SIZE] = '\0';
494    m_v2z[FLOAT21_SIZE] = '\0';
495    m_v3x[FLOAT21_SIZE] = '\0';
496    m_v3y[FLOAT21_SIZE] = '\0';
497    m_v3z[FLOAT21_SIZE] = '\0';
498    m_v4x[FLOAT21_SIZE] = '\0';
499    m_v4y[FLOAT21_SIZE] = '\0';
500    m_v4z[FLOAT21_SIZE] = '\0';
501    m_v5x[FLOAT21_SIZE] = '\0';
502    m_v5y[FLOAT21_SIZE] = '\0';
503    m_v5z[FLOAT21_SIZE] = '\0';
504    m_v6x[FLOAT21_SIZE] = '\0';
505    m_v6y[FLOAT21_SIZE] = '\0';
506    m_v6z[FLOAT21_SIZE] = '\0';
507    m_v7x[FLOAT21_SIZE] = '\0';
508    m_v7y[FLOAT21_SIZE] = '\0';
509    m_v7z[FLOAT21_SIZE] = '\0';
510    m_v8x[FLOAT21_SIZE] = '\0';
511    m_v8y[FLOAT21_SIZE] = '\0';
512    m_v8z[FLOAT21_SIZE] = '\0';
513    m_grpx[FLOAT21_SIZE] = '\0';
514    m_grpy[FLOAT21_SIZE] = '\0';
515    m_grpz[FLOAT21_SIZE] = '\0';
516    m_fullr[FULL_SIZE] = '\0';
517    m_fullc[FULL_SIZE] = '\0';
518    m_minr[MIN_SIZE] = '\0';
519    m_maxr[MAX_SIZE] = '\0';
520    m_minc[MIN_SIZE] = '\0';
521    m_maxc[MAX_SIZE] = '\0';
522    m_ie0[FLOAT21_SIZE] = '\0';
523    m_ier[FLOAT21_SIZE] = '\0';
524    m_iec[FLOAT21_SIZE] = '\0';
525    m_ierr[FLOAT21_SIZE] = '\0';
526    m_ierc[FLOAT21_SIZE] = '\0';
527    m_iecc[FLOAT21_SIZE] = '\0';
528    m_ia0[FLOAT21_SIZE] = '\0';
529    m_iar[FLOAT21_SIZE] = '\0';
530    m_iac[FLOAT21_SIZE] = '\0';
531    m_iarr[FLOAT21_SIZE] = '\0';
532    m_iarc[FLOAT21_SIZE] = '\0';
533    m_iacc[FLOAT21_SIZE] = '\0';
534    m_spx[FLOAT21_SIZE] = '\0';
535    m_svx[FLOAT21_SIZE] = '\0';
536    m_sax[FLOAT21_SIZE] = '\0';
537    m_spy[FLOAT21_SIZE] = '\0';
538    m_svy[FLOAT21_SIZE] = '\0';
539    m_say[FLOAT21_SIZE] = '\0';
540    m_spz[FLOAT21_SIZE] = '\0';
541    m_svz[FLOAT21_SIZE] = '\0';
542    m_saz[FLOAT21_SIZE] = '\0';
543 }
544 
getIid() const545 ossimString ossimNitfRsmidaTag::getIid() const
546 {
547    return ossimString(m_iid);
548 }
549 
getEdition() const550 ossimString ossimNitfRsmidaTag::getEdition() const
551 {
552    return ossimString(m_edition);
553 }
554 
getIsid() const555 ossimString ossimNitfRsmidaTag::getIsid() const
556 {
557    return ossimString(m_isid);
558 }
559 
getSid() const560 ossimString ossimNitfRsmidaTag::getSid() const
561 {
562    return ossimString(m_sid);
563 }
564 
getStid() const565 ossimString ossimNitfRsmidaTag::getStid() const
566 {
567    return ossimString(m_stid);
568 }
569 
getYear() const570 ossimString ossimNitfRsmidaTag::getYear() const
571 {
572    return ossimString(m_year);
573 }
574 
getMonth() const575 ossimString ossimNitfRsmidaTag::getMonth() const
576 {
577    return ossimString(m_month);
578 }
579 
getDay() const580 ossimString ossimNitfRsmidaTag::getDay() const
581 {
582    return ossimString(m_day);
583 }
584 
getHour() const585 ossimString ossimNitfRsmidaTag::getHour() const
586 {
587    return ossimString(m_hour);
588 }
589 
getMinute() const590 ossimString ossimNitfRsmidaTag::getMinute() const
591 {
592    return ossimString(m_minute);
593 }
594 
getSecond() const595 ossimString ossimNitfRsmidaTag::getSecond() const
596 {
597    return ossimString(m_second);
598 }
599 
getNrg() const600 ossimString ossimNitfRsmidaTag::getNrg() const
601 {
602    return ossimString(m_nrg);
603 }
604 
getNcg() const605 ossimString ossimNitfRsmidaTag::getNcg() const
606 {
607    return ossimString(m_ncg);
608 }
609 
getTrg() const610 ossimString ossimNitfRsmidaTag::getTrg() const
611 {
612    return ossimString(m_trg);
613 }
614 
getTcg() const615 ossimString ossimNitfRsmidaTag::getTcg() const
616 {
617    return ossimString(m_tcg);
618 }
619 
getGrndd() const620 ossimString ossimNitfRsmidaTag::getGrndd() const
621 {
622    return ossimString(m_grndd);
623 }
624 
getXuor() const625 ossimString ossimNitfRsmidaTag::getXuor() const
626 {
627    return ossimString(m_xuor);
628 }
629 
getYuor() const630 ossimString ossimNitfRsmidaTag::getYuor() const
631 {
632    return ossimString(m_yuor);
633 }
634 
getZuor() const635 ossimString ossimNitfRsmidaTag::getZuor() const
636 {
637    return ossimString(m_zuor);
638 }
639 
getXuxr() const640 ossimString ossimNitfRsmidaTag::getXuxr() const
641 {
642    return ossimString(m_xuxr);
643 }
644 
getXuyr() const645 ossimString ossimNitfRsmidaTag::getXuyr() const
646 {
647    return ossimString(m_xuyr);
648 }
649 
getXuzr() const650 ossimString ossimNitfRsmidaTag::getXuzr() const
651 {
652    return ossimString(m_xuzr);
653 }
654 
getYuxr() const655 ossimString ossimNitfRsmidaTag::getYuxr() const
656 {
657    return ossimString(m_yuxr);
658 }
659 
getYuyr() const660 ossimString ossimNitfRsmidaTag::getYuyr() const
661 {
662    return ossimString(m_yuyr);
663 }
664 
getYuzr() const665 ossimString ossimNitfRsmidaTag::getYuzr() const
666 {
667    return ossimString(m_yuzr);
668 }
669 
getZuxr() const670 ossimString ossimNitfRsmidaTag::getZuxr() const
671 {
672    return ossimString(m_zuxr);
673 }
674 
getZuyr() const675 ossimString ossimNitfRsmidaTag::getZuyr() const
676 {
677    return ossimString(m_zuyr);
678 }
679 
getZuzr() const680 ossimString ossimNitfRsmidaTag::getZuzr() const
681 {
682    return ossimString(m_zuzr);
683 }
684 
getV1x() const685 ossimString ossimNitfRsmidaTag::getV1x() const
686 {
687    return ossimString(m_v1x);
688 }
689 
getV1y() const690 ossimString ossimNitfRsmidaTag::getV1y() const
691 {
692    return ossimString(m_v1y);
693 }
694 
getV1z() const695 ossimString ossimNitfRsmidaTag::getV1z() const
696 {
697    return ossimString(m_v1z);
698 }
699 
getV2x() const700 ossimString ossimNitfRsmidaTag::getV2x() const
701 {
702    return ossimString(m_v2x);
703 }
704 
getV2y() const705 ossimString ossimNitfRsmidaTag::getV2y() const
706 {
707    return ossimString(m_v2y);
708 }
709 
getV2z() const710 ossimString ossimNitfRsmidaTag::getV2z() const
711 {
712    return ossimString(m_v2z);
713 }
714 
getV3x() const715 ossimString ossimNitfRsmidaTag::getV3x() const
716 {
717    return ossimString(m_v3x);
718 }
719 
getV3y() const720 ossimString ossimNitfRsmidaTag::getV3y() const
721 {
722    return ossimString(m_v3y);
723 }
724 
getV3z() const725 ossimString ossimNitfRsmidaTag::getV3z() const
726 {
727    return ossimString(m_v3z);
728 }
729 
getV4x() const730 ossimString ossimNitfRsmidaTag::getV4x() const
731 {
732    return ossimString(m_v4x);
733 }
734 
getV4y() const735 ossimString ossimNitfRsmidaTag::getV4y() const
736 {
737    return ossimString(m_v4y);
738 }
739 
getV4z() const740 ossimString ossimNitfRsmidaTag::getV4z() const
741 {
742    return ossimString(m_v4z);
743 }
744 
getV5x() const745 ossimString ossimNitfRsmidaTag::getV5x() const
746 {
747    return ossimString(m_v5x);
748 }
749 
getV5y() const750 ossimString ossimNitfRsmidaTag::getV5y() const
751 {
752    return ossimString(m_v5y);
753 }
754 
getV5z() const755 ossimString ossimNitfRsmidaTag::getV5z() const
756 {
757    return ossimString(m_v5z);
758 }
759 
getV6x() const760 ossimString ossimNitfRsmidaTag::getV6x() const
761 {
762    return ossimString(m_v6x);
763 }
764 
getV6y() const765 ossimString ossimNitfRsmidaTag::getV6y() const
766 {
767    return ossimString(m_v6y);
768 }
769 
getV6z() const770 ossimString ossimNitfRsmidaTag::getV6z() const
771 {
772    return ossimString(m_v6z);
773 }
774 
getV7x() const775 ossimString ossimNitfRsmidaTag::getV7x() const
776 {
777    return ossimString(m_v7x);
778 }
779 
getV7y() const780 ossimString ossimNitfRsmidaTag::getV7y() const
781 {
782    return ossimString(m_v7y);
783 }
784 
getV7z() const785 ossimString ossimNitfRsmidaTag::getV7z() const
786 {
787    return ossimString(m_v7z);
788 }
789 
getV8x() const790 ossimString ossimNitfRsmidaTag::getV8x() const
791 {
792    return ossimString(m_v8x);
793 }
794 
getV8y() const795 ossimString ossimNitfRsmidaTag::getV8y() const
796 {
797    return ossimString(m_v8y);
798 }
799 
getV8z() const800 ossimString ossimNitfRsmidaTag::getV8z() const
801 {
802    return ossimString(m_v8z);
803 }
804 
getGrpx() const805 ossimString ossimNitfRsmidaTag::getGrpx() const
806 {
807    return ossimString(m_grpx);
808 }
809 
getGrpy() const810 ossimString ossimNitfRsmidaTag::getGrpy() const
811 {
812    return ossimString(m_grpy);
813 }
814 
getGrpz() const815 ossimString ossimNitfRsmidaTag::getGrpz() const
816 {
817    return ossimString(m_grpz);
818 }
819 
getFullr() const820 ossimString ossimNitfRsmidaTag::getFullr() const
821 {
822    return ossimString(m_fullr);
823 }
824 
getFullc() const825 ossimString ossimNitfRsmidaTag::getFullc() const
826 {
827    return ossimString(m_fullc);
828 }
829 
getMinr() const830 ossimString ossimNitfRsmidaTag::getMinr() const
831 {
832    return ossimString(m_minr);
833 }
834 
getMaxr() const835 ossimString ossimNitfRsmidaTag::getMaxr() const
836 {
837    return ossimString(m_maxr);
838 }
839 
getMinc() const840 ossimString ossimNitfRsmidaTag::getMinc() const
841 {
842    return ossimString(m_minc);
843 }
844 
getMaxc() const845 ossimString ossimNitfRsmidaTag::getMaxc() const
846 {
847    return ossimString(m_maxc);
848 }
849 
getIe0() const850 ossimString ossimNitfRsmidaTag::getIe0() const
851 {
852    return ossimString(m_ie0);
853 }
854 
getIer() const855 ossimString ossimNitfRsmidaTag::getIer() const
856 {
857    return ossimString(m_ier);
858 }
859 
getIec() const860 ossimString ossimNitfRsmidaTag::getIec() const
861 {
862    return ossimString(m_iec);
863 }
864 
getIerr() const865 ossimString ossimNitfRsmidaTag::getIerr() const
866 {
867    return ossimString(m_ierr);
868 }
869 
getIerc() const870 ossimString ossimNitfRsmidaTag::getIerc() const
871 {
872    return ossimString(m_ierc);
873 }
874 
getIecc() const875 ossimString ossimNitfRsmidaTag::getIecc() const
876 {
877    return ossimString(m_iecc);
878 }
879 
getIa0() const880 ossimString ossimNitfRsmidaTag::getIa0() const
881 {
882    return ossimString(m_ia0);
883 }
884 
getIar() const885 ossimString ossimNitfRsmidaTag::getIar() const
886 {
887    return ossimString(m_iar);
888 }
889 
getIac() const890 ossimString ossimNitfRsmidaTag::getIac() const
891 {
892    return ossimString(m_iac);
893 }
894 
getIarr() const895 ossimString ossimNitfRsmidaTag::getIarr() const
896 {
897    return ossimString(m_iarr);
898 }
899 
getIarc() const900 ossimString ossimNitfRsmidaTag::getIarc() const
901 {
902    return ossimString(m_iarc);
903 }
904 
getIacc() const905 ossimString ossimNitfRsmidaTag::getIacc() const
906 {
907    return ossimString(m_iacc);
908 }
909 
getSpx() const910 ossimString ossimNitfRsmidaTag::getSpx() const
911 {
912    return ossimString(m_spx);
913 }
914 
getSvx() const915 ossimString ossimNitfRsmidaTag::getSvx() const
916 {
917    return ossimString(m_svx);
918 }
919 
getSax() const920 ossimString ossimNitfRsmidaTag::getSax() const
921 {
922    return ossimString(m_sax);
923 }
924 
getSpy() const925 ossimString ossimNitfRsmidaTag::getSpy() const
926 {
927    return ossimString(m_spy);
928 }
929 
getSvy() const930 ossimString ossimNitfRsmidaTag::getSvy() const
931 {
932    return ossimString(m_svy);
933 }
934 
getSay() const935 ossimString ossimNitfRsmidaTag::getSay() const
936 {
937    return ossimString(m_say);
938 }
939 
getSpz() const940 ossimString ossimNitfRsmidaTag::getSpz() const
941 {
942    return ossimString(m_spz);
943 }
944 
getSvz() const945 ossimString ossimNitfRsmidaTag::getSvz() const
946 {
947    return ossimString(m_svz);
948 }
949 
getSaz() const950 ossimString ossimNitfRsmidaTag::getSaz() const
951 {
952    return ossimString(m_saz);
953 }
954 
955