Panda3D
Loading...
Searching...
No Matches
geomEnums.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 geomEnums.cxx
10 * @author drose
11 * @date 2005-04-14
12 */
13
14#include "geomEnums.h"
15#include "string_utils.h"
16#include "config_gobj.h"
17
18using std::istream;
19using std::ostream;
20using std::string;
21
22
23/**
24 *
25 */
26ostream &
27operator << (ostream &out, GeomEnums::UsageHint usage_hint) {
28 switch (usage_hint) {
29 case GeomEnums::UH_client:
30 return out << "client";
31
32 case GeomEnums::UH_stream:
33 return out << "stream";
34
35 case GeomEnums::UH_dynamic:
36 return out << "dynamic";
37
38 case GeomEnums::UH_static:
39 return out << "static";
40
41 case GeomEnums::UH_unspecified:
42 return out << "unspecified";
43 }
44
45 return out << "**invalid usage hint (" << (int)usage_hint << ")**";
46}
47
48/**
49 *
50 */
51istream &
52operator >> (istream &in, GeomEnums::UsageHint &usage_hint) {
53 string word;
54 in >> word;
55
56 if (cmp_nocase(word, "client") == 0) {
57 usage_hint = GeomEnums::UH_client;
58 } else if (cmp_nocase(word, "stream") == 0) {
59 usage_hint = GeomEnums::UH_stream;
60 } else if (cmp_nocase(word, "dynamic") == 0) {
61 usage_hint = GeomEnums::UH_dynamic;
62 } else if (cmp_nocase(word, "static") == 0) {
63 usage_hint = GeomEnums::UH_static;
64 } else if (cmp_nocase(word, "unspecified") == 0) {
65 usage_hint = GeomEnums::UH_unspecified;
66
67 } else {
68 gobj_cat->error() << "Invalid usage hint value: " << word << "\n";
69 usage_hint = GeomEnums::UH_unspecified;
70 }
71
72 return in;
73}
74
75/**
76 *
77 */
78ostream &
79operator << (ostream &out, GeomEnums::NumericType numeric_type) {
80 switch (numeric_type) {
81 case GeomEnums::NT_uint8:
82 return out << "uint8";
83
84 case GeomEnums::NT_uint16:
85 return out << "uint16";
86
87 case GeomEnums::NT_uint32:
88 return out << "uint32";
89
90 case GeomEnums::NT_packed_dcba:
91 return out << "packed_dcba";
92
93 case GeomEnums::NT_packed_dabc:
94 return out << "packed_dabc";
95
96 case GeomEnums::NT_float32:
97 return out << "float32";
98
99 case GeomEnums::NT_float64:
100 return out << "float64";
101
102 case GeomEnums::NT_stdfloat:
103 return out << "stdfloat";
104
105 case GeomEnums::NT_int8:
106 return out << "int8";
107
108 case GeomEnums::NT_int16:
109 return out << "int16";
110
111 case GeomEnums::NT_int32:
112 return out << "int32";
113
114 case GeomEnums::NT_packed_ufloat:
115 return out << "packed_ufloat";
116 }
117
118 return out << "**invalid numeric type (" << (int)numeric_type << ")**";
119}
120
121/**
122 *
123 */
124ostream &
125operator << (ostream &out, GeomEnums::Contents contents) {
126 switch (contents) {
127 case GeomEnums::C_other:
128 return out << "other";
129
130 case GeomEnums::C_point:
131 return out << "point";
132
133 case GeomEnums::C_clip_point:
134 return out << "clip_point";
135
136 case GeomEnums::C_vector:
137 return out << "vector";
138
139 case GeomEnums::C_texcoord:
140 return out << "texcoord";
141
142 case GeomEnums::C_color:
143 return out << "color";
144
145 case GeomEnums::C_index:
146 return out << "index";
147
148 case GeomEnums::C_morph_delta:
149 return out << "morph_delta";
150
151 case GeomEnums::C_matrix:
152 return out << "matrix";
153
154 case GeomEnums::C_normal:
155 return out << "normal";
156 }
157
158 return out << "**invalid contents (" << (int)contents << ")**";
159}
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.