OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfRsmecaTag.cpp
Go to the documentation of this file.
1 //---
2 // File: ossimNitfRsmecaTag.cpp
3 //---
4 
10 
11 #include <iostream>
12 #include <iomanip>
13 
14 
15 static const ossimTrace traceDebug(ossimString("ossimNitfRsmecaTag:debug"));
16 static const ossimString RNPCF_KW = "RNPCF";
17 static const ossimString RDPCF_KW = "RDPCF";
18 // "0 1 2";
19 // "123456789012345678901";
20 static const ossimString FILL21 = " ";
21 
23  :
24  m_numopg(),
25  m_errcvg(),
26  m_tcdf(),
27  m_ncseg(),
28  m_corseg(),
29  m_tauseg(),
30  m_errCovNum(0),
31  m_opgNum(0),
32  m_corSegNum(0)
33 {
34 }
35 
37  :
38  m_numopg(),
39  m_errcvg(obj.m_errcvg),
40  m_tcdf(),
41  m_ncseg(),
42  m_corseg(obj.m_corseg),
43  m_tauseg(obj.m_tauseg),
44  m_errCovNum(obj.m_errCovNum),
45  m_opgNum(obj.m_opgNum),
46  m_corSegNum(obj.m_corSegNum)
47 {
48  strncpy( m_numopg, obj.m_numopg, (NUMOPG_SIZE+1) );
49  strncpy( m_tcdf, obj.m_tcdf, (TCDF_SIZE+1) );
50  strncpy( m_ncseg, obj.m_ncseg, (NCSEG_SIZE+1) );
51 }
52 
54 {
55  if (this != &rhs)
56  {
57  strncpy( m_numopg, rhs.m_numopg, (NUMOPG_SIZE+1) );
58  m_errcvg = rhs.m_errcvg;
59  strncpy( m_tcdf, rhs.m_tcdf, (TCDF_SIZE+1) );
60  strncpy( m_ncseg, rhs.m_ncseg, (NCSEG_SIZE+1) );
61  m_corseg = rhs.m_corseg;
62  m_tauseg = rhs.m_tauseg;
64  m_opgNum = rhs.m_opgNum;
66  }
67  return *this;
68 }
69 
71 {
72  clearFields();
73  in.read(m_numopg, NUMOPG_SIZE);
75  m_errCovNum = (m_opgNum * (m_opgNum + 1)) / 2;
76  ossim_uint32 i = 0;
77  char temp1[FLOAT21_SIZE+1];
78  temp1[FLOAT21_SIZE] = '\0';
79  m_errcvg.resize(m_errCovNum);
80  for (i=0; i < m_errCovNum; ++i)
81  {
82  in.read(temp1, FLOAT21_SIZE);
83  m_errcvg[i] = FILL21;
84  m_errcvg[i] = temp1;
85  }
86  in.read(m_tcdf, TCDF_SIZE);
87  in.read(m_ncseg, NCSEG_SIZE);
89  m_corseg.resize(m_corSegNum);
90  m_tauseg.resize(m_corSegNum);
91 
92  for (i=0; i < m_corSegNum; ++i)
93  {
94  in.read(temp1, FLOAT21_SIZE);
95  m_corseg[i] = FILL21;
96  m_corseg[i] = temp1;
97  in.read(temp1, FLOAT21_SIZE);
98  m_tauseg[i] = FILL21;
99  m_tauseg[i] = temp1;
100  }
101 }
102 
104 {
105  out.write(m_numopg, NUMOPG_SIZE);
106  ossim_uint32 i = 0;
107  for (i=0; i < m_errCovNum; ++i)
108  {
109  out.write(m_errcvg[i], FLOAT21_SIZE);
110  }
111  out.write(m_tcdf, TCDF_SIZE);
112  out.write(m_ncseg, NCSEG_SIZE);
113 
114  for (i=0; i < m_corSegNum; ++i)
115  {
116  out.write(m_corseg[i], FLOAT21_SIZE);
117  out.write(m_tauseg[i], FLOAT21_SIZE);
118  }
119 }
120 
122 {
123  memset(m_numopg, ' ', NUMOPG_SIZE);
124  memset(m_tcdf, ' ', TCDF_SIZE);
125  memset(m_ncseg, ' ', NCSEG_SIZE);
126  m_numopg[NUMOPG_SIZE] = '\0';
127  m_tcdf[TCDF_SIZE] = '\0';
128  m_ncseg[NCSEG_SIZE] = '\0';
129 }
130 
132  std::ostream& out, const std::string& prefix, ossim_uint32 index) const
133 {
134  std::string pfx = prefix;
135  pfx += "RSMECA";
136  pfx += ".ISG";
137  pfx += ossimString::toString(index).c_str();
138  pfx += ".";
139  ossim_uint32 i = 0;
140 
141  out << setiosflags(std::ios::left)
142  << pfx << std::setw(24) << "NUMOPG:" << m_numopg << "\n";
143  for(i=0;i<m_errCovNum;++i)
144  {
145  ossimString field = "ERRCVG" + ossimString::toString(i) + ":";
146  out << pfx << std::setw(24) << field << m_errcvg[i] << "\n";
147  }
148 
149  out << pfx << std::setw(24) << "TCDF:" << m_tcdf << "\n"
150  << pfx << std::setw(24) << "NCSEG:" << m_ncseg << "\n";
151 
152  for(i=0;i<m_corSegNum;++i)
153  {
154  ossimString field = "CORSEG" + ossimString::toString(i) + ":";
155  out << pfx << std::setw(24) << field << m_corseg[i] << "\n";
156  }
157  for(i=0;i<m_corSegNum;++i)
158  {
159  ossimString field = "TAUSEG" + ossimString::toString(i) + ":";
160  out << pfx << std::setw(24) << field << m_tauseg[i] << "\n";
161  }
162 
163  return out;
164 }
165 
166 RTTI_DEF1(ossimNitfRsmecaTag, "ossimNitfRsmecaTag", ossimNitfRegisteredTag);
167 
168 
170  :
171  ossimNitfRegisteredTag(std::string("RSMECA"), 0),
172  m_iid(),
173  m_edition(),
174  m_tid(),
175  m_inclic(),
176  m_incluc(),
177  m_npar(),
178  m_nparo(),
179  m_ign(),
180  m_cvdate(),
181  m_xuol(),
182  m_yuol(),
183  m_zuol(),
184  m_xuxl(),
185  m_xuyl(),
186  m_xuzl(),
187  m_yuxl(),
188  m_yuyl(),
189  m_yuzl(),
190  m_zuxl(),
191  m_zuyl(),
192  m_zuzl(),
193  m_iro(),
194  m_irx(),
195  m_iry(),
196  m_irz(),
197  m_irxx(),
198  m_irxy(),
199  m_irxz(),
200  m_iryy(),
201  m_iryz(),
202  m_irzz(),
203  m_ico(),
204  m_icx(),
205  m_icy(),
206  m_icz(),
207  m_icxx(),
208  m_icxy(),
209  m_icxz(),
210  m_icyy(),
211  m_icyz(),
212  m_iczz(),
213  m_gxo(),
214  m_gyo(),
215  m_gzo(),
216  m_gxr(),
217  m_gyr(),
218  m_gzr(),
219  m_gs(),
220  m_gxx(),
221  m_gxy(),
222  m_gxz(),
223  m_gyx(),
224  m_gyy(),
225  m_gyz(),
226  m_gzx(),
227  m_gzy(),
228  m_gzz(),
229 
230  m_isg(),
231  m_map(),
232 
233  m_urr(),
234  m_urc(),
235  m_ucc(),
236  m_uncsr(),
237  m_ucorsr(),
238  m_utausr(),
239  m_uncsc(),
240  m_ucorsc(),
241  m_utausc(),
242 
243  m_inclicFlag(false),
244  m_inclucFlag(false),
245  m_ignNum(0),
246  m_mapNum(0),
247  m_rowCorSegNum(0),
248  m_colCorSegNum(0)
249 {
250 }
251 
253 {
254  memset(m_iid,' ', IID_SIZE);
255  memset(m_edition,' ', EDITION_SIZE);
256  memset(m_tid,' ', TID_SIZE);
257  memset(m_inclic,' ', INCLIC_SIZE);
258  memset(m_incluc,' ', INCLUC_SIZE);
259  m_iid[IID_SIZE] = '\0';
260  m_edition[EDITION_SIZE] = '\0';
261  m_tid[TID_SIZE] = '\0';
262  m_inclic[INCLIC_SIZE] = '\0';
263  m_incluc[INCLUC_SIZE] = '\0';
264  in.read(m_iid, IID_SIZE);
265  in.read(m_edition, EDITION_SIZE);
266  in.read(m_tid, TID_SIZE);
267  in.read(m_inclic, INCLIC_SIZE);
268  m_inclicFlag = (ossimString(m_inclic) == "Y") ? true : false;
269  in.read(m_incluc, INCLUC_SIZE);
270  m_inclucFlag = (ossimString(m_incluc) == "Y") ? true : false;
271  ossim_uint32 i = 0;
272 
273  if (m_inclicFlag)
274  {
275  memset(m_npar,' ', NPAR_SIZE);
276  memset(m_nparo,' ', NPARO_SIZE);
277  memset(m_ign,' ', IGN_SIZE);
278  memset(m_cvdate,' ', CVDATE_SIZE);
279  memset(m_xuol,' ', FLOAT21_SIZE);
280  memset(m_yuol,' ', FLOAT21_SIZE);
281  memset(m_zuol,' ', FLOAT21_SIZE);
282  memset(m_xuxl,' ', FLOAT21_SIZE);
283  memset(m_xuyl,' ', FLOAT21_SIZE);
284  memset(m_xuzl,' ', FLOAT21_SIZE);
285  memset(m_yuxl,' ', FLOAT21_SIZE);
286  memset(m_yuyl,' ', FLOAT21_SIZE);
287  memset(m_yuzl,' ', FLOAT21_SIZE);
288  memset(m_zuxl,' ', FLOAT21_SIZE);
289  memset(m_zuyl,' ', FLOAT21_SIZE);
290  memset(m_zuzl,' ', FLOAT21_SIZE);
291  memset(m_iro,' ', IR_SIZE);
292  memset(m_irx,' ', IR_SIZE);
293  memset(m_iry,' ', IR_SIZE);
294  memset(m_irz,' ', IR_SIZE);
295  memset(m_irxx,' ', IR_SIZE);
296  memset(m_irxy,' ', IR_SIZE);
297  memset(m_irxz,' ', IR_SIZE);
298  memset(m_iryy,' ', IR_SIZE);
299  memset(m_iryz,' ', IR_SIZE);
300  memset(m_irzz,' ', IR_SIZE);
301  memset(m_ico,' ', IC_SIZE);
302  memset(m_icx,' ', IC_SIZE);
303  memset(m_icy,' ', IC_SIZE);
304  memset(m_icz,' ', IC_SIZE);
305  memset(m_icxx,' ', IC_SIZE);
306  memset(m_icxy,' ', IC_SIZE);
307  memset(m_icxz,' ', IC_SIZE);
308  memset(m_icyy,' ', IC_SIZE);
309  memset(m_icyz,' ', IC_SIZE);
310  memset(m_iczz,' ', IC_SIZE);
311  memset(m_gxo,' ', G_SIZE);
312  memset(m_gyo,' ', G_SIZE);
313  memset(m_gzo,' ', G_SIZE);
314  memset(m_gxr,' ', G_SIZE);
315  memset(m_gyr,' ', G_SIZE);
316  memset(m_gzr,' ', G_SIZE);
317  memset(m_gs,' ', G_SIZE);
318  memset(m_gxx,' ', G_SIZE);
319  memset(m_gxy,' ', G_SIZE);
320  memset(m_gxz,' ', G_SIZE);
321  memset(m_gyx,' ', G_SIZE);
322  memset(m_gyy,' ', G_SIZE);
323  memset(m_gyz,' ', G_SIZE);
324  memset(m_gzx,' ', G_SIZE);
325  memset(m_gzy,' ', G_SIZE);
326  memset(m_gzz,' ', G_SIZE);
327  m_npar[NPAR_SIZE] = '\0';
328  m_nparo[NPARO_SIZE] = '\0';
329  m_ign[IGN_SIZE] = '\0';
330  m_cvdate[CVDATE_SIZE] = '\0';
331  m_xuol[FLOAT21_SIZE] = '\0';
332  m_yuol[FLOAT21_SIZE] = '\0';
333  m_zuol[FLOAT21_SIZE] = '\0';
334  m_xuxl[FLOAT21_SIZE] = '\0';
335  m_xuyl[FLOAT21_SIZE] = '\0';
336  m_xuzl[FLOAT21_SIZE] = '\0';
337  m_yuxl[FLOAT21_SIZE] = '\0';
338  m_yuyl[FLOAT21_SIZE] = '\0';
339  m_yuzl[FLOAT21_SIZE] = '\0';
340  m_zuxl[FLOAT21_SIZE] = '\0';
341  m_zuyl[FLOAT21_SIZE] = '\0';
342  m_zuzl[FLOAT21_SIZE] = '\0';
343  m_iro[IR_SIZE] = '\0';
344  m_irx[IR_SIZE] = '\0';
345  m_iry[IR_SIZE] = '\0';
346  m_irz[IR_SIZE] = '\0';
347  m_irxx[IR_SIZE] = '\0';
348  m_irxy[IR_SIZE] = '\0';
349  m_irxz[IR_SIZE] = '\0';
350  m_iryy[IR_SIZE] = '\0';
351  m_iryz[IR_SIZE] = '\0';
352  m_irzz[IR_SIZE] = '\0';
353  m_ico[IR_SIZE] = '\0';
354  m_icx[IR_SIZE] = '\0';
355  m_icy[IR_SIZE] = '\0';
356  m_icz[IR_SIZE] = '\0';
357  m_icxx[IR_SIZE] = '\0';
358  m_icxy[IR_SIZE] = '\0';
359  m_icxz[IR_SIZE] = '\0';
360  m_icyy[IR_SIZE] = '\0';
361  m_icyz[IR_SIZE] = '\0';
362  m_iczz[IR_SIZE] = '\0';
363  m_gxo[G_SIZE] = '\0';
364  m_gyo[G_SIZE] = '\0';
365  m_gzo[G_SIZE] = '\0';
366  m_gxr[G_SIZE] = '\0';
367  m_gyr[G_SIZE] = '\0';
368  m_gzr[G_SIZE] = '\0';
369  m_gs[G_SIZE] = '\0';
370  m_gxx[G_SIZE] = '\0';
371  m_gxy[G_SIZE] = '\0';
372  m_gxz[G_SIZE] = '\0';
373  m_gyx[G_SIZE] = '\0';
374  m_gyy[G_SIZE] = '\0';
375  m_gyz[G_SIZE] = '\0';
376  m_gzx[G_SIZE] = '\0';
377  m_gzy[G_SIZE] = '\0';
378  m_gzz[G_SIZE] = '\0';
379 
380  in.read(m_npar, NPAR_SIZE);
381  in.read(m_nparo, NPARO_SIZE);
383  in.read(m_ign, IGN_SIZE);
385  in.read(m_cvdate, CVDATE_SIZE);
386  in.read(m_xuol, FLOAT21_SIZE);
387  in.read(m_yuol, FLOAT21_SIZE);
388  in.read(m_zuol, FLOAT21_SIZE);
389  in.read(m_xuxl, FLOAT21_SIZE);
390  in.read(m_xuyl, FLOAT21_SIZE);
391  in.read(m_xuzl, FLOAT21_SIZE);
392  in.read(m_yuxl, FLOAT21_SIZE);
393  in.read(m_yuyl, FLOAT21_SIZE);
394  in.read(m_yuzl, FLOAT21_SIZE);
395  in.read(m_zuxl, FLOAT21_SIZE);
396  in.read(m_zuyl, FLOAT21_SIZE);
397  in.read(m_zuzl, FLOAT21_SIZE);
398  in.read(m_iro, IR_SIZE);
399  in.read(m_irx, IR_SIZE);
400  in.read(m_iry, IR_SIZE);
401  in.read(m_irz, IR_SIZE);
402  in.read(m_irxx, IR_SIZE);
403  in.read(m_irxy, IR_SIZE);
404  in.read(m_irxz, IR_SIZE);
405  in.read(m_iryy, IR_SIZE);
406  in.read(m_iryz, IR_SIZE);
407  in.read(m_irzz, IR_SIZE);
408  in.read(m_ico, IC_SIZE);
409  in.read(m_icx, IC_SIZE);
410  in.read(m_icy, IC_SIZE);
411  in.read(m_icz, IC_SIZE);
412  in.read(m_icxx, IC_SIZE);
413  in.read(m_icxy, IC_SIZE);
414  in.read(m_icxz, IC_SIZE);
415  in.read(m_icyy, IC_SIZE);
416  in.read(m_icyz, IC_SIZE);
417  in.read(m_iczz, IC_SIZE);
418  in.read(m_gxo, G_SIZE);
419  in.read(m_gyo, G_SIZE);
420  in.read(m_gzo, G_SIZE);
421  in.read(m_gxr, G_SIZE);
422  in.read(m_gyr, G_SIZE);
423  in.read(m_gzr, G_SIZE);
424  in.read(m_gs, G_SIZE);
425  in.read(m_gxx, G_SIZE);
426  in.read(m_gxy, G_SIZE);
427  in.read(m_gxz, G_SIZE);
428  in.read(m_gyx, G_SIZE);
429  in.read(m_gyy, G_SIZE);
430  in.read(m_gyz, G_SIZE);
431  in.read(m_gzx, G_SIZE);
432  in.read(m_gzy, G_SIZE);
433  in.read(m_gzz, G_SIZE);
434 
435  m_isg.resize(m_ignNum);
436  m_map.resize(m_mapNum);
437 
438  for (i=0; i < m_ignNum; ++i)
439  {
440  ossimNitfRsmecaIsg isg;
441  m_isg[i] = isg;
442  m_isg[i].parseStream(in);
443  }
444  char temp1[FLOAT21_SIZE+1];
445  temp1[FLOAT21_SIZE] = '\0';
446  for (i=0; i < m_mapNum; ++i)
447  {
448  in.read(temp1, FLOAT21_SIZE);
449  m_map[i] = FILL21;
450  m_map[i] = temp1;
451  }
452  }
453  if (m_inclucFlag)
454  {
455  memset(m_urr,' ', FLOAT21_SIZE);
456  memset(m_urc,' ', FLOAT21_SIZE);
457  memset(m_ucc,' ', FLOAT21_SIZE);
458  memset(m_uncsr, ' ', 1);
459  m_urr[FLOAT21_SIZE] = '\0';
460  m_urc[FLOAT21_SIZE] = '\0';
461  m_ucc[FLOAT21_SIZE] = '\0';
462  m_uncsr[1] = '\0';
463  in.read(m_urr, FLOAT21_SIZE);
464  in.read(m_urc, FLOAT21_SIZE);
465  in.read(m_ucc, FLOAT21_SIZE);
466  in.read(m_uncsr, 1);
468  m_ucorsr.resize(m_rowCorSegNum);
469  m_utausr.resize(m_rowCorSegNum);
470  char temp1[FLOAT21_SIZE+1];
471  temp1[FLOAT21_SIZE] = '\0';
472  for (i=0; i < m_rowCorSegNum; ++i)
473  {
474  in.read(temp1, FLOAT21_SIZE);
475  m_ucorsr[i] = FILL21;
476  m_ucorsr[i] = temp1;
477  in.read(temp1, FLOAT21_SIZE);
478  m_utausr[i] = FILL21;
479  m_utausr[i] = temp1;
480  }
481  memset(m_uncsc, ' ', 1);
482  m_uncsc[1] = '\0';
483  in.read(m_uncsc, 1);
485  m_ucorsc.resize(m_colCorSegNum);
486  m_utausc.resize(m_colCorSegNum);
487  for (i=0; i < m_colCorSegNum; ++i)
488  {
489  in.read(temp1, FLOAT21_SIZE);
490  m_ucorsc[i] = FILL21;
491  m_ucorsc[i] = temp1;
492  in.read(temp1, FLOAT21_SIZE);
493  m_utausc[i] = FILL21;
494  m_utausc[i] = temp1;
495  }
496  }
497 
498 }
499 
501 {
502  out.write(m_iid, IID_SIZE);
503  out.write(m_edition, EDITION_SIZE);
504  out.write(m_tid, TID_SIZE);
505  out.write(m_inclic, INCLIC_SIZE);
506  out.write(m_incluc, INCLUC_SIZE);
507  ossim_uint32 i = 0;
508 
509  if (m_inclicFlag)
510  {
511  out.write(m_npar, NPAR_SIZE);
512  out.write(m_nparo, NPARO_SIZE);
513  out.write(m_ign, IGN_SIZE);
514  out.write(m_cvdate, CVDATE_SIZE);
515  out.write(m_xuol, FLOAT21_SIZE);
516  out.write(m_yuol, FLOAT21_SIZE);
517  out.write(m_zuol, FLOAT21_SIZE);
518  out.write(m_xuxl, FLOAT21_SIZE);
519  out.write(m_xuyl, FLOAT21_SIZE);
520  out.write(m_xuzl, FLOAT21_SIZE);
521  out.write(m_yuxl, FLOAT21_SIZE);
522  out.write(m_yuyl, FLOAT21_SIZE);
523  out.write(m_yuzl, FLOAT21_SIZE);
524  out.write(m_zuxl, FLOAT21_SIZE);
525  out.write(m_zuyl, FLOAT21_SIZE);
526  out.write(m_zuzl, FLOAT21_SIZE);
527  out.write(m_iro, IR_SIZE);
528  out.write(m_irx, IR_SIZE);
529  out.write(m_iry, IR_SIZE);
530  out.write(m_irz, IR_SIZE);
531  out.write(m_irxx, IR_SIZE);
532  out.write(m_irxy, IR_SIZE);
533  out.write(m_irxz, IR_SIZE);
534  out.write(m_iryy, IR_SIZE);
535  out.write(m_iryz, IR_SIZE);
536  out.write(m_irzz, IR_SIZE);
537  out.write(m_ico, IC_SIZE);
538  out.write(m_icx, IC_SIZE);
539  out.write(m_icy, IC_SIZE);
540  out.write(m_icz, IC_SIZE);
541  out.write(m_icxx, IC_SIZE);
542  out.write(m_icxy, IC_SIZE);
543  out.write(m_icxz, IC_SIZE);
544  out.write(m_icyy, IC_SIZE);
545  out.write(m_icyz, IC_SIZE);
546  out.write(m_iczz, IC_SIZE);
547  out.write(m_gxo, G_SIZE);
548  out.write(m_gyo, G_SIZE);
549  out.write(m_gzo, G_SIZE);
550  out.write(m_gxr, G_SIZE);
551  out.write(m_gyr, G_SIZE);
552  out.write(m_gzr, G_SIZE);
553  out.write(m_gs, G_SIZE);
554  out.write(m_gxx, G_SIZE);
555  out.write(m_gxy, G_SIZE);
556  out.write(m_gxz, G_SIZE);
557  out.write(m_gyx, G_SIZE);
558  out.write(m_gyy, G_SIZE);
559  out.write(m_gyz, G_SIZE);
560  out.write(m_gzx, G_SIZE);
561  out.write(m_gzy, G_SIZE);
562  out.write(m_gzz, G_SIZE);
563 
564  for (i=0; i < m_ignNum; ++i)
565  {
566  m_isg[i].writeStream(out);
567  }
568  for (i=0; i < m_mapNum; ++i)
569  {
570  out.write(m_map[i], FLOAT21_SIZE);
571  }
572  }
573  if (m_inclucFlag)
574  {
575  out.write(m_urr, FLOAT21_SIZE);
576  out.write(m_urc, FLOAT21_SIZE);
577  out.write(m_ucc, FLOAT21_SIZE);
578  out.write(m_uncsr, 1);
579  for (i=0; i < m_rowCorSegNum; ++i)
580  {
581  out.write(m_ucorsr[i], FLOAT21_SIZE);
582  out.write(m_utausr[i], FLOAT21_SIZE);
583  }
584  out.write(m_uncsc, 1);
585  for (i=0; i < m_colCorSegNum; ++i)
586  {
587  out.write(m_ucorsc[i], FLOAT21_SIZE);
588  out.write(m_utausc[i], FLOAT21_SIZE);
589  }
590  }
591 }
592 
594 {
595 }
596 
598  const std::string& prefix) const
599 {
600  std::string pfx = prefix;
601  pfx += getTagName();
602  pfx += ".";
603  ossim_uint32 i = 0;
604 
605  out << setiosflags(std::ios::left)
606  << pfx << std::setw(24) << "CETAG:" << getTagName() << "\n"
607  << pfx << std::setw(24) << "CEL:" << getSizeInBytes() << "\n"
608  << pfx << std::setw(24) << "IID:" << m_iid << "\n"
609  << pfx << std::setw(24) << "EDITION:" << m_edition << "\n"
610  << pfx << std::setw(24) << "TID:" << m_tid << "\n"
611  << pfx << std::setw(24) << "INCLIC:" << m_inclic << "\n"
612  << pfx << std::setw(24) << "INCLUC:" << m_incluc << "\n";
613 
614  if(m_inclicFlag)
615  {
616  out << pfx << std::setw(24) << "NPAR:" << m_npar << "\n"
617  << pfx << std::setw(24) << "NPARO:" << m_nparo << "\n"
618  << pfx << std::setw(24) << "IGN:" << m_ign << "\n"
619  << pfx << std::setw(24) << "CVDATE:" << m_cvdate << "\n"
620  << pfx << std::setw(24) << "XUOL:" << m_xuol << "\n"
621  << pfx << std::setw(24) << "YUOL:" << m_yuol << "\n"
622  << pfx << std::setw(24) << "ZUOL:" << m_zuol << "\n"
623  << pfx << std::setw(24) << "XUXL:" << m_xuxl << "\n"
624  << pfx << std::setw(24) << "XUYL:" << m_xuyl << "\n"
625  << pfx << std::setw(24) << "XUZL:" << m_xuzl << "\n"
626  << pfx << std::setw(24) << "YUXL:" << m_yuxl << "\n"
627  << pfx << std::setw(24) << "YUYL:" << m_yuyl << "\n"
628  << pfx << std::setw(24) << "YUZL:" << m_yuzl << "\n"
629  << pfx << std::setw(24) << "ZUXL:" << m_zuxl << "\n"
630  << pfx << std::setw(24) << "ZUYL:" << m_zuyl << "\n"
631  << pfx << std::setw(24) << "ZUZL:" << m_zuzl << "\n"
632  << pfx << std::setw(24) << "IRO:" << m_iro << "\n"
633  << pfx << std::setw(24) << "IRX:" << m_irx << "\n"
634  << pfx << std::setw(24) << "IRY:" << m_iry << "\n"
635  << pfx << std::setw(24) << "IRZ:" << m_irz << "\n"
636  << pfx << std::setw(24) << "IRXX:" << m_irxx << "\n"
637  << pfx << std::setw(24) << "IRXY:" << m_irxy << "\n"
638  << pfx << std::setw(24) << "IRXZ:" << m_irxz << "\n"
639  << pfx << std::setw(24) << "IRYY:" << m_iryy << "\n"
640  << pfx << std::setw(24) << "IRYZ:" << m_iryz << "\n"
641  << pfx << std::setw(24) << "IRZZ:" << m_irzz << "\n"
642  << pfx << std::setw(24) << "ICO:" << m_ico << "\n"
643  << pfx << std::setw(24) << "ICX:" << m_icx << "\n"
644  << pfx << std::setw(24) << "ICY:" << m_icy << "\n"
645  << pfx << std::setw(24) << "ICZ:" << m_icz << "\n"
646  << pfx << std::setw(24) << "ICXX:" << m_icxx << "\n"
647  << pfx << std::setw(24) << "ICXY:" << m_icxy << "\n"
648  << pfx << std::setw(24) << "ICXZ:" << m_icxz << "\n"
649  << pfx << std::setw(24) << "ICYY:" << m_icyy << "\n"
650  << pfx << std::setw(24) << "ICYZ:" << m_icyz << "\n"
651  << pfx << std::setw(24) << "ICZZ:" << m_iczz << "\n"
652  << pfx << std::setw(24) << "GXO:" << m_gxo << "\n"
653  << pfx << std::setw(24) << "GYO:" << m_gyo << "\n"
654  << pfx << std::setw(24) << "GZO:" << m_gzo << "\n"
655  << pfx << std::setw(24) << "GXR:" << m_gxr << "\n"
656  << pfx << std::setw(24) << "GYR:" << m_gyr << "\n"
657  << pfx << std::setw(24) << "GZR:" << m_gzr << "\n"
658  << pfx << std::setw(24) << "GS:" << m_gs << "\n"
659  << pfx << std::setw(24) << "GXX:" << m_gxx << "\n"
660  << pfx << std::setw(24) << "GXY:" << m_gxy << "\n"
661  << pfx << std::setw(24) << "GXZ:" << m_gxz << "\n"
662  << pfx << std::setw(24) << "GYX:" << m_gyx << "\n"
663  << pfx << std::setw(24) << "GYY:" << m_gyy << "\n"
664  << pfx << std::setw(24) << "GYZ:" << m_gyz << "\n"
665  << pfx << std::setw(24) << "GZX:" << m_gzx << "\n"
666  << pfx << std::setw(24) << "GZY:" << m_gzy << "\n"
667  << pfx << std::setw(24) << "GZZ:" << m_gzz << "\n";
668 
669  for (i=0; i<m_ignNum; ++i)
670  {
671  m_isg[i].print(out, prefix, i);
672 
673  }
674  for (i=0; i<m_mapNum; ++i)
675  {
676  ossimString field = "MAP" + ossimString::toString(i) + ":";
677  out << pfx << std::setw(24) << field << m_map[i] << "\n";
678  }
679  }
680  if (m_inclucFlag)
681  {
682  out << pfx << std::setw(24) << "URR:" << m_urr << "\n"
683  << pfx << std::setw(24) << "URC:" << m_urc << "\n"
684  << pfx << std::setw(24) << "UCC:" << m_ucc << "\n"
685  << pfx << std::setw(24) << "UNCSR:" << m_uncsr << "\n";
686 
687  for (i=0; i<m_rowCorSegNum; ++i)
688  {
689  ossimString field = "UCORSR" + ossimString::toString(i) + ":";
690  out << pfx << std::setw(24) << field << m_ucorsr[i] << "\n";
691  }
692  for (i=0; i<m_rowCorSegNum; ++i)
693  {
694  ossimString field = "UTAUSR" + ossimString::toString(i) + ":";
695  out << pfx << std::setw(24) << field << m_utausr[i] << "\n";
696  }
697 
698  for (i=0; i<m_colCorSegNum; ++i)
699  {
700  ossimString field = "UCORSC" + ossimString::toString(i) + ":";
701  out << pfx << std::setw(24) << field << m_ucorsc[i] << "\n";
702  }
703  for (i=0; i<m_colCorSegNum; ++i)
704  {
705  ossimString field = "UTAUSC" + ossimString::toString(i) + ":";
706  out << pfx << std::setw(24) << field << m_utausc[i] << "\n";
707  }
708  }
709 
710  out.flush();
711 
712  return out;
713 }
714 
716 {
717  return ossimString(m_iid);
718 }
719 
721 {
722  return ossimString(m_edition);
723 }
724 
726 {
727  return ossimString(m_tid);
728 }
729 
731 {
732  return ossimString(m_inclic);
733 }
734 
736 {
737  return ossimString(m_incluc);
738 }
739 
741 {
742  return ossimString(m_npar);
743 }
744 
746 {
747  return ossimString(m_nparo);
748 }
749 
751 {
752  return ossimString(m_ign);
753 }
754 
756 {
757  return ossimString(m_cvdate);
758 }
759 
761 {
762  return ossimString(m_xuol);
763 }
764 
766 {
767  return ossimString(m_yuol);
768 }
769 
771 {
772  return ossimString(m_zuol);
773 }
774 
776 {
777  return ossimString(m_xuxl);
778 }
779 
781 {
782  return ossimString(m_xuyl);
783 }
784 
786 {
787  return ossimString(m_xuzl);
788 }
789 
791 {
792  return ossimString(m_yuxl);
793 }
794 
796 {
797  return ossimString(m_yuyl);
798 }
799 
801 {
802  return ossimString(m_yuzl);
803 }
804 
806 {
807  return ossimString(m_zuxl);
808 }
809 
811 {
812  return ossimString(m_zuyl);
813 }
814 
816 {
817  return ossimString(m_zuzl);
818 }
819 
821 {
822  return ossimString(m_iro);
823 }
824 
826 {
827  return ossimString(m_irx);
828 }
830 {
831  return ossimString(m_iry);
832 }
833 
835 {
836  return ossimString(m_irz);
837 }
838 
840 {
841  return ossimString(m_irxx);
842 }
843 
845 {
846  return ossimString(m_irxy);
847 }
848 
850 {
851  return ossimString(m_irxz);
852 }
853 
855 {
856  return ossimString(m_iryy);
857 }
858 
860 {
861  return ossimString(m_iryz);
862 }
863 
865 {
866  return ossimString(m_irzz);
867 }
868 
870 {
871  return ossimString(m_ico);
872 }
873 
875 {
876  return ossimString(m_icx);
877 }
878 
880 {
881  return ossimString(m_icy);
882 }
883 
885 {
886  return ossimString(m_icz);
887 }
888 
890 {
891  return ossimString(m_icxx);
892 }
893 
895 {
896  return ossimString(m_icxy);
897 }
898 
900 {
901  return ossimString(m_icxz);
902 }
903 
905 {
906  return ossimString(m_icyy);
907 }
908 
910 {
911  return ossimString(m_icyz);
912 }
913 
915 {
916  return ossimString(m_iczz);
917 }
918 
920 {
921  return ossimString(m_gxo);
922 }
923 
925 {
926  return ossimString(m_gyo);
927 }
928 
930 {
931  return ossimString(m_gzo);
932 }
933 
935 {
936  return ossimString(m_gxr);
937 }
938 
940 {
941  return ossimString(m_gyr);
942 }
943 
945 {
946  return ossimString(m_gzr);
947 }
948 
950 {
951  return ossimString(m_gs);
952 }
953 
955 {
956  return ossimString(m_gxx);
957 }
958 
960 {
961  return ossimString(m_gxy);
962 }
963 
965 {
966  return ossimString(m_gxz);
967 }
968 
970 {
971  return ossimString(m_gyx);
972 }
973 
975 {
976  return ossimString(m_gyy);
977 }
978 
980 {
981  return ossimString(m_gyz);
982 }
983 
985 {
986  return ossimString(m_gzx);
987 }
988 
990 {
991  return ossimString(m_gzy);
992 }
993 
995 {
996  return ossimString(m_gzz);
997 }
998 
1000 {
1001  ossimNitfRsmecaIsg result;
1002  if (index < m_isg.size())
1003  {
1004  result = m_isg[index];
1005  }
1006  else
1007  {
1008  if (traceDebug())
1009  {
1011  << "ossimNitfRsmecaTag::getIsg range error!" << std::endl;
1012  }
1013  }
1014  return result;
1015 }
1016 
1018 {
1019  ossimString result;
1020  if (index < m_map.size())
1021  {
1022  result = m_map[index];
1023  }
1024  else
1025  {
1026  if (traceDebug())
1027  {
1029  << "ossimNitfRsmecaTag::getMap range error!" << std::endl;
1030  }
1031  }
1032  return result;
1033 }
1034 
1036 {
1037  return ossimString(m_urr);
1038 }
1039 
1041 {
1042  return ossimString(m_urc);
1043 }
1044 
1046 {
1047  return ossimString(m_ucc);
1048 }
1049 
1051 {
1052  return ossimString(m_uncsr);
1053 }
1054 
1056 {
1057  ossimString result;
1058  if (index < m_ucorsr.size())
1059  {
1060  result = m_ucorsr[index];
1061  }
1062  else
1063  {
1064  if (traceDebug())
1065  {
1067  << "ossimNitfRsmecaTag::getUcorsr range error!" << std::endl;
1068  }
1069  }
1070  return result;
1071 }
1072 
1074 {
1075  ossimString result;
1076  if (index < m_utausr.size())
1077  {
1078  result = m_utausr[index];
1079  }
1080  else
1081  {
1082  if (traceDebug())
1083  {
1085  << "ossimNitfRsmecaTag::getUtausr range error!" << std::endl;
1086  }
1087  }
1088  return result;
1089 }
1090 
1092 {
1093  return ossimString(m_uncsr);
1094 }
1095 
1097 {
1098  ossimString result;
1099  if (index < m_ucorsc.size())
1100  {
1101  result = m_ucorsc[index];
1102  }
1103  else
1104  {
1105  if (traceDebug())
1106  {
1108  << "ossimNitfRsmecaTag::getUcorsc range error!" << std::endl;
1109  }
1110  }
1111  return result;
1112 }
1113 
1115 {
1116  ossimString result;
1117  if (index < m_utausc.size())
1118  {
1119  result = m_utausc[index];
1120  }
1121  else
1122  {
1123  if (traceDebug())
1124  {
1126  << "ossimNitfRsmecaTag::getUtausc range error!" << std::endl;
1127  }
1128  }
1129  return result;
1130 }
1131 
1133 {
1134  return m_inclicFlag;
1135 }
1136 
1138 {
1139  return m_inclucFlag;
1140 }
1141 
1143 {
1144  return ossimString(m_ignNum);
1145 }
1146 
1148 {
1149  return ossimString(m_mapNum);
1150 }
1151 
1153 {
1154  return ossimString(m_rowCorSegNum);
1155 }
1156 
1158 {
1159  return ossimString(m_colCorSegNum);
1160 }
ossimString getIcy() const
ossimString getIryy() const
ossimString getIcxx() const
char m_ncseg[NCSEG_SIZE+1]
ossimString getUrc() const
virtual const std::string & getTagName() const
This will return the name of the registered tag for this user defined header.
ossimString getGyr() const
ossimString getXuzl() const
ossimString getIgn() const
ossimString getGs() const
RTTI_DEF1(ossimNitfRsmecaTag, "ossimNitfRsmecaTag", ossimNitfRegisteredTag)
char m_inclic[INCLIC_SIZE+1]
char m_icxz[IC_SIZE+1]
ossimString getIczz() const
char m_urr[FLOAT21_SIZE+1]
void parseStream(std::istream &in)
ossimString getMapNum() const
char m_iczz[IC_SIZE+1]
char m_yuxl[FLOAT21_SIZE+1]
ossimString getGxx() const
ossimString getIid() const
ossim_uint32 m_corSegNum
ossimString getYuol() const
ossimString getXuyl() const
char m_iid[IID_SIZE+1]
char m_irz[IR_SIZE+1]
ossimString getZuyl() const
ossim_uint32 m_colCorSegNum
std::vector< ossimString > m_map
void writeStream(std::ostream &out)
ossimString getUtausr(ossim_uint32 index) const
ossimString getGyx() const
char m_iro[IR_SIZE+1]
ossimString getYuxl() const
static ossimString toString(bool aValue)
Numeric to string methods.
ossimString getIrz() const
ossimString getIcx() const
ossimString getIcxz() const
ossimString getIrxz() const
char m_xuxl[FLOAT21_SIZE+1]
char m_yuyl[FLOAT21_SIZE+1]
ossimString getGxr() const
ossim_uint32 toUInt32() const
ossimString getGyz() const
ossimString getGzy() const
ossimString getIry() const
ossimString getYuyl() const
ossimString getTid() const
ossimString getGzz() const
ossim_uint32 m_rowCorSegNum
ossimString getGxo() const
ossimString getUrr() const
char m_icz[IC_SIZE+1]
char m_xuyl[FLOAT21_SIZE+1]
char m_xuzl[FLOAT21_SIZE+1]
ossimString getUcorsc(ossim_uint32 index) const
ossimString getNparo() const
char m_iryz[IR_SIZE+1]
virtual void writeStream(std::ostream &out)
char m_ign[IGN_SIZE+1]
char m_icyy[IC_SIZE+1]
ossimString getZuol() const
ossimString getIrzz() const
char m_zuxl[FLOAT21_SIZE+1]
ossimString getIro() const
char m_irzz[IR_SIZE+1]
char m_irxy[IR_SIZE+1]
ossimString getGxz() const
ossimString getUncsr() const
char m_tid[TID_SIZE+1]
char m_npar[NPAR_SIZE+1]
char m_icy[IC_SIZE+1]
char m_zuyl[FLOAT21_SIZE+1]
char m_ucc[FLOAT21_SIZE+1]
unsigned int ossim_uint32
std::ostream & print(std::ostream &out, const std::string &prefix=std::string(), ossim_uint32 index=0) const
ossimString getRowCorSegNum() const
char m_iry[IR_SIZE+1]
ossimString getUcc() const
const ossimNitfRsmecaIsg & operator=(const ossimNitfRsmecaIsg &rhs)
assignment operator
char m_icyz[IC_SIZE+1]
char m_icxy[IC_SIZE+1]
char m_urc[FLOAT21_SIZE+1]
char m_iryy[IR_SIZE+1]
char m_irxz[IR_SIZE+1]
std::vector< ossimString > m_utausr
ossimNitfRsmecaIsg getIsg(ossim_uint32 index) const
ossimString getIryz() const
ossimString getGyy() const
ossimString getUncsc() const
virtual void clearFields()
ossimString getInclic() const
char m_nparo[NPARO_SIZE+1]
ossim_uint32 m_errCovNum
ossimString getGxy() const
char m_yuzl[FLOAT21_SIZE+1]
ossimString getZuzl() const
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
char m_numopg[NUMOPG_SIZE+1]
virtual std::ostream & print(std::ostream &out, const std::string &prefix=std::string()) const
Pure virtual print method that outputs a key/value type format adding prefix to keys.
ossimString getGzx() const
char m_yuol[FLOAT21_SIZE+1]
virtual ossim_uint32 getSizeInBytes() const
Returns the length in bytes of the tag from the CEL or REL field.
virtual void parseStream(std::istream &in)
std::vector< ossimNitfRsmecaIsg > m_isg
ossimString getGzo() const
ossimString getXuol() const
ossimString getZuxl() const
std::vector< ossimString > m_ucorsr
std::vector< ossimString > m_utausc
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
char m_edition[EDITION_SIZE+1]
std::vector< ossimString > m_tauseg
char m_irx[IR_SIZE+1]
char m_incluc[INCLUC_SIZE+1]
char m_irxx[IR_SIZE+1]
char m_zuol[FLOAT21_SIZE+1]
ossimString getIrxx() const
char m_xuol[FLOAT21_SIZE+1]
ossimString getXuxl() const
ossimString getIncluc() const
ossimString getYuzl() const
char m_tcdf[TCDF_SIZE+1]
ossimString getIco() const
ossimString getUcorsr(ossim_uint32 index) const
char m_icxx[IC_SIZE+1]
ossimString getIgnNum() const
char m_ico[IC_SIZE+1]
ossimString getGyo() const
std::vector< ossimString > m_ucorsc
ossimString getEdition() const
ossimString getCvdate() const
std::vector< ossimString > m_errcvg
char m_cvdate[CVDATE_SIZE+1]
std::vector< ossimString > m_corseg
ossimString getUtausc(ossim_uint32 index) const
RSM Error Covariance: RSM indirect error covariance data.
ossimString getIrx() const
ossimString getIcz() const
ossimString getColCorSegNum() const
ossimString getGzr() const
ossimString getIcyz() const
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
ossimString getIcyy() const
ossimString getIrxy() const
ossimString getIcxy() const
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
char m_zuzl[FLOAT21_SIZE+1]
ossimString getMap(ossim_uint32 index) const
ossimString getNpar() const
char m_icx[IC_SIZE+1]