00001 #ifndef ODLTREE_H 00002 #define ODLTREE_H 00003 00004 #include <vector> 00005 #include "odldefs.h" 00006 #include "odlelement.h" 00007 00008 class ODLTree { 00009 protected: 00010 std::string mName; 00011 ODLTYPE mType; 00012 std::vector<ODLTree> mChld; 00013 std::vector<ODLElement> mElem; 00014 bool mValid; 00015 00016 public: 00017 ODLTree( ) : 00018 mName( "" ), 00019 mType( ODLGROUP ) { 00020 mValid = false; 00021 } 00022 00023 ODLTree( std::string name, ODLTYPE type ) : 00024 mName( name ), 00025 mType( type ) { 00026 mValid = false; 00027 } 00028 00029 std::string getName( ) const { 00030 return mName; 00031 } 00032 void setName( const std::string &name ) { 00033 mName = name; 00034 } 00035 00036 ODLTYPE getType( ) const { 00037 return mType; 00038 } 00039 void setType( const ODLTYPE &type ) { 00040 mType = type; 00041 } 00042 00043 // TREE/CHILDREN ROUTINES 00044 std::vector<ODLTree> getChildSet( ) const { 00045 return mChld; 00046 } 00047 void addChild( const ODLTree &chld ) { 00048 mChld.push_back( chld ); 00049 } 00050 ODLTree * getChild( int iChld ) const { 00051 if ( iChld > (int)mChld.size() || iChld < 0 ) 00052 return NULL; 00053 00054 return(ODLTree*)(&mChld[iChld]); 00055 } 00056 00057 ODLTree * getLastChild( ) { 00058 if ( mChld.size() == 0 ) 00059 return NULL; 00060 return &mChld[mChld.size()-1]; 00061 } 00062 00063 int getNumChild( ) const { 00064 return mChld.size(); 00065 } 00066 00067 00068 // ELEMENT ROUTINES 00069 void addElem( const ODLElement &elm ) { 00070 mElem.push_back( elm ); 00071 } 00072 ODLElement * getElem( int iElem ) const { 00073 if ( iElem > (int)mElem.size() || iElem < 0 ) 00074 return NULL; 00075 00076 return(ODLElement*)(&mElem[iElem]); 00077 } 00078 00079 int getNumElem( ) const { 00080 return mElem.size(); 00081 } 00082 }; 00083 00084 #endif 00085 00086
Home |
Search |
Disclaimers & Privacy |
Contact Us GLIMSView Maintainer: dsoltesz@usgs.gov |