1 //---
2 // File: ossimRsmida.cpp
3 //
4 // License: MIT
5 //
6 // See LICENSE.txt file in the top level directory for more details.
7 //---
8
9 #include <ossim/support_data/ossimRsmida.h>
10 #include <ossim/base/ossimKeywordlist.h>
11 #include <ossim/base/ossimNotify.h>
12 #include <ossim/base/ossimTrace.h>
13 #include <ossim/support_data/ossimNitfRsmidaTag.h>
14
15 static const ossimTrace traceDebug("ossimRsmida:debug");
16
17 static std::string IID_KW = "iid";
18 static std::string EDITION_KW = "edition";
19
20 static std::string ISID_KW = "isid";
21 static std::string SID_KW = "sid";
22 static std::string STID_KW = "stid";
23
24 static std::string YEAR_KW = "year";
operator <<(std::ostream & out,const ossimRpfTocEntry & data)25 static std::string MONTH_KW = "month";
26 static std::string DAY_KW = "day";
27 static std::string HOUR_KW = "hour";
28 static std::string MINUTE_KW = "minute";
29 static std::string SECOND_KW = "second";
30
31 static std::string NRG_KW = "nrg";
ossimRpfTocEntry()32 static std::string NCG_KW = "ncg";
33
34 static std::string TRG_KW = "trg";
35 static std::string TCG_KW = "tcg";
36
parseStream(std::istream & in,ossimByteOrder byteOrder)37 static std::string GRNDD_KW = "grndd";
38
39 static std::string XUOR_KW = "xuor";
40 static std::string YUOR_KW = "yuor";
41 static std::string ZUOR_KW = "zuor";
42
43 static std::string XUXR_KW = "xuxr";
44 static std::string XUYR_KW = "xuyr";
45 static std::string XUZR_KW = "xuzr";
46
47 static std::string YUXR_KW = "yuxr";
48 static std::string YUYR_KW = "yuyr";
49 static std::string YUZR_KW = "yuzr";
50
51 static std::string ZUXR_KW = "zuxr";
52 static std::string ZUYR_KW = "zuyr";
53 static std::string ZUZR_KW = "zuzr";
54
55 static std::string V1X_KW = "v1x";
56 static std::string V1Y_KW = "v1y";
57 static std::string V1Z_KW = "v1z";
58
59 static std::string V2X_KW = "v2x";
print(std::ostream & out,const std::string & prefix) const60 static std::string V2Y_KW = "v2y";
61 static std::string V2Z_KW = "v2z";
62
63 static std::string V3X_KW = "v3x";
64 static std::string V3Y_KW = "v3y";
65 static std::string V3Z_KW = "v3z";
66
67 static std::string V4X_KW = "v4x";
68 static std::string V4Y_KW = "v4y";
69 static std::string V4Z_KW = "v4z";
70
71 static std::string V5X_KW = "v5x";
72 static std::string V5Y_KW = "v5y";
73 static std::string V5Z_KW = "v5z";
74
75 static std::string V6X_KW = "v6x";
76 static std::string V6Y_KW = "v6y";
77 static std::string V6Z_KW = "v6z";
78
79 static std::string V7X_KW = "v7x";
80 static std::string V7Y_KW = "v7y";
81 static std::string V7Z_KW = "v7z";
getNumberOfFramesHorizontal() const82
83 static std::string V8X_KW = "v8x";
84 static std::string V8Y_KW = "v8y";
85 static std::string V8Z_KW = "v8z";
86
getNumberOfFramesVertical() const87 static std::string GRPX_KW = "grpx";
88 static std::string GRPY_KW = "grpy";
89 static std::string GRPZ_KW = "grpz";
90
91 static std::string FULLR_KW = "fullr";
getNumberOfLines() const92 static std::string FULLC_KW = "fullc";
93
94 static std::string MINR_KW = "minr";
95 static std::string MAXR_KW = "maxr";
96 static std::string MINC_KW = "minc";
getNumberOfSamples() const97 static std::string MAXC_KW = "maxc";
98
99 static std::string IE0_KW = "ie0";
100 static std::string IER_KW = "ier";
101 static std::string IEC_KW = "iec";
getNumberOfBands() const102 static std::string IERR_KW = "ierr";
103 static std::string IERC_KW = "ierc";
104 static std::string IECC_KW = "iecc";
105
106 static std::string IA0_KW = "ia0";
107 static std::string IAR_KW = "iar";
108 static std::string IAC_KW = "iac";
109 static std::string IARR_KW = "iarr";
110 static std::string IARC_KW = "iarc";
111 static std::string IACC_KW = "iacc";
112
113 static std::string SPX_KW = "spx";
114 static std::string SVX_KW = "svx";
115 static std::string SAX_KW = "sax";
116
getBoundingRect(ossimIrect & rect) const117 static std::string SPY_KW = "spy";
118 static std::string SVY_KW = "svy";
119 static std::string SAY_KW = "say";
120
121 static std::string SPZ_KW = "spz";
getBoundaryInformation() const122 static std::string SVZ_KW = "svz";
123 static std::string SAZ_KW = "saz";
124
125 ossimRsmida::ossimRsmida()
126 :
setEntry(const ossimRpfFrameEntry & entry,long row,long col)127 m_iid(),
128 m_edition(),
129
130 m_isid(),
131 m_sid(),
132 m_stid(),
133
134 m_year(0),
135 m_month(0),
136 m_day(0),
137 m_hour(0),
138 m_minute(0),
139 m_second(0.0),
140
141 m_nrg(0),
142 m_ncg(0),
143
144 m_trg(0.0),
145 m_tcg(0.0),
146
147 m_grndd('\0'),
148
149 m_xuor(0.0),
150 m_yuor(0.0),
151 m_zuor(0.0),
152
153 m_xuxr(0.0),
154 m_xuyr(0.0),
155 m_xuzr(0.0),
156
157 m_yuxr(0.0),
158 m_yuyr(0.0),
159 m_yuzr(0.0),
160
161 m_zuxr(0.0),
162 m_zuyr(0.0),
163 m_zuzr(0.0),
164
165 m_v1x(0.0),
166 m_v1y(0.0),
167 m_v1z(0.0),
168
169 m_v2x(0.0),
170 m_v2y(0.0),
171 m_v2z(0.0),
172
173 m_v3x(0.0),
174 m_v3y(0.0),
175 m_v3z(0.0),
176
177 m_v4x(0.0),
178 m_v4y(0.0),
179 m_v4z(0.0),
180
181 m_v5x(0.0),
182 m_v5y(0.0),
183 m_v5z(0.0),
184
185 m_v6x(0.0),
186 m_v6y(0.0),
187 m_v6z(0.0),
188
189 m_v7x(0.0),
190 m_v7y(0.0),
191 m_v7z(0.0),
192
193 m_v8x(0.0),
194 m_v8y(0.0),
195 m_v8z(0.0),
196
197 m_grpx(0.0),
198 m_grpy(0.0),
199 m_grpz(0.0),
200
201 m_fullr(0),
202 m_fullc(0),
203
204 m_minr(0),
205 m_maxr(0),
206 m_minc(0),
207 m_maxc(0),
208
209 m_ie0(0.0),
210 m_ier(0.0),
211 m_iec(0.0),
212 m_ierr(0.0),
213 m_ierc(0.0),
214 m_iecc(0.0),
215
216 m_ia0(0.0),
217 m_iar(0.0),
218 m_iac(0.0),
219 m_iarr(0.0),
220 m_iarc(0.0),
221 m_iacc(0.0),
222
223 m_spx(0.0),
224 m_svx(0.0),
225 m_sax(0.0),
226
227 m_spy(0.0),
228 m_svy(0.0),
229 m_say(0.0),
230
231 m_spz(0.0),
232 m_svz(0.0),
233 m_saz(0.0)
234 {
235 }
236
237 ossimRsmida::ossimRsmida( const ossimRsmida& obj )
238 :
239 m_iid( obj.m_iid ),
240 m_edition( obj.m_edition ),
241
242 m_isid( obj.m_isid ),
243 m_sid( obj.m_sid ),
244 m_stid( obj.m_stid ),
245
246 m_year( obj.m_year ),
getDecimalDegreesPerPixel(ossimDpt & scale) const247 m_month( obj.m_month ),
248 m_day( obj.m_day ),
249 m_hour( obj.m_hour ),
250 m_minute( obj.m_minute ),
251 m_second( obj.m_second ),
252
253 m_nrg( obj.m_nrg ),
254 m_ncg( obj.m_ncg ),
255
256 m_trg( obj.m_trg ),
257 m_tcg( obj.m_tcg ),
258
259 m_grndd( obj.m_grndd ),
260
261 m_xuor( obj.m_xuor ),
262 m_yuor( obj.m_yuor ),
263 m_zuor( obj.m_zuor ),
264
265 m_xuxr( obj.m_xuxr ),
266 m_xuyr( obj.m_xuyr ),
267 m_xuzr( obj.m_xuzr ),
268
269 m_yuxr( obj.m_yuxr ),
270 m_yuyr( obj.m_yuyr ),
271 m_yuzr( obj.m_yuzr ),
272
273 m_zuxr( obj.m_zuxr ),
274 m_zuyr( obj.m_zuyr ),
275 m_zuzr( obj.m_zuzr ),
276
277 m_v1x( obj.m_v1x ),
278 m_v1y( obj.m_v1y ),
279 m_v1z( obj.m_v1z ),
280
281 m_v2x( obj.m_v2x ),
282 m_v2y( obj.m_v2y ),
283 m_v2z( obj.m_v2z ),
284
285 m_v3x( obj.m_v3x ),
286 m_v3y( obj.m_v3y ),
287 m_v3z( obj.m_v3z ),
288
289 m_v4x( obj.m_v4x ),
290 m_v4y( obj.m_v4y ),
291 m_v4z( obj.m_v4z ),
292
293 m_v5x( obj.m_v5x ),
294 m_v5y( obj.m_v5y ),
295 m_v5z( obj.m_v5z ),
296
297 m_v6x( obj.m_v6x ),
298 m_v6y( obj.m_v6y ),
299 m_v6z( obj.m_v6z ),
300
301 m_v7x( obj.m_v7x ),
302 m_v7y( obj.m_v7y ),
303 m_v7z( obj.m_v7z ),
304
305 m_v8x( obj.m_v8x ),
306 m_v8y( obj.m_v8y ),
307 m_v8z( obj.m_v8z ),
308
309 m_grpx( obj.m_grpx ),
310 m_grpy( obj.m_grpy ),
311 m_grpz( obj.m_grpz ),
312
313 m_fullr( obj.m_fullr ),
314 m_fullc( obj.m_fullc ),
315
316 m_minr( obj.m_minr ),
317 m_maxr( obj.m_maxr ),
318 m_minc( obj.m_minc ),
319 m_maxc( obj.m_maxc ),
320
321 m_ie0( obj.m_ie0 ),
322 m_ier( obj.m_ier ),
323 m_iec( obj.m_iec ),
324
325 m_ierr( obj.m_ierr ),
326 m_ierc( obj.m_ierc ),
327 m_iecc( obj.m_iecc ),
328
329 m_ia0( obj.m_ia0 ),
330 m_iar( obj.m_iar ),
331 m_iac( obj.m_iac ),
332
333 m_iarr( obj.m_iarr ),
334 m_iarc( obj.m_iarc ),
335 m_iacc( obj.m_iacc ),
336
337 m_spx( obj.m_spx ),
338 m_svx( obj.m_svx ),
339 m_sax( obj.m_sax ),
340
341 m_spy( obj.m_spy ),
342 m_svy( obj.m_svy ),
343 m_say( obj.m_say ),
344
345 m_spz( obj.m_spz ),
346 m_svz( obj.m_svz ),
347 m_saz( obj.m_saz )
348 {
349 }
350
351 const ossimRsmida& ossimRsmida::operator=( const ossimRsmida& rhs )
352 {
353 if (this != &rhs)
354 {
355 m_iid = rhs.m_iid;
356 m_edition = rhs.m_edition;
357
358 m_isid = rhs.m_isid;
359 m_sid = rhs.m_sid;
360 m_stid = rhs.m_stid;
361
362 m_year = rhs.m_year;
363 m_month = rhs.m_month;
364 m_day = rhs.m_day;
365 m_hour = rhs.m_hour;
366 m_minute = rhs.m_minute;
367 m_second = rhs.m_second;
368
369 m_nrg = rhs.m_nrg;
370 m_ncg = rhs.m_ncg;
371
372 m_trg = rhs.m_trg;
373 m_tcg = rhs.m_tcg;
374
375 m_grndd = rhs.m_grndd;
376
377 m_xuor = rhs.m_xuor;
378 m_yuor = rhs.m_yuor;
379 m_zuor = rhs.m_zuor;
380
381 m_xuxr = rhs.m_xuxr;
382 m_xuyr = rhs.m_xuyr;
383 m_xuzr = rhs.m_xuzr;
384
385 m_yuxr = rhs.m_yuxr;
386 m_yuyr = rhs.m_yuyr;
387 m_yuzr = rhs.m_yuzr;
388
389 m_zuxr = rhs.m_zuxr;
390 m_zuyr = rhs.m_zuyr;
391 m_zuzr = rhs.m_zuzr;
392
393 m_v1x = rhs.m_v1x;
394 m_v1y = rhs.m_v1y;
395 m_v1z = rhs.m_v1z;
396
397 m_v2x = rhs.m_v2x;
398 m_v2y = rhs.m_v2y;
399 m_v2z = rhs.m_v2z;
400
401 m_v3x = rhs.m_v3x;
402 m_v3y = rhs.m_v3y;
403 m_v3z = rhs.m_v3z;
404
405 m_v4x = rhs.m_v4x;
406 m_v4y = rhs.m_v4y;
407 m_v4z = rhs.m_v4z;
408
409 m_v5x = rhs.m_v5x;
410 m_v5y = rhs.m_v5y;
411 m_v5z = rhs.m_v5z;
412
413 m_v6x = rhs.m_v6x;
414 m_v6y = rhs.m_v6y;
415 m_v6z = rhs.m_v6z;
416
417 m_v7x = rhs.m_v7x;
418 m_v7y = rhs.m_v7y;
419 m_v7z = rhs.m_v7z;
420
421 m_v8x = rhs.m_v8x;
422 m_v8y = rhs.m_v8y;
423 m_v8z = rhs.m_v8z;
424
425 m_grpx = rhs.m_grpx;
426 m_grpy = rhs.m_grpy;
427 m_grpz = rhs.m_grpz;
428
429 m_fullr = rhs.m_fullr;
430 m_fullc = rhs.m_fullc;
431
432 m_minr = rhs.m_minr;
433 m_maxr = rhs.m_maxr;
434 m_minc = rhs.m_minc;
435 m_maxc = rhs.m_maxc;
436
437 m_ie0 = rhs.m_ie0;
438 m_ier = rhs.m_ier;
439 m_iec = rhs.m_iec;
440
441 m_ierr = rhs.m_ierr;
442 m_ierc = rhs.m_ierc;
443 m_iecc = rhs.m_iecc;
444
445 m_ia0 = rhs.m_ia0;
446 m_iar = rhs.m_iar;
447 m_iac = rhs.m_iac;
448
449 m_iarr = rhs.m_iarr;
450 m_iarc = rhs.m_iarc;
451 m_iacc = rhs.m_iacc;
452
453 m_spx = rhs.m_spx;
454 m_svx = rhs.m_svx;
455 m_sax = rhs.m_sax;
456
457 m_spy = rhs.m_spy;
458 m_svy = rhs.m_svy;
459 m_say = rhs.m_say;
460
461 m_spz = rhs.m_spz;
462 m_svz = rhs.m_svz;
463 m_saz = rhs.m_saz;
464 }
465 return *this;
466 }
467
468 void ossimRsmida::saveState( ossimKeywordlist& kwl,
469 const std::string& prefix ) const
470 {
471 std::string pfx = prefix + std::string("rsmida.");
472
473 kwl.add(pfx.c_str(), IID_KW.c_str(), m_iid.c_str());
474 kwl.add(pfx.c_str(), EDITION_KW.c_str(), m_edition.c_str());
475
476 kwl.add(pfx.c_str(), ISID_KW.c_str(), m_isid.c_str());
477 kwl.add(pfx.c_str(), SID_KW.c_str(), m_sid.c_str());
478 kwl.add(pfx.c_str(), STID_KW.c_str(), m_stid.c_str());
479
480 kwl.add(pfx.c_str(), YEAR_KW.c_str(), m_year);
481 kwl.add(pfx.c_str(), MONTH_KW.c_str(), m_month);
482 kwl.add(pfx.c_str(), DAY_KW.c_str(), m_day);
483 kwl.add(pfx.c_str(), HOUR_KW.c_str(), m_hour);
484 kwl.add(pfx.c_str(), MINUTE_KW.c_str(), m_minute);
485 kwl.add(pfx.c_str(), SECOND_KW.c_str(), m_second);
486
487 kwl.add(pfx.c_str(), NRG_KW.c_str(), m_nrg);
488 kwl.add(pfx.c_str(), NCG_KW.c_str(), m_ncg);
489
490 kwl.add(pfx.c_str(), TRG_KW.c_str(), m_trg);
491 kwl.add(pfx.c_str(), TCG_KW.c_str(), m_tcg);
492
493 kwl.add(pfx.c_str(), GRNDD_KW.c_str(), m_grndd);
494
495 kwl.add(pfx.c_str(), XUOR_KW.c_str(), m_xuor);
496 kwl.add(pfx.c_str(), YUOR_KW.c_str(), m_yuor);
497 kwl.add(pfx.c_str(), ZUOR_KW.c_str(), m_zuor);
498
499 kwl.add(pfx.c_str(), XUXR_KW.c_str(), m_xuxr);
500 kwl.add(pfx.c_str(), XUYR_KW.c_str(), m_xuyr);
501 kwl.add(pfx.c_str(), XUZR_KW.c_str(), m_xuzr);
502
503 kwl.add(pfx.c_str(), YUXR_KW.c_str(), m_yuxr);
504 kwl.add(pfx.c_str(), YUYR_KW.c_str(), m_yuyr);
505 kwl.add(pfx.c_str(), YUZR_KW.c_str(), m_yuzr);
506
507 kwl.add(pfx.c_str(), ZUXR_KW.c_str(), m_zuxr);
508 kwl.add(pfx.c_str(), ZUYR_KW.c_str(), m_zuyr);
509 kwl.add(pfx.c_str(), ZUZR_KW.c_str(), m_zuzr);
510
511 kwl.add(pfx.c_str(), V1X_KW.c_str(), m_v1x);
512 kwl.add(pfx.c_str(), V1Y_KW.c_str(), m_v1y);
513 kwl.add(pfx.c_str(), V1Z_KW.c_str(), m_v1z);
514
515 kwl.add(pfx.c_str(), V2X_KW.c_str(), m_v2x);
516 kwl.add(pfx.c_str(), V2Y_KW.c_str(), m_v2y);
517 kwl.add(pfx.c_str(), V2Z_KW.c_str(), m_v2z);
518
519 kwl.add(pfx.c_str(), V3X_KW.c_str(), m_v3x);
520 kwl.add(pfx.c_str(), V3Y_KW.c_str(), m_v3y);
521 kwl.add(pfx.c_str(), V3Z_KW.c_str(), m_v3z);
522
523 kwl.add(pfx.c_str(), V4X_KW.c_str(), m_v4x);
524 kwl.add(pfx.c_str(), V4Y_KW.c_str(), m_v4y);
525 kwl.add(pfx.c_str(), V4Z_KW.c_str(), m_v4z);
526
527 kwl.add(pfx.c_str(), V5X_KW.c_str(), m_v5x);
528 kwl.add(pfx.c_str(), V5Y_KW.c_str(), m_v5y);
529 kwl.add(pfx.c_str(), V5Z_KW.c_str(), m_v5z);
530
531 kwl.add(pfx.c_str(), V6X_KW.c_str(), m_v6x);
532 kwl.add(pfx.c_str(), V6Y_KW.c_str(), m_v6y);
533 kwl.add(pfx.c_str(), V6Z_KW.c_str(), m_v6z);
534
535 kwl.add(pfx.c_str(), V7X_KW.c_str(), m_v7x);
536 kwl.add(pfx.c_str(), V7Y_KW.c_str(), m_v7y);
537 kwl.add(pfx.c_str(), V7Z_KW.c_str(), m_v7z);
538
539 kwl.add(pfx.c_str(), V8X_KW.c_str(), m_v8x);
540 kwl.add(pfx.c_str(), V8Y_KW.c_str(), m_v8y);
541 kwl.add(pfx.c_str(), V8Z_KW.c_str(), m_v8z);
542
543 kwl.add(pfx.c_str(), GRPX_KW.c_str(), m_grpx);
544 kwl.add(pfx.c_str(), GRPY_KW.c_str(), m_grpy);
545 kwl.add(pfx.c_str(), GRPZ_KW.c_str(), m_grpz);
546
547 kwl.add(pfx.c_str(), FULLR_KW.c_str(), m_fullr);
548 kwl.add(pfx.c_str(), FULLC_KW.c_str(), m_fullc);
549
550 kwl.add(pfx.c_str(), MINR_KW.c_str(), m_minr);
551 kwl.add(pfx.c_str(), MAXR_KW.c_str(), m_maxr);
552 kwl.add(pfx.c_str(), MINC_KW.c_str(), m_minc);
553 kwl.add(pfx.c_str(), MAXC_KW.c_str(), m_maxc);
554
555 kwl.add(pfx.c_str(), IE0_KW.c_str(), m_ie0);
556 kwl.add(pfx.c_str(), IER_KW.c_str(), m_ier);
557 kwl.add(pfx.c_str(), IEC_KW.c_str(), m_iec);
558
559 kwl.add(pfx.c_str(), IERR_KW.c_str(), m_ierr);
560 kwl.add(pfx.c_str(), IERC_KW.c_str(), m_ierc);
561 kwl.add(pfx.c_str(), IECC_KW.c_str(), m_iecc);
562
563 kwl.add(pfx.c_str(), IA0_KW.c_str(), m_ie0);
564 kwl.add(pfx.c_str(), IAR_KW.c_str(), m_ier);
565 kwl.add(pfx.c_str(), IAC_KW.c_str(), m_iec);
566
567 kwl.add(pfx.c_str(), IARR_KW.c_str(), m_ie0);
568 kwl.add(pfx.c_str(), IARC_KW.c_str(), m_ier);
569 kwl.add(pfx.c_str(), IACC_KW.c_str(), m_iec);
570
571 kwl.add(pfx.c_str(), SPX_KW.c_str(), m_spx);
572 kwl.add(pfx.c_str(), SVX_KW.c_str(), m_svx);
573 kwl.add(pfx.c_str(), SAX_KW.c_str(), m_sax);
574
575 kwl.add(pfx.c_str(), SPY_KW.c_str(), m_spy);
576 kwl.add(pfx.c_str(), SVY_KW.c_str(), m_svy);
577 kwl.add(pfx.c_str(), SAY_KW.c_str(), m_say);
578
579 kwl.add(pfx.c_str(), SPZ_KW.c_str(), m_spz);
580 kwl.add(pfx.c_str(), SVZ_KW.c_str(), m_svz);
581 kwl.add(pfx.c_str(), SAZ_KW.c_str(), m_saz);
582
583 } // End: ossimRsmida::saveState( ... )
584
585 bool ossimRsmida::loadState( const ossimKeywordlist& kwl,
586 const std::string& prefix )
587 {
588 static const char MODULE[] = "ossimRsmida::loadState";
589 std::string pfx = prefix + std::string("rsmida.");
590 std::string key;
591 std::string value;
592
593 bool result = false; // Set to true on last key.
594
595 while( 1 ) // Break out on error.
596 {
597 key = IID_KW;
598 value = kwl.findKey( pfx, key );
599 if ( value.size() )
600 {
601 m_iid = value;
602 }
603 else
604 {
605 break;
606 }
607
608 key = EDITION_KW;
609 value = kwl.findKey( pfx, key );
610 if ( value.size() )
611 {
612 m_edition = value;
613 }
614 else
615 {
616 break;
617 }
618
619 key = ISID_KW;
620 value = kwl.findKey( pfx, key );
621 if ( value.size() )
622 {
623 m_isid = value;
624 }
625 else // Not required at this time. Blank in nitf test data.
626 {
627 m_isid.clear();
628 if (traceDebug())
629 {
630 ossimNotify(ossimNotifyLevel_NOTICE)
631 << MODULE << " NOTICE: " << ISID_KW << "was not found or is blank.\n";
632 }
633 }
634
635 key = SID_KW;
636 value = kwl.findKey( pfx, key );
637 if ( value.size() )
638 {
639 m_sid = value;
640 }
641 else // Not required at this time. Blank in nitf test data.
642 {
643 m_sid.clear();
644 if (traceDebug())
645 {
646 ossimNotify(ossimNotifyLevel_NOTICE)
647 << MODULE << " NOTICE: " << ISID_KW << "was not found or is blank.\n";
648 }
649 }
650
651 key = STID_KW;
652 value = kwl.findKey( pfx, key );
653 if ( value.size() )
654 {
655 m_stid = value;
656 }
657 else
658 {
659 break;
660 }
661
662 key = YEAR_KW;
663 value = kwl.findKey( pfx, key );
664 if ( value.size() )
665 {
666 m_year = ossimString(value).toUInt32();
667 }
668 else
669 {
670 break;
671 }
672
673 key = MONTH_KW;
674 value = kwl.findKey( pfx, key );
675 if ( value.size() )
676 {
677 m_month = ossimString(value).toUInt32();
678 }
679 else
680 {
681 break;
682 }
683
684 key = DAY_KW;
685 value = kwl.findKey( pfx, key );
686 if ( value.size() )
687 {
688 m_day = ossimString(value).toUInt32();
689 }
690 else
691 {
692 break;
693 }
694
695 key = HOUR_KW;
696 value = kwl.findKey( pfx, key );
697 if ( value.size() )
698 {
699 m_hour = ossimString(value).toUInt32();
700 }
701 else
702 {
703 break;
704 }
705
706 key = MINUTE_KW;
707 value = kwl.findKey( pfx, key );
708 if ( value.size() )
709 {
710 m_minute = ossimString(value).toUInt32();
711 }
712 else
713 {
714 break;
715 }
716
717 key = SECOND_KW;
718 value = kwl.findKey( pfx, key );
719 if ( value.size() )
720 {
721 m_second = ossimString(value).toFloat64();
722 }
723 else
724 {
725 break;
726 }
727
728 key = NRG_KW;
729 value = kwl.findKey( pfx, key );
730 if ( value.size() )
731 {
732 m_nrg = ossimString(value).toInt32();
733 }
734 else
735 {
736 break;
737 }
738
739 key = NCG_KW;
740 value = kwl.findKey( pfx, key );
741 if ( value.size() )
742 {
743 m_ncg = ossimString(value).toInt32();
744 }
745 else
746 {
747 break;
748 }
749
750 key = TRG_KW;
751 value = kwl.findKey( pfx, key );
752 if ( value.size() )
753 {
754 m_trg = ossimString(value).toFloat64();
755 }
756 else
757 {
758 break;
759 }
760
761 key = TCG_KW;
762 value = kwl.findKey( pfx, key );
763 if ( value.size() )
764 {
765 m_tcg = ossimString(value).toFloat64();
766 }
767 else
768 {
769 break;
770 }
771
772 key = GRNDD_KW;
773 value = kwl.findKey( pfx, key );
774 if ( value.size() )
775 {
776 m_grndd = value[0];
777 }
778 else
779 {
780 break;
781 }
782
783 key = XUOR_KW;
784 value = kwl.findKey( pfx, key );
785 if ( value.size() )
786 {
787 m_xuor = ossimString(value).toFloat64();
788 }
789 else
790 {
791 break;
792 }
793
794 key = YUOR_KW;
795 value = kwl.findKey( pfx, key );
796 if ( value.size() )
797 {
798 m_yuor = ossimString(value).toFloat64();
799 }
800 else
801 {
802 break;
803 }
804
805 key = ZUOR_KW;
806 value = kwl.findKey( pfx, key );
807 if ( value.size() )
808 {
809 m_zuor = ossimString(value).toFloat64();
810 }
811 else
812 {
813 break;
814 }
815
816 key = XUXR_KW;
817 value = kwl.findKey( pfx, key );
818 if ( value.size() )
819 {
820 m_xuxr = ossimString(value).toFloat64();
821 }
822 else
823 {
824 break;
825 }
826
827 key = XUYR_KW;
828 value = kwl.findKey( pfx, key );
829 if ( value.size() )
830 {
831 m_xuyr = ossimString(value).toFloat64();
832 }
833 else
834 {
835 break;
836 }
837
838 key = XUZR_KW;
839 value = kwl.findKey( pfx, key );
840 if ( value.size() )
841 {
842 m_xuzr = ossimString(value).toFloat64();
843 }
844 else
845 {
846 break;
847 }
848
849 key = YUXR_KW;
850 value = kwl.findKey( pfx, key );
851 if ( value.size() )
852 {
853 m_yuxr = ossimString(value).toFloat64();
854 }
855 else
856 {
857 break;
858 }
859
860 key = YUYR_KW;
861 value = kwl.findKey( pfx, key );
862 if ( value.size() )
863 {
864 m_yuyr = ossimString(value).toFloat64();
865 }
866 else
867 {
868 break;
869 }
870
871 key = YUZR_KW;
872 value = kwl.findKey( pfx, key );
873 if ( value.size() )
874 {
875 m_yuzr = ossimString(value).toFloat64();
876 }
877 else
878 {
879 break;
880 }
881
882 key = ZUXR_KW;
883 value = kwl.findKey( pfx, key );
884 if ( value.size() )
885 {
886 m_zuxr = ossimString(value).toFloat64();
887 }
888 else
889 {
890 break;
891 }
892
893 key = ZUYR_KW;
894 value = kwl.findKey( pfx, key );
895 if ( value.size() )
896 {
897 m_zuyr = ossimString(value).toFloat64();
898 }
899 else
900 {
901 break;
902 }
903
904 key = ZUZR_KW;
905 value = kwl.findKey( pfx, key );
906 if ( value.size() )
907 {
908 m_zuzr = ossimString(value).toFloat64();
909 }
910 else
911 {
912 break;
913 }
914
915 key = V1X_KW;
916 value = kwl.findKey( pfx, key );
917 if ( value.size() )
918 {
919 m_v1x = ossimString(value).toFloat64();
920 }
921 else
922 {
923 break;
924 }
925
926 key = V1Y_KW;
927 value = kwl.findKey( pfx, key );
928 if ( value.size() )
929 {
930 m_v1y = ossimString(value).toFloat64();
931 }
932 else
933 {
934 break;
935 }
936
937 key = V1Z_KW;
938 value = kwl.findKey( pfx, key );
939 if ( value.size() )
940 {
941 m_v1z = ossimString(value).toFloat64();
942 }
943 else
944 {
945 break;
946 }
947
948 key = V2X_KW;
949 value = kwl.findKey( pfx, key );
950 if ( value.size() )
951 {
952 m_v2x = ossimString(value).toFloat64();
953 }
954 else
955 {
956 break;
957 }
958
959 key = V2Y_KW;
960 value = kwl.findKey( pfx, key );
961 if ( value.size() )
962 {
963 m_v2y = ossimString(value).toFloat64();
964 }
965 else
966 {
967 break;
968 }
969
970 key = V2Z_KW;
971 value = kwl.findKey( pfx, key );
972 if ( value.size() )
973 {
974 m_v2z = ossimString(value).toFloat64();
975 }
976 else
977 {
978 break;
979 }
980
981 key = V3X_KW;
982 value = kwl.findKey( pfx, key );
983 if ( value.size() )
984 {
985 m_v3x = ossimString(value).toFloat64();
986 }
987 else
988 {
989 break;
990 }
991
992 key = V3Y_KW;
993 value = kwl.findKey( pfx, key );
994 if ( value.size() )
995 {
996 m_v3y = ossimString(value).toFloat64();
997 }
998 else
999 {
1000 break;
1001 }
1002
1003 key = V3Z_KW;
1004 value = kwl.findKey( pfx, key );
1005 if ( value.size() )
1006 {
1007 m_v3z = ossimString(value).toFloat64();
1008 }
1009 else
1010 {
1011 break;
1012 }
1013
1014 key = V4X_KW;
1015 value = kwl.findKey( pfx, key );
1016 if ( value.size() )
1017 {
1018 m_v4x = ossimString(value).toFloat64();
1019 }
1020 else
1021 {
1022 break;
1023 }
1024
1025 key = V4Y_KW;
1026 value = kwl.findKey( pfx, key );
1027 if ( value.size() )
1028 {
1029 m_v4y = ossimString(value).toFloat64();
1030 }
1031 else
1032 {
1033 break;
1034 }
1035
1036 key = V4Z_KW;
1037 value = kwl.findKey( pfx, key );
1038 if ( value.size() )
1039 {
1040 m_v4z = ossimString(value).toFloat64();
1041 }
1042 else
1043 {
1044 break;
1045 }
1046
1047 key = V5X_KW;
1048 value = kwl.findKey( pfx, key );
1049 if ( value.size() )
1050 {
1051 m_v5x = ossimString(value).toFloat64();
1052 }
1053 else
1054 {
1055 break;
1056 }
1057
1058 key = V5Y_KW;
1059 value = kwl.findKey( pfx, key );
1060 if ( value.size() )
1061 {
1062 m_v5y = ossimString(value).toFloat64();
1063 }
1064 else
1065 {
1066 break;
1067 }
1068
1069 key = V5Z_KW;
1070 value = kwl.findKey( pfx, key );
1071 if ( value.size() )
1072 {
1073 m_v5z = ossimString(value).toFloat64();
1074 }
1075 else
1076 {
1077 break;
1078 }
1079
1080 key = V6X_KW;
1081 value = kwl.findKey( pfx, key );
1082 if ( value.size() )
1083 {
1084 m_v6x = ossimString(value).toFloat64();
1085 }
1086 else
1087 {
1088 break;
1089 }
1090
1091 key = V6Y_KW;
1092 value = kwl.findKey( pfx, key );
1093 if ( value.size() )
1094 {
1095 m_v6y = ossimString(value).toFloat64();
1096 }
1097 else
1098 {
1099 break;
1100 }
1101
1102 key = V6Z_KW;
1103 value = kwl.findKey( pfx, key );
1104 if ( value.size() )
1105 {
1106 m_v6z = ossimString(value).toFloat64();
1107 }
1108 else
1109 {
1110 break;
1111 }
1112
1113 key = V7X_KW;
1114 value = kwl.findKey( pfx, key );
1115 if ( value.size() )
1116 {
1117 m_v7x = ossimString(value).toFloat64();
1118 }
1119 else
1120 {
1121 break;
1122 }
1123
1124 key = V7Y_KW;
1125 value = kwl.findKey( pfx, key );
1126 if ( value.size() )
1127 {
1128 m_v7y = ossimString(value).toFloat64();
1129 }
1130 else
1131 {
1132 break;
1133 }
1134
1135 key = V7Z_KW;
1136 value = kwl.findKey( pfx, key );
1137 if ( value.size() )
1138 {
1139 m_v7z = ossimString(value).toFloat64();
1140 }
1141 else
1142 {
1143 break;
1144 }
1145
1146 key = V8X_KW;
1147 value = kwl.findKey( pfx, key );
1148 if ( value.size() )
1149 {
1150 m_v8x = ossimString(value).toFloat64();
1151 }
1152 else
1153 {
1154 break;
1155 }
1156
1157 key = V8Y_KW;
1158 value = kwl.findKey( pfx, key );
1159 if ( value.size() )
1160 {
1161 m_v8y = ossimString(value).toFloat64();
1162 }
1163 else
1164 {
1165 break;
1166 }
1167
1168 key = V8Z_KW;
1169 value = kwl.findKey( pfx, key );
1170 if ( value.size() )
1171 {
1172 m_v8z = ossimString(value).toFloat64();
1173 }
1174 else
1175 {
1176 break;
1177 }
1178
1179 key = GRPX_KW;
1180 value = kwl.findKey( pfx, key );
1181 if ( value.size() )
1182 {
1183 m_grpx = ossimString(value).toFloat64();
1184 }
1185 else
1186 {
1187 break;
1188 }
1189
1190 key = GRPY_KW;
1191 value = kwl.findKey( pfx, key );
1192 if ( value.size() )
1193 {
1194 m_grpy = ossimString(value).toFloat64();
1195 }
1196 else
1197 {
1198 break;
1199 }
1200
1201 key = GRPZ_KW;
1202 value = kwl.findKey( pfx, key );
1203 if ( value.size() )
1204 {
1205 m_grpz = ossimString(value).toFloat64();
1206 }
1207 else
1208 {
1209 break;
1210 }
1211
1212 key = FULLR_KW;
1213 value = kwl.findKey( pfx, key );
1214 if ( value.size() )
1215 {
1216 m_fullr = ossimString(value).toFloat64();
1217 }
1218 else
1219 {
1220 break;
1221 }
1222
1223 key = FULLC_KW;
1224 value = kwl.findKey( pfx, key );
1225 if ( value.size() )
1226 {
1227 m_fullc = ossimString(value).toFloat64();
1228 }
1229 else
1230 {
1231 break;
1232 }
1233
1234 key = MINR_KW;
1235 value = kwl.findKey( pfx, key );
1236 if ( value.size() )
1237 {
1238 m_minr = ossimString(value).toFloat64();
1239 }
1240 else
1241 {
1242 break;
1243 }
1244
1245 key = MAXR_KW;
1246 value = kwl.findKey( pfx, key );
1247 if ( value.size() )
1248 {
1249 m_maxr = ossimString(value).toFloat64();
1250 }
1251 else
1252 {
1253 break;
1254 }
1255
1256 key = MINC_KW;
1257 value = kwl.findKey( pfx, key );
1258 if ( value.size() )
1259 {
1260 m_minc = ossimString(value).toFloat64();
1261 }
1262 else
1263 {
1264 break;
1265 }
1266
1267 key = MAXC_KW;
1268 value = kwl.findKey( pfx, key );
1269 if ( value.size() )
1270 {
1271 m_maxc = ossimString(value).toFloat64();
1272 }
1273 else
1274 {
1275 break;
1276 }
1277
1278 key = IE0_KW;
1279 value = kwl.findKey( pfx, key );
1280 if ( value.size() )
1281 {
1282 m_ie0 = ossimString(value).toFloat64();
1283 }
1284 else
1285 {
1286 break;
1287 }
1288
1289 key = IER_KW;
1290 value = kwl.findKey( pfx, key );
1291 if ( value.size() )
1292 {
1293 m_ier = ossimString(value).toFloat64();
1294 }
1295 else
1296 {
1297 break;
1298 }
1299
1300 key = IEC_KW;
1301 value = kwl.findKey( pfx, key );
1302 if ( value.size() )
1303 {
1304 m_iec = ossimString(value).toFloat64();
1305 }
1306 else
1307 {
1308 break;
1309 }
1310
1311 key = IERR_KW;
1312 value = kwl.findKey( pfx, key );
1313 if ( value.size() )
1314 {
1315 m_ierr = ossimString(value).toFloat64();
1316 }
1317 else
1318 {
1319 break;
1320 }
1321
1322 key = IERC_KW;
1323 value = kwl.findKey( pfx, key );
1324 if ( value.size() )
1325 {
1326 m_ierc = ossimString(value).toFloat64();
1327 }
1328 else
1329 {
1330 break;
1331 }
1332
1333 key = IECC_KW;
1334 value = kwl.findKey( pfx, key );
1335 if ( value.size() )
1336 {
1337 m_iecc = ossimString(value).toFloat64();
1338 }
1339 else
1340 {
1341 break;
1342 }
1343
1344 key = IA0_KW;
1345 value = kwl.findKey( pfx, key );
1346 if ( value.size() )
1347 {
1348 m_ia0 = ossimString(value).toFloat64();
1349 }
1350 else
1351 {
1352 break;
1353 }
1354
1355 key = IAR_KW;
1356 value = kwl.findKey( pfx, key );
1357 if ( value.size() )
1358 {
1359 m_iar = ossimString(value).toFloat64();
1360 }
1361 else
1362 {
1363 break;
1364 }
1365
1366 key = IAC_KW;
1367 value = kwl.findKey( pfx, key );
1368 if ( value.size() )
1369 {
1370 m_iac = ossimString(value).toFloat64();
1371 }
1372 else
1373 {
1374 break;
1375 }
1376
1377 key = IARR_KW;
1378 value = kwl.findKey( pfx, key );
1379 if ( value.size() )
1380 {
1381 m_iarr = ossimString(value).toFloat64();
1382 }
1383 else
1384 {
1385 break;
1386 }
1387
1388 key = IARC_KW;
1389 value = kwl.findKey( pfx, key );
1390 if ( value.size() )
1391 {
1392 m_iarc = ossimString(value).toFloat64();
1393 }
1394 else
1395 {
1396 break;
1397 }
1398
1399 key = IACC_KW;
1400 value = kwl.findKey( pfx, key );
1401 if ( value.size() )
1402 {
1403 m_iacc = ossimString(value).toFloat64();
1404 }
1405 else
1406 {
1407 break;
1408 }
1409
1410 key = SPX_KW;
1411 value = kwl.findKey( pfx, key );
1412 if ( value.size() )
1413 {
1414 m_spx = ossimString(value).toFloat64();
1415 }
1416 else
1417 {
1418 break;
1419 }
1420
1421 key = SVX_KW;
1422 value = kwl.findKey( pfx, key );
1423 if ( value.size() )
1424 {
1425 m_svx = ossimString(value).toFloat64();
1426 }
1427 else
1428 {
1429 break;
1430 }
1431
1432 key = SAX_KW;
1433 value = kwl.findKey( pfx, key );
1434 if ( value.size() )
1435 {
1436 m_sax = ossimString(value).toFloat64();
1437 }
1438 else
1439 {
1440 break;
1441 }
1442
1443 key = SPY_KW;
1444 value = kwl.findKey( pfx, key );
1445 if ( value.size() )
1446 {
1447 m_spy = ossimString(value).toFloat64();
1448 }
1449 else
1450 {
1451 break;
1452 }
1453
1454 key = SVY_KW;
1455 value = kwl.findKey( pfx, key );
1456 if ( value.size() )
1457 {
1458 m_svy = ossimString(value).toFloat64();
1459 }
1460 else
1461 {
1462 break;
1463 }
1464
1465 key = SAY_KW;
1466 value = kwl.findKey( pfx, key );
1467 if ( value.size() )
1468 {
1469 m_say = ossimString(value).toFloat64();
1470 }
1471 else
1472 {
1473 break;
1474 }
1475
1476 key = SPZ_KW;
1477 value = kwl.findKey( pfx, key );
1478 if ( value.size() )
1479 {
1480 m_spz = ossimString(value).toFloat64();
1481 }
1482 else
1483 {
1484 break;
1485 }
1486
1487 key = SVZ_KW;
1488 value = kwl.findKey( pfx, key );
1489 if ( value.size() )
1490 {
1491 m_svz = ossimString(value).toFloat64();
1492 }
1493 else
1494 {
1495 break;
1496 }
1497
1498 key = SAZ_KW;
1499 value = kwl.findKey( pfx, key );
1500 if ( value.size() )
1501 {
1502 m_saz = ossimString(value).toFloat64();
1503 }
1504 else
1505 {
1506 break;
1507 }
1508
1509 // If we get here we're good, so set the status for downstream code.
1510 result = true;
1511
1512 // Final break from while forever loop.
1513 break;
1514
1515 } // Matches: while( FOREVER )
1516
1517 if ( result == false )
1518 {
1519 // Find on key failed...
1520 ossimNotify(ossimNotifyLevel_WARN)
1521 << MODULE << " WARNING:\n"
1522 << "Error encountered parsing the following required keyword: "
1523 << key
1524 << "\nCheck the keywordlist for required key:value pairs."
1525 << std::endl;
1526 }
1527
1528 return result;
1529
1530 } // End: ossimRsmida::loadState( ... )
1531
1532 bool ossimRsmida::initialize( const ossimNitfRsmidaTag* rsmidaTag )
1533 {
1534 bool status = false;
1535
1536 if ( rsmidaTag )
1537 {
1538 m_iid = rsmidaTag->getIid().trim().string();
1539 m_edition = rsmidaTag->getEdition().trim().string();
1540
1541 m_isid = rsmidaTag->getIsid().trim().string();
1542 m_sid = rsmidaTag->getSid().trim().string();
1543 m_stid = rsmidaTag->getStid().trim().string();
1544
1545 m_year = rsmidaTag->getYear().toUInt32();
1546 m_month = rsmidaTag->getMonth().toUInt32();
1547 m_day = rsmidaTag->getDay().toUInt32();
1548 m_hour = rsmidaTag->getHour().toUInt32();
1549 m_minute = rsmidaTag->getMinute().toUInt32();
1550 m_second = rsmidaTag->getSecond().toFloat64();
1551
1552 m_nrg = rsmidaTag->getNrg().toUInt32();
1553 m_ncg = rsmidaTag->getNcg().toUInt32();
1554
1555 m_trg = rsmidaTag->getTrg().toFloat64();
1556 m_tcg = rsmidaTag->getTcg().toFloat64();
1557
1558 std::string s = rsmidaTag->getGrndd().string();
1559 if ( s.size() )
1560 {
1561 m_grndd = s[0];
1562 }
1563 else
1564 {
1565 m_grndd = '\0'; // This should not happen. return false??? (drb)
1566 }
1567
1568 m_xuor = rsmidaTag->getXuor().toFloat64();
1569 m_yuor = rsmidaTag->getYuor().toFloat64();
1570 m_zuor = rsmidaTag->getZuor().toFloat64();
1571
1572 m_xuxr = rsmidaTag->getXuxr().toFloat64();
1573 m_xuyr = rsmidaTag->getXuyr().toFloat64();
1574 m_xuzr = rsmidaTag->getXuzr().toFloat64();
1575
1576 m_yuxr = rsmidaTag->getYuxr().toFloat64();
1577 m_yuyr = rsmidaTag->getYuyr().toFloat64();
1578 m_yuzr = rsmidaTag->getYuzr().toFloat64();
1579
1580 m_zuxr = rsmidaTag->getZuxr().toFloat64();
1581 m_zuyr = rsmidaTag->getZuyr().toFloat64();
1582 m_zuzr = rsmidaTag->getZuzr().toFloat64();
1583
1584 m_v1x = rsmidaTag->getV1x().toFloat64();
1585 m_v1y = rsmidaTag->getV1y().toFloat64();
1586 m_v1z = rsmidaTag->getV1z().toFloat64();
1587
1588 m_v2x = rsmidaTag->getV2x().toFloat64();
1589 m_v2y = rsmidaTag->getV2y().toFloat64();
1590 m_v2z = rsmidaTag->getV2z().toFloat64();
1591
1592 m_v3x = rsmidaTag->getV3x().toFloat64();
1593 m_v3y = rsmidaTag->getV3y().toFloat64();
1594 m_v3z = rsmidaTag->getV3z().toFloat64();
1595
1596 m_v4x = rsmidaTag->getV4x().toFloat64();
1597 m_v4y = rsmidaTag->getV4y().toFloat64();
1598 m_v4z = rsmidaTag->getV4z().toFloat64();
1599
1600 m_v5x = rsmidaTag->getV5x().toFloat64();
1601 m_v5y = rsmidaTag->getV5y().toFloat64();
1602 m_v5z = rsmidaTag->getV5z().toFloat64();
1603
1604 m_v6x = rsmidaTag->getV6x().toFloat64();
1605 m_v6y = rsmidaTag->getV6y().toFloat64();
1606 m_v6z = rsmidaTag->getV6z().toFloat64();
1607
1608 m_v7x = rsmidaTag->getV7x().toFloat64();
1609 m_v7y = rsmidaTag->getV7y().toFloat64();
1610 m_v7z = rsmidaTag->getV7z().toFloat64();
1611
1612 m_v8x = rsmidaTag->getV8x().toFloat64();
1613 m_v8y = rsmidaTag->getV8y().toFloat64();
1614 m_v8z = rsmidaTag->getV8z().toFloat64();
1615
1616 m_grpx = rsmidaTag->getGrpx().toFloat64();
1617 m_grpy = rsmidaTag->getGrpy().toFloat64();
1618 m_grpz = rsmidaTag->getGrpz().toFloat64();
1619
1620 m_fullr = rsmidaTag->getFullr().toUInt32();
1621 m_fullc = rsmidaTag->getFullc().toUInt32();
1622
1623 m_minr = rsmidaTag->getMinr().toUInt32();
1624 m_maxr = rsmidaTag->getMaxr().toUInt32();
1625 m_minc = rsmidaTag->getMinc().toUInt32();
1626 m_maxc = rsmidaTag->getMaxc().toUInt32();
1627
1628 m_ie0 = rsmidaTag->getIe0().toFloat64();
1629 m_ier = rsmidaTag->getIer().toFloat64();
1630 m_iec = rsmidaTag->getIec().toFloat64();
1631
1632 m_ierr = rsmidaTag->getIerr().toFloat64();
1633 m_ierc = rsmidaTag->getIerc().toFloat64();
1634 m_iecc = rsmidaTag->getIecc().toFloat64();
1635
1636 m_ia0 = rsmidaTag->getIa0().toFloat64();
1637 m_iar = rsmidaTag->getIar().toFloat64();
1638 m_iac = rsmidaTag->getIac().toFloat64();
1639
1640 m_iarr = rsmidaTag->getIarr().toFloat64();
1641 m_iarc = rsmidaTag->getIarc().toFloat64();
1642 m_iacc = rsmidaTag->getIacc().toFloat64();
1643
1644 m_spx = rsmidaTag->getSpx().toFloat64();
1645 m_svx = rsmidaTag->getSvx().toFloat64();
1646 m_sax = rsmidaTag->getSax().toFloat64();
1647
1648 m_spy = rsmidaTag->getSpy().toFloat64();
1649 m_svy = rsmidaTag->getSvy().toFloat64();
1650 m_say = rsmidaTag->getSay().toFloat64();
1651
1652 m_spz = rsmidaTag->getSpz().toFloat64();
1653 m_svz = rsmidaTag->getSvz().toFloat64();
1654 m_saz = rsmidaTag->getSaz().toFloat64();
1655
1656 status = true;
1657
1658 } // Matches: if ( rsmidaTag )
1659
1660 return status;
1661
1662 } // End: ossimRsmida::initializeModel( rsmidaTag )
1663