USGS

Isis 3.0 Object Programmers' Reference

Home

NaifDskApi.h
Go to the documentation of this file.
1 #ifndef NaifDskApi_h
2 #define NaifDskApi_h
3 
25 // These are the current set of NAIF DSK include files. Note that the
26 // extern "C" wrapper is required as those files are not yet C++ ready.
27 
28 #include <QDebug>
29 
30 #include <SpiceUsr.h>
31 #include <SpiceZfc.h>
32 
33 extern "C" {
34  #include <SpiceDLA.h>
35  #include <SpiceDSK.h>
36  #include <pl02.h>
37 }
38 
39 // Specs for convenient NAIF vectors and matrices
40 #include <tnt/tnt_array1d.h>
41 #include <tnt/tnt_array1d_utils.h>
42 #include <tnt/tnt_array2d.h>
43 #include <tnt/tnt_array2d_utils.h>
44 
45 namespace Isis {
46 
63  // Basic type definitions
64  typedef TNT::Array1D<SpiceDouble> NaifVector;
65  typedef TNT::Array1D<SpiceDouble> NaifVertex;
66  typedef TNT::Array2D<SpiceDouble> NaifTriangle;
67 
68  // Provide (dimensionality) validation routines
69  bool validate(const NaifVertex &v);
70  bool validate(const NaifTriangle &t);
71 
72  QDebug operator<<(QDebug dbg, const TNT::Array1D<SpiceDouble> &tntArray);
73  QDebug operator<<(QDebug dbg, const TNT::Array2D<SpiceDouble> &tntMatrix);
74 
75  QString toString(const TNT::Array1D<SpiceDouble> &tntArray, int precision=15);
76 
77 }; // namespace Isis
78 
79 #endif