Panda3D
 All Classes Functions Variables Enumerations
bamEnums.cxx
1 // Filename: bamEnums.cxx
2 // Created by: drose (26Feb09)
3 //
4 ////////////////////////////////////////////////////////////////////
5 //
6 // PANDA 3D SOFTWARE
7 // Copyright (c) Carnegie Mellon University. All rights reserved.
8 //
9 // All use of this software is subject to the terms of the revised BSD
10 // license. You should have received a copy of this license along
11 // with this source code in a file named "LICENSE."
12 //
13 ////////////////////////////////////////////////////////////////////
14 
15 #include "bamEnums.h"
16 #include "string_utils.h"
17 #include "config_util.h"
18 
19 ostream &
20 operator << (ostream &out, BamEnums::BamEndian be) {
21  switch (be) {
22  case BamEnums::BE_bigendian:
23  return out << "bigendian";
24 
25  case BamEnums::BE_littleendian:
26  return out << "littleendian";
27  }
28 
29  return out << "**invalid BamEnums::BamEndian value: (" << (int)be << ")**";
30 }
31 
32 istream &
33 operator >> (istream &in, BamEnums::BamEndian &be) {
34  string word;
35  in >> word;
36  if (cmp_nocase(word, "native") == 0) {
37  be = BamEnums::BE_native;
38 
39  } else if (cmp_nocase(word, "bigendian") == 0) {
40  be = BamEnums::BE_bigendian;
41 
42  } else if (cmp_nocase(word, "littleendian") == 0) {
43  be = BamEnums::BE_littleendian;
44 
45  } else {
46  util_cat->error()
47  << "Invalid bam_endian string: " << word << "\n";
48  be = BamEnums::BE_native;
49  }
50 
51  return in;
52 }
53 
54 
55 ostream &
56 operator << (ostream &out, BamEnums::BamObjectCode boc) {
57  switch (boc) {
58  case BamEnums::BOC_push:
59  return out << "push";
60 
61  case BamEnums::BOC_pop:
62  return out << "pop";
63 
64  case BamEnums::BOC_adjunct:
65  return out << "adjunct";
66 
67  case BamEnums::BOC_remove:
68  return out << "remove";
69 
70  case BamEnums::BOC_file_data:
71  return out << "file_data";
72  }
73 
74  return out << "**invalid BamEnums::BamObjectCode value: (" << (int)boc << ")**";
75 }
76 
77 ostream &
78 operator << (ostream &out, BamEnums::BamTextureMode btm) {
79  switch (btm) {
80  case BamEnums::BTM_unchanged:
81  return out << "unchanged";
82 
83  case BamEnums::BTM_fullpath:
84  return out << "fullpath";
85 
86  case BamEnums::BTM_relative:
87  return out << "relative";
88 
89  case BamEnums::BTM_basename:
90  return out << "basename";
91 
92  case BamEnums::BTM_rawdata:
93  return out << "rawdata";
94  }
95 
96  return out << "**invalid BamEnums::BamTextureMode (" << (int)btm << ")**";
97 }
98 
99 istream &
100 operator >> (istream &in, BamEnums::BamTextureMode &btm) {
101  string word;
102  in >> word;
103 
104  if (cmp_nocase(word, "unchanged") == 0) {
105  btm = BamEnums::BTM_unchanged;
106  } else if (cmp_nocase(word, "fullpath") == 0) {
107  btm = BamEnums::BTM_fullpath;
108  } else if (cmp_nocase(word, "relative") == 0) {
109  btm = BamEnums::BTM_relative;
110  } else if (cmp_nocase(word, "basename") == 0) {
111  btm = BamEnums::BTM_basename;
112  } else if (cmp_nocase(word, "rawdata") == 0) {
113  btm = BamEnums::BTM_rawdata;
114 
115  } else {
116  util_cat->error() << "Invalid BamEnums::BamTextureMode value: " << word << "\n";
117  btm = BamEnums::BTM_relative;
118  }
119 
120  return in;
121 }