Panda3D
|
00001 // Filename: bamEnums.cxx 00002 // Created by: drose (26Feb09) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) Carnegie Mellon University. All rights reserved. 00008 // 00009 // All use of this software is subject to the terms of the revised BSD 00010 // license. You should have received a copy of this license along 00011 // with this source code in a file named "LICENSE." 00012 // 00013 //////////////////////////////////////////////////////////////////// 00014 00015 #include "bamEnums.h" 00016 #include "string_utils.h" 00017 #include "config_util.h" 00018 00019 ostream & 00020 operator << (ostream &out, BamEnums::BamEndian be) { 00021 switch (be) { 00022 case BamEnums::BE_bigendian: 00023 return out << "bigendian"; 00024 00025 case BamEnums::BE_littleendian: 00026 return out << "littleendian"; 00027 } 00028 00029 return out << "**invalid BamEnums::BamEndian value: (" << (int)be << ")**"; 00030 } 00031 00032 istream & 00033 operator >> (istream &in, BamEnums::BamEndian &be) { 00034 string word; 00035 in >> word; 00036 if (cmp_nocase(word, "native") == 0) { 00037 be = BamEnums::BE_native; 00038 00039 } else if (cmp_nocase(word, "bigendian") == 0) { 00040 be = BamEnums::BE_bigendian; 00041 00042 } else if (cmp_nocase(word, "littleendian") == 0) { 00043 be = BamEnums::BE_littleendian; 00044 00045 } else { 00046 util_cat->error() 00047 << "Invalid bam_endian string: " << word << "\n"; 00048 be = BamEnums::BE_native; 00049 } 00050 00051 return in; 00052 } 00053 00054 00055 ostream & 00056 operator << (ostream &out, BamEnums::BamObjectCode boc) { 00057 switch (boc) { 00058 case BamEnums::BOC_push: 00059 return out << "push"; 00060 00061 case BamEnums::BOC_pop: 00062 return out << "pop"; 00063 00064 case BamEnums::BOC_adjunct: 00065 return out << "adjunct"; 00066 00067 case BamEnums::BOC_remove: 00068 return out << "remove"; 00069 00070 case BamEnums::BOC_file_data: 00071 return out << "file_data"; 00072 } 00073 00074 return out << "**invalid BamEnums::BamObjectCode value: (" << (int)boc << ")**"; 00075 } 00076 00077 ostream & 00078 operator << (ostream &out, BamEnums::BamTextureMode btm) { 00079 switch (btm) { 00080 case BamEnums::BTM_unchanged: 00081 return out << "unchanged"; 00082 00083 case BamEnums::BTM_fullpath: 00084 return out << "fullpath"; 00085 00086 case BamEnums::BTM_relative: 00087 return out << "relative"; 00088 00089 case BamEnums::BTM_basename: 00090 return out << "basename"; 00091 00092 case BamEnums::BTM_rawdata: 00093 return out << "rawdata"; 00094 } 00095 00096 return out << "**invalid BamEnums::BamTextureMode (" << (int)btm << ")**"; 00097 } 00098 00099 istream & 00100 operator >> (istream &in, BamEnums::BamTextureMode &btm) { 00101 string word; 00102 in >> word; 00103 00104 if (cmp_nocase(word, "unchanged") == 0) { 00105 btm = BamEnums::BTM_unchanged; 00106 } else if (cmp_nocase(word, "fullpath") == 0) { 00107 btm = BamEnums::BTM_fullpath; 00108 } else if (cmp_nocase(word, "relative") == 0) { 00109 btm = BamEnums::BTM_relative; 00110 } else if (cmp_nocase(word, "basename") == 0) { 00111 btm = BamEnums::BTM_basename; 00112 } else if (cmp_nocase(word, "rawdata") == 0) { 00113 btm = BamEnums::BTM_rawdata; 00114 00115 } else { 00116 util_cat->error() << "Invalid BamEnums::BamTextureMode value: " << word << "\n"; 00117 btm = BamEnums::BTM_relative; 00118 } 00119 00120 return in; 00121 }