GeoTessCPP  2.2.3
Software to facilitate storage and retrieval of 3D information about the Earth.
GeoTessMetaData.h
Go to the documentation of this file.
1 //- ****************************************************************************
2 //-
3 //- Copyright 2009 National Technology & Engineering Solutions of Sandia, LLC
4 //- (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S.
5 //- Government retains certain rights in this software.
6 //-
7 //- BSD Open Source License
8 //- All rights reserved.
9 //-
10 //- Redistribution and use in source and binary forms, with or without
11 //- modification, are permitted provided that the following conditions are met:
12 //-
13 //- 1. Redistributions of source code must retain the above copyright notice,
14 //- this list of conditions and the following disclaimer.
15 //-
16 //- 2. Redistributions in binary form must reproduce the above copyright
17 //- notice, this list of conditions and the following disclaimer in the
18 //- documentation and/or other materials provided with the distribution.
19 //-
20 //- 3. Neither the name of the copyright holder nor the names of its
21 //- contributors may be used to endorse or promote products derived from
22 //- this software without specific prior written permission.
23 //-
24 //- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 //- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 //- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 //- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
28 //- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 //- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 //- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 //- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 //- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 //- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 //- POSSIBILITY OF SUCH DAMAGE.
35 //-
36 //- ****************************************************************************
37 
38 #ifndef GEOTESSMETADATA_OBJECT_H
39 #define GEOTESSMETADATA_OBJECT_H
40 
41 // **** _SYSTEM INCLUDES_ ******************************************************
42 
43 #include <iostream>
44 #include <string>
45 #include <fstream>
46 #include <vector>
47 #include <set>
48 #include <list>
49 #include <sstream>
50 
51 // use standard library objects
52 using namespace std;
53 
54 // **** _LOCAL INCLUDES_ *******************************************************
55 
56 #include "CPPUtils.h"
57 #include "GeoTessUtils.h"
58 #include "GeoTessDataType.h"
60 #include "GeoTessException.h"
61 #include "IFStreamBinary.h"
62 #include "IFStreamAscii.h"
63 #include "EarthShape.h"
64 
65 // **** _BEGIN GEOTESS NAMESPACE_ **********************************************
66 
67 namespace geotess
68 {
69 
70 // **** _FORWARD REFERENCES_ ***************************************************
71 
72 // **** _CLASS DEFINITION_ *****************************************************
73 
98 {
99 private:
100 
101  EarthShape earthShape;
102 
106  string description;
107 
111  int nLayers;
112 
116  int nVertices;
117 
122  string* layerNames;
123 
128  int* layerTessIds;
129 
134  const GeoTessDataType* dataType;
135 
141  int nAttributes;
142 
147  string* attributeNames;
148 
153  string* attributeUnits;
154 
160  bool boolAttributeFilter;
161 
170  vector<int> attributeFilter;
171 
177  vector<int> inputFilter;
178 
183  string attributeFilterString;
184 
188  string inputModelFile;
189 
193  string inputGridFile;
194 
198  double loadTimeModel;
199 
203  string outputModelFile;
204 
208  string outputGridFile;
209 
214  double writeTimeModel;
215 
219  int refCount;
220 
224  bool reuseGrids;
225 
229  string modelSoftwareVersion;
230 
235  string modelGenerationDate;
236 
237 public:
238 
257  : earthShape(), description(""), nLayers(0), nVertices(0), layerNames(NULL), layerTessIds(
258  NULL), dataType(&GeoTessDataType::NONE), nAttributes(-1), attributeNames(
259  NULL), attributeUnits(NULL), boolAttributeFilter(false),
260  inputModelFile("none"), inputGridFile("none"), loadTimeModel(-1.0),
261  outputModelFile("none"), outputGridFile("none"), writeTimeModel(-1.0),
262  refCount(0), reuseGrids(true), modelSoftwareVersion(""), modelGenerationDate("")
263  { }
264 
269  GeoTessMetaData(const string &fileName);
270 
276 
283 
290  bool operator==(const GeoTessMetaData& other);
291 
298  bool operator!=(const GeoTessMetaData& other)
299  {
300  return !(*this == other);
301  }
302 
307  static string class_name() { return "GeoTessMetaData"; }
308 
312  virtual ~GeoTessMetaData();
313 
315  {
316  LONG_INT memory = (LONG_INT) sizeof(GeoTessMetaData);
317 
318  // EarthShape earthShape;
319  memory += (LONG_INT) sizeof(EarthShape);
320 
321  memory += (LONG_INT) (description.length() + attributeFilterString.length()
322  + inputModelFile.length() + inputGridFile.length() + outputModelFile.length()
323  + outputGridFile.length() + modelSoftwareVersion.length() + modelGenerationDate.length());
324 
325  // string* layerNames;
326  memory += nLayers * (LONG_INT) sizeof(string);
327  for (int i=0; i<nLayers; ++i)
328  memory += (LONG_INT) layerNames[i].length();
329 
330  // int* layerTessIds;
331  memory += nLayers * (LONG_INT)sizeof(int);
332 
333  // GeoTessDataType* dataType;
334  memory += nLayers * (int)sizeof(GeoTessDataType);
335 
336  // string* attributeNames;
337  // string* attributeUnits;
338  if (nAttributes > 0)
339  {
340  memory += 2 * nAttributes * (LONG_INT) sizeof(string);
341  for (int i=0; i<nAttributes; ++i)
342  {
343  memory += (LONG_INT) attributeNames[i].length();
344  memory += (LONG_INT) attributeUnits[i].length();
345  }
346  }
347 
348  // vector<int> attributeFilter;
349  memory += (LONG_INT) (attributeFilter.capacity() * sizeof(int));
350 
351  // vector<int> inputFilter;
352  memory += (LONG_INT) (inputFilter.capacity() * sizeof(int));
353 
354  return memory;
355  }
356 
362  {
363  GeoTessMetaData* cpy = new GeoTessMetaData(*this);
364  return cpy;
365  }
366 
372  {
373  return reuseGrids;
374  }
375 
381  void setReuseGrids(bool rg)
382  {
383  reuseGrids = rg;
384  }
385 
414  EarthShape& getEarthShape() { return earthShape; }
415 
442  void setEarthShape(const string& earthShapeName) { earthShape.setEarthShape(earthShapeName); }
443 
449  const string& getInputModelFile() const
450  {
451  return inputModelFile;
452  }
453  ;
454 
460  const string& getInputGridFile() const
461  {
462  return inputGridFile;
463  }
464 
470  double getLoadTimeModel() const
471  {
472  return loadTimeModel;
473  }
474 
480  const string& getOutputModelFile() const
481  {
482  return outputModelFile;
483  }
484  ;
485 
491  const string& getOutputGridFile() const
492  {
493  return outputGridFile;
494  }
495  ;
496 
502  double getWriteTimeModel() const
503  {
504  return writeTimeModel;
505  }
506  ;
507 
513  const string& getDescription() const
514  {
515  return description;
516  }
517  ;
518 
524  void setDescription(const string& dscr)
525  {
526  description = dscr;
527  description = CPPUtils::stringReplaceAll("\r\n", "\n", description);
528  description = CPPUtils::stringReplaceAll("\r", "\n", description);
529  //description = CPPUtils::stringReplaceAll("\n", CPPUtils::NEWLINE, description);
530 
531  // make sure that description ends with a newline by removing
532  // newline from the end if it exists and then adding it on.
533  CPPUtils::removeEOL(description);
534  description += CPPUtils::NEWLINE;
535  }
536 
543  void setLayerNames(const string& lyrNms)
544  {
545  vector<string> layrNames;
546  CPPUtils::tokenizeString(lyrNms, ";", layrNames);
547  setLayerNames(layrNames);
548  }
549 
555  void setLayerNames(vector<string>& layrNms);
556 
562  int getNVertices() const
563  {
564  return nVertices;
565  }
566  ;
567 
573  int getNLayers() const
574  {
575  return nLayers;
576  }
577  ;
578 
584  int getLayerIndex(const string& layerName) const;
585 
591  void getLayerNames(vector<string>& layers)
592  {
593  layers.clear();
594  for (int i=0; i<nLayers; ++i)
595  layers.push_back(layerNames[i]);
596  }
597 
603  const string* const getLayerNames()
604  {
605  return layerNames;
606  }
607 
613  string getLayerName(const int& layerIndex)
614  {
615  if (layerIndex < 0 || layerIndex >= nLayers)
616  {
617  ostringstream os;
618  os << endl << "ERROR in GeoTessMetaData::getLayerName(int layerIndex)" << endl
619  << "attributeIndex (" << layerIndex << ") is out of range (0-" << nLayers-1 << ")"
620  << endl;
621  throw GeoTessException(os, __FILE__, __LINE__, 6001);
622  }
623 
624  return layerNames[layerIndex];
625  }
626 
634 
643  void setLayerTessIds(int layrTsIds[])
644  {
645  if (nLayers <= 0)
646  {
647  ostringstream os;
648  os << "Cannot call GeoTessMetaData::setLayerTessIds() "
649  << "before calling GeoTessMetaData::setLayerNames()" << endl;
650  throw GeoTessException(os, __FILE__, __LINE__, 6002);
651  }
652 
653  if (layerTessIds != NULL)
654  delete[] layerTessIds;
655  layerTessIds = new int[nLayers];
656  for (int i=0; i<nLayers; ++i)
657  layerTessIds[i] = layrTsIds[i];
658  }
659 
665  void setLayerTessIds(vector<int>& layrTsIds);
666 
673  const int* getLayerTessIds() const
674  {
675  return layerTessIds;
676  }
677  ;
678 
685  int getTessellation(int layer) const
686  {
687  return layerTessIds[layer];
688  }
689 
697  void getLayers(const int& tessId, vector<int>& layers)
698  {
699  layers.clear();
700  for (int i=0; i<nLayers; ++i)
701  if (layerTessIds[i] == tessId)
702  layers.push_back(i);
703  }
704 
712  int getFirstLayer(const int& tessId)
713  {
714  for (int i=0; i<nLayers; ++i)
715  if (layerTessIds[i] == tessId)
716  return i;
717  return -1;
718  }
719 
727  int getLastLayer(const int& tessId)
728  {
729  for (int i=nLayers-1; i >= 0; --i)
730  if (layerTessIds[i] == tessId)
731  return i;
732  return -1;
733  }
734 
742  {
743  return *dataType;
744  }
745 
751  void setDataType(const GeoTessDataType& dt);
752 
759  void setDataType(const string& dt);
760 
766  void getAttributeNames(vector<string>& attributes)
767  {
768  attributes.clear();
769  for (int i = 0; i < nAttributes; ++i)
770  attributes.push_back(attributeNames[i]);
771  }
772 
778  void getAttributeUnits(vector<string>& units)
779  {
780  units.clear();
781  for (int i = 0; i < nAttributes; ++i)
782  units.push_back(attributeUnits[i]);
783  }
784 
790  const string* const getAttributeNames()
791  {
792  return attributeNames;
793  }
794 
800  const string* const getAttributeUnits()
801  {
802  return attributeUnits;
803  }
804 
812  void setAttributes(const string& nms, const string& unts)
813  {
814  vector<string> names, units;
815  CPPUtils::tokenizeString(nms, ";", names);
816  CPPUtils::tokenizeString(unts, ";", units);
817  if (names.size() != units.size())
818  {
819  ostringstream os;
820  os << "Error in GeoTessMetaData::setAttributes(const string& nms, const string& unts)" << endl
821  << "Attribute names size (" << names.size()
822  << ") is not equal to units size (" << units.size() << ")" << endl;
823  names.clear(); units.clear();
824  throw GeoTessException(os, __FILE__, __LINE__, 6009);
825  }
826  setAttributes(names, units);
827  }
828 
835  void setAttributes(const vector<string>& names, const vector<string>& units);
836 
842  int getNAttributes() const
843  {
844  return nAttributes;
845  }
846 
853  const string& getAttributeName(int attributeIndex) const
854  {
855  if (attributeIndex < 0 || attributeIndex >= nAttributes)
856  {
857  ostringstream os;
858  os << endl << "ERROR in GeoTessMetaData::getAttributeName(int attributeIndex)" << endl
859  << "attributeIndex (" << attributeIndex << ") is out of range (0-" << nAttributes-1 << ")"
860  << endl;
861  throw GeoTessException(os, __FILE__, __LINE__, 6003);
862  }
863 
864  return attributeNames[attributeIndex];
865  }
866 
872  int getAttributeIndex(string name);
873 
880  string getAttributeNamesString() const;
881 
888  string getAttributeUnitsString() const;
889 
896  const string& getAttributeUnit(int attributeIndex) const
897  {
898  if (attributeIndex < 0 || attributeIndex >= nAttributes)
899  {
900  ostringstream os;
901  os << endl << "ERROR in GeoTessMetaData::getAttributeUnit(int attributeIndex)" << endl
902  << "attributeIndex (" << attributeIndex << ") is out of range (0-" << nAttributes-1 << ")"
903  << endl;
904  throw GeoTessException(os, __FILE__, __LINE__, 6004);
905  }
906  return attributeUnits[attributeIndex];
907  }
908 
915  string getAttributeString(int attributeIndex) const
916  {
917  if (attributeIndex < 0 || attributeIndex >= nAttributes)
918  {
919  ostringstream os;
920  os << endl << "ERROR in GeoTessMetaData::getAttributeUnit(int attributeIndex)" << endl
921  << "attributeIndex (" << attributeIndex << ") is out of range (0-" << nAttributes-1 << ")"
922  << endl;
923  throw GeoTessException(os, __FILE__, __LINE__, 6004);
924  }
925  return attributeNames[attributeIndex] + " (" + attributeUnits[attributeIndex]+")";
926  }
927 
932  string toString(const string& className, LONG_INT memory) const;
933 
938  string toString() const;
939 
946  const string& getModelSoftwareVersion() { return modelSoftwareVersion; }
947 
956  const string& getModelGenerationDate()
957  { return modelGenerationDate; }
958 
964  void setModelSoftwareVersion(const string& swVersion)
965  { modelSoftwareVersion = swVersion; }
966 
973  void setModelGenerationDate(const string& genDate)
974  { modelGenerationDate = genDate; }
975 
976  // All methods below this point are public but are not documented in the doxygen documentation.
977  // These are methods that typical applications will never need to call. They have to be
978  // public because other classes in the GeoTess namespace need to access them.
979  //
981 
987  bool applyAttributeFilter() { return boolAttributeFilter; }
988 
997  vector<int>& getAttributeFilter() { return attributeFilter; }
998 
1004  void setAttributeFilter(vector<int>& filter) { inputFilter = filter; }
1005 
1011  void checkComplete();
1012 
1013  void loadMetaData(IFStreamBinary& input);
1014 
1015  void loadMetaData(IFStreamAscii& input);
1016 
1017  int getRefCount() { return refCount; }
1018 
1022  void addReference() { ++refCount; }
1023 
1027  void removeReference()
1028  {
1029  if (isNotReferenced())
1030  {
1031  ostringstream os;
1032  os << endl << "ERROR in GeoTessMetaData::removeReference" << endl
1033  << "Reference count (" << refCount << ") is already zero."
1034  << endl;
1035  throw GeoTessException(os, __FILE__, __LINE__, 6005);
1036  }
1037 
1038  --refCount;
1039  }
1040 
1044  bool isNotReferenced() { return (refCount == 0) ? true : false; }
1045 
1049  void setNVertices(const int& nvert) { nVertices = nvert; }
1050 
1056  void setInputModelFile(const string& imf) { inputModelFile = imf; }
1057 
1063  void setInputGridFile(const string& igf) { inputGridFile = igf; }
1064 
1070  void setLoadTimeModel(double ltm) { loadTimeModel = ltm; }
1071 
1077  void setOutputModelFile(const string& omf) { outputModelFile = omf; }
1078 
1084  void setOutputGridFile(const string& ogf) { outputGridFile = ogf; }
1085 
1091  void setWriteTimeModel(double wtm) { writeTimeModel = wtm; }
1092 
1093  // the following methods that involve Optimization type are all deprecated.
1094  // They no longer have any effect since GeoTess is always optimized for speed.
1095  const GeoTessOptimizationType& getOptimizationType() const { return GeoTessOptimizationType::SPEED; }
1096  void setOptimizationType(const GeoTessOptimizationType& ot);
1097  void setOptimizationType(const string& ot);
1098 
1100 
1101 };
1102 // end class GeoTessMetaData
1103 
1104 }// end namespace geotess
1105 
1106 #endif // GEOTESSMETADATA_OBJECT_H
geotess::GeoTessMetaData::getLayerIndex
int getLayerIndex(const string &layerName) const
geotess::GeoTessMetaData::setReuseGrids
void setReuseGrids(bool rg)
Definition: GeoTessMetaData.h:381
geotess
Definition: ArrayReuse.h:57
GeoTessException.h
IFStreamBinary.h
geotess::GeoTessMetaData::setModelSoftwareVersion
void setModelSoftwareVersion(const string &swVersion)
Definition: GeoTessMetaData.h:964
geotess::GeoTessMetaData::GeoTessMetaData
GeoTessMetaData(const string &fileName)
geotess::GeoTessMetaData::~GeoTessMetaData
virtual ~GeoTessMetaData()
geotess::GeoTessMetaData::getNAttributes
int getNAttributes() const
Definition: GeoTessMetaData.h:842
geotess::GeoTessMetaData::setEarthShape
void setEarthShape(const string &earthShapeName)
Definition: GeoTessMetaData.h:442
geotess::GeoTessMetaData::setDescription
void setDescription(const string &dscr)
Definition: GeoTessMetaData.h:524
geotess::GeoTessMetaData::setLayerNames
void setLayerNames(vector< string > &layrNms)
geotess::GeoTessMetaData::setLayerNames
void setLayerNames(const string &lyrNms)
Definition: GeoTessMetaData.h:543
geotess::GeoTessMetaData::getTessellation
int getTessellation(int layer) const
Definition: GeoTessMetaData.h:685
geotess::GeoTessMetaData::getLayerTessIds
const int * getLayerTessIds() const
Definition: GeoTessMetaData.h:673
geotess::GeoTessMetaData::getLayerNames
void getLayerNames(vector< string > &layers)
Definition: GeoTessMetaData.h:591
geotess::GeoTessMetaData::getDescription
const string & getDescription() const
Definition: GeoTessMetaData.h:513
geotess::GeoTessMetaData::setDataType
void setDataType(const string &dt)
geotess::GeoTessMetaData::getNVertices
int getNVertices() const
Definition: GeoTessMetaData.h:562
geotess::GeoTessMetaData::getMemory
LONG_INT getMemory()
Definition: GeoTessMetaData.h:314
geotess::GeoTessMetaData::getLayerName
string getLayerName(const int &layerIndex)
Definition: GeoTessMetaData.h:613
GeoTessOptimizationType.h
geotess::GeoTessMetaData::GeoTessMetaData
GeoTessMetaData()
Definition: GeoTessMetaData.h:256
geotess::GeoTessMetaData::setAttributes
void setAttributes(const vector< string > &names, const vector< string > &units)
geotess::GeoTessMetaData::getAttributeNamesString
string getAttributeNamesString() const
geotess::GeoTessMetaData::getModelGenerationDate
const string & getModelGenerationDate()
Definition: GeoTessMetaData.h:956
geotess::GeoTessMetaData::setLayerTessIds
void setLayerTessIds(int layrTsIds[])
Definition: GeoTessMetaData.h:643
geotess::GeoTessMetaData::getAttributeUnit
const string & getAttributeUnit(int attributeIndex) const
Definition: GeoTessMetaData.h:896
GeoTessUtils.h
geotess::GeoTessMetaData::getNLayers
int getNLayers() const
Definition: GeoTessMetaData.h:573
EarthShape.h
geotess::GeoTessMetaData::getLayerNames
const string *const getLayerNames()
Definition: GeoTessMetaData.h:603
geotess::GeoTessMetaData::getWriteTimeModel
double getWriteTimeModel() const
Definition: GeoTessMetaData.h:502
geotess::GeoTessMetaData::setModelGenerationDate
void setModelGenerationDate(const string &genDate)
Definition: GeoTessMetaData.h:973
geotess::EarthShape::setEarthShape
void setEarthShape(const string &earthShape)
Definition: EarthShape.h:187
geotess::GeoTessDataType
Enumeration of supported DataType including DOUBLE, FLOAT, LONG, INT, SHORT and BYTE.
Definition: GeoTessDataType.h:70
LONG_INT
#define LONG_INT
Definition: CPPGlobals.h:113
geotess::GeoTessMetaData::toString
string toString() const
geotess::GeoTessMetaData::getEarthShape
EarthShape & getEarthShape()
Definition: GeoTessMetaData.h:414
geotess::GeoTessMetaData::getLayers
void getLayers(const int &tessId, vector< int > &layers)
Definition: GeoTessMetaData.h:697
geotess::EarthShape
Defines the ellipsoid that is to be used to convert between geocentric and geographic latitude and be...
Definition: EarthShape.h:88
geotess::GeoTessMetaData::class_name
static string class_name()
Definition: GeoTessMetaData.h:307
geotess::GeoTessMetaData::copy
GeoTessMetaData * copy()
Definition: GeoTessMetaData.h:361
geotess::GeoTessMetaData::getLastLayer
int getLastLayer(const int &tessId)
Definition: GeoTessMetaData.h:727
geotess::GeoTessMetaData::getModelSoftwareVersion
const string & getModelSoftwareVersion()
Definition: GeoTessMetaData.h:946
geotess::GeoTessMetaData::toString
string toString(const string &className, LONG_INT memory) const
geotess::GeoTessMetaData::setAttributes
void setAttributes(const string &nms, const string &unts)
Definition: GeoTessMetaData.h:812
geotess::GeoTessMetaData::setLayerTessIds
void setLayerTessIds(vector< int > &layrTsIds)
GEOTESS_EXP_IMP
#define GEOTESS_EXP_IMP
Definition: CPPGlobals.h:73
geotess::GeoTessMetaData::getAttributeName
const string & getAttributeName(int attributeIndex) const
Definition: GeoTessMetaData.h:853
geotess::GeoTessMetaData::GeoTessMetaData
GeoTessMetaData(const GeoTessMetaData &md)
IFStreamAscii.h
geotess::GeoTessMetaData::getAttributeUnitsString
string getAttributeUnitsString() const
geotess::GeoTessMetaData::getOutputGridFile
const string & getOutputGridFile() const
Definition: GeoTessMetaData.h:491
geotess::GeoTessMetaData::setDataType
void setDataType(const GeoTessDataType &dt)
geotess::GeoTessMetaData::getAttributeUnits
void getAttributeUnits(vector< string > &units)
Definition: GeoTessMetaData.h:778
geotess::GeoTessMetaData::operator!=
bool operator!=(const GeoTessMetaData &other)
Definition: GeoTessMetaData.h:298
geotess::GeoTessMetaData::operator=
GeoTessMetaData & operator=(const GeoTessMetaData &other)
geotess::GeoTessMetaData
Basic metadata information about a GeoTessModel.
Definition: GeoTessMetaData.h:98
geotess::GeoTessMetaData::getAttributeIndex
int getAttributeIndex(string name)
geotess::GeoTessMetaData::getAttributeString
string getAttributeString(int attributeIndex) const
Definition: GeoTessMetaData.h:915
geotess::GeoTessMetaData::isGridReuseOn
bool isGridReuseOn()
Definition: GeoTessMetaData.h:371
geotess::GeoTessMetaData::getOutputModelFile
const string & getOutputModelFile() const
Definition: GeoTessMetaData.h:480
geotess::GeoTessMetaData::getLoadTimeModel
double getLoadTimeModel() const
Definition: GeoTessMetaData.h:470
geotess::GeoTessMetaData::getFirstLayer
int getFirstLayer(const int &tessId)
Definition: GeoTessMetaData.h:712
geotess::GeoTessMetaData::getAttributeNames
const string *const getAttributeNames()
Definition: GeoTessMetaData.h:790
geotess::GeoTessMetaData::operator==
bool operator==(const GeoTessMetaData &other)
geotess::GeoTessException
An exception class for all GeoTess objects.
Definition: GeoTessException.h:68
geotess::GeoTessMetaData::getDataType
const GeoTessDataType & getDataType() const
Definition: GeoTessMetaData.h:741
GeoTessDataType.h
geotess::GeoTessMetaData::getAttributeNames
void getAttributeNames(vector< string > &attributes)
Definition: GeoTessMetaData.h:766
geotess::GeoTessMetaData::getAttributeUnits
const string *const getAttributeUnits()
Definition: GeoTessMetaData.h:800
CPPUtils.h
geotess::GeoTessMetaData::getInputGridFile
const string & getInputGridFile() const
Definition: GeoTessMetaData.h:460
geotess::GeoTessMetaData::getLayerNamesString
string getLayerNamesString()
geotess::GeoTessMetaData::getInputModelFile
const string & getInputModelFile() const
Definition: GeoTessMetaData.h:449