15 #include "geomEnums.h" 16 #include "string_utils.h" 17 #include "config_gobj.h" 25 operator << (ostream &out, GeomEnums::UsageHint usage_hint) {
27 case GeomEnums::UH_client:
28 return out <<
"client";
30 case GeomEnums::UH_stream:
31 return out <<
"stream";
33 case GeomEnums::UH_dynamic:
34 return out <<
"dynamic";
36 case GeomEnums::UH_static:
37 return out <<
"static";
39 case GeomEnums::UH_unspecified:
40 return out <<
"unspecified";
43 return out <<
"**invalid usage hint (" << (int)usage_hint <<
")**";
51 operator >> (istream &in, GeomEnums::UsageHint &usage_hint) {
55 if (cmp_nocase(word,
"client") == 0) {
56 usage_hint = GeomEnums::UH_client;
57 }
else if (cmp_nocase(word,
"stream") == 0) {
58 usage_hint = GeomEnums::UH_stream;
59 }
else if (cmp_nocase(word,
"dynamic") == 0) {
60 usage_hint = GeomEnums::UH_dynamic;
61 }
else if (cmp_nocase(word,
"static") == 0) {
62 usage_hint = GeomEnums::UH_static;
63 }
else if (cmp_nocase(word,
"unspecified") == 0) {
64 usage_hint = GeomEnums::UH_unspecified;
67 gobj_cat->error() <<
"Invalid usage hint value: " << word <<
"\n";
68 usage_hint = GeomEnums::UH_unspecified;
79 operator << (ostream &out, GeomEnums::NumericType numeric_type) {
80 switch (numeric_type) {
81 case GeomEnums::NT_uint8:
82 return out <<
"uint8";
84 case GeomEnums::NT_uint16:
85 return out <<
"uint16";
87 case GeomEnums::NT_uint32:
88 return out <<
"uint32";
90 case GeomEnums::NT_packed_dcba:
91 return out <<
"packed_dcba";
93 case GeomEnums::NT_packed_dabc:
94 return out <<
"packed_dabc";
96 case GeomEnums::NT_float32:
97 return out <<
"float32";
99 case GeomEnums::NT_float64:
100 return out <<
"float64";
102 case GeomEnums::NT_stdfloat:
103 return out <<
"stdfloat";
106 return out <<
"**invalid numeric type (" << (int)numeric_type <<
")**";
114 operator << (ostream &out, GeomEnums::Contents contents) {
116 case GeomEnums::C_other:
117 return out <<
"other";
119 case GeomEnums::C_point:
120 return out <<
"point";
122 case GeomEnums::C_clip_point:
123 return out <<
"clip_point";
125 case GeomEnums::C_vector:
126 return out <<
"vector";
128 case GeomEnums::C_texcoord:
129 return out <<
"texcoord";
131 case GeomEnums::C_color:
132 return out <<
"color";
134 case GeomEnums::C_index:
135 return out <<
"index";
137 case GeomEnums::C_morph_delta:
138 return out <<
"morph_delta";
140 case GeomEnums::C_matrix:
141 return out <<
"matrix";
143 case GeomEnums::C_normal:
144 return out <<
"normal";
147 return out <<
"**invalid contents (" << (int)contents <<
")**";