Panda3D
 All Classes Functions Variables Enumerations
bamEnums.cxx
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 }
 All Classes Functions Variables Enumerations