00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "geomEnums.h"
00016 #include "string_utils.h"
00017 #include "config_gobj.h"
00018
00019
00020
00021
00022
00023
00024 ostream &
00025 operator << (ostream &out, GeomEnums::UsageHint usage_hint) {
00026 switch (usage_hint) {
00027 case GeomEnums::UH_client:
00028 return out << "client";
00029
00030 case GeomEnums::UH_stream:
00031 return out << "stream";
00032
00033 case GeomEnums::UH_dynamic:
00034 return out << "dynamic";
00035
00036 case GeomEnums::UH_static:
00037 return out << "static";
00038
00039 case GeomEnums::UH_unspecified:
00040 return out << "unspecified";
00041 }
00042
00043 return out << "**invalid usage hint (" << (int)usage_hint << ")**";
00044 }
00045
00046
00047
00048
00049
00050 istream &
00051 operator >> (istream &in, GeomEnums::UsageHint &usage_hint) {
00052 string word;
00053 in >> word;
00054
00055 if (cmp_nocase(word, "client") == 0) {
00056 usage_hint = GeomEnums::UH_client;
00057 } else if (cmp_nocase(word, "stream") == 0) {
00058 usage_hint = GeomEnums::UH_stream;
00059 } else if (cmp_nocase(word, "dynamic") == 0) {
00060 usage_hint = GeomEnums::UH_dynamic;
00061 } else if (cmp_nocase(word, "static") == 0) {
00062 usage_hint = GeomEnums::UH_static;
00063 } else if (cmp_nocase(word, "unspecified") == 0) {
00064 usage_hint = GeomEnums::UH_unspecified;
00065
00066 } else {
00067 gobj_cat->error() << "Invalid usage hint value: " << word << "\n";
00068 usage_hint = GeomEnums::UH_unspecified;
00069 }
00070
00071 return in;
00072 }
00073
00074
00075
00076
00077
00078 ostream &
00079 operator << (ostream &out, GeomEnums::NumericType numeric_type) {
00080 switch (numeric_type) {
00081 case GeomEnums::NT_uint8:
00082 return out << "uint8";
00083
00084 case GeomEnums::NT_uint16:
00085 return out << "uint16";
00086
00087 case GeomEnums::NT_uint32:
00088 return out << "uint32";
00089
00090 case GeomEnums::NT_packed_dcba:
00091 return out << "packed_dcba";
00092
00093 case GeomEnums::NT_packed_dabc:
00094 return out << "packed_dabc";
00095
00096 case GeomEnums::NT_float32:
00097 return out << "float32";
00098
00099 case GeomEnums::NT_float64:
00100 return out << "float64";
00101
00102 case GeomEnums::NT_stdfloat:
00103 return out << "stdfloat";
00104 }
00105
00106 return out << "**invalid numeric type (" << (int)numeric_type << ")**";
00107 }
00108
00109
00110
00111
00112
00113 ostream &
00114 operator << (ostream &out, GeomEnums::Contents contents) {
00115 switch (contents) {
00116 case GeomEnums::C_other:
00117 return out << "other";
00118
00119 case GeomEnums::C_point:
00120 return out << "point";
00121
00122 case GeomEnums::C_clip_point:
00123 return out << "clip_point";
00124
00125 case GeomEnums::C_vector:
00126 return out << "vector";
00127
00128 case GeomEnums::C_texcoord:
00129 return out << "texcoord";
00130
00131 case GeomEnums::C_color:
00132 return out << "color";
00133
00134 case GeomEnums::C_index:
00135 return out << "index";
00136
00137 case GeomEnums::C_morph_delta:
00138 return out << "morph_delta";
00139 }
00140
00141 return out << "**invalid contents (" << (int)contents << ")**";
00142 }