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