1 /*
2 * Types.cpp
3 *
4 * Copyright (C) 2003 J. "MUFTI" Scheurich
5 *
6 * automatic (via configure) generated file, direct change is useless.
7 * change batch/mkSFMFTypes.sh instead
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program (see the file "COPYING" for details); if
21 * not, write to the Free Software Foundation, Inc., 675 Mass Ave,
22 * Cambridge, MA 02139, USA.
23 */
24
25 #include "Types.h"
26 #include "parser.h"
27
28 #include "SFMFTypes.h"
29
30 FieldValue* defaultTypeArray[] =
31 {
32 new MFBool(),
33 new MFColor(),
34 new MFColorRGBA(),
35 new MFDouble(),
36 new MFFloat(),
37 new MFInt32(),
38 new MFMatrix3f(),
39 new MFMatrix4f(),
40 new MFNode(),
41 new MFRotation(),
42 new MFString(),
43 new MFTime(),
44 new MFVec2d(),
45 new MFVec2f(),
46 new MFVec3d(),
47 new MFVec3f(),
48 new MFVec4f(),
49 new SFBool(),
50 new SFColor(),
51 new SFColorRGBA(),
52 new SFDouble(),
53 new SFFloat(),
54 new SFImage(),
55 new SFInt32(),
56 new SFMatrix3f(),
57 new SFMatrix4f(),
58 new SFNode(),
59 new SFRotation(),
60 new SFString(),
61 new SFTime(),
62 new SFVec2d(),
63 new SFVec2f(),
64 new SFVec3d(),
65 new SFVec3f(),
66 new SFVec4f(),
67 };
68
69 int
typeStringToEnum(const char * str)70 typeStringToEnum(const char* str)
71 {
72 int len = sizeof(defaultTypeArray)/sizeof(FieldValue*);
73 for (int i = 0; i < len; i++)
74 if (strcmp(defaultTypeArray[i]->getTypeName(),str)==0)
75 return defaultTypeArray[i]->getType();
76 return -1;
77 }
78
79 const char*
typeEnumToString(int type)80 typeEnumToString(int type)
81 {
82 return defaultTypeArray[type]->getTypeName();
83 }
84
typeDefaultValue(int type)85 FieldValue *typeDefaultValue(int type)
86 {
87 FieldValue *ret = defaultTypeArray[type]->copy();
88 ret->setIsDefaultValue();
89 return ret;
90 }
91
getTypeC(int type,int languageFlag)92 const char *getTypeC(int type, int languageFlag)
93 {
94 return defaultTypeArray[type]->getTypeC(languageFlag);
95 }
96
isArrayInC(int type)97 bool isArrayInC(int type)
98 {
99 return defaultTypeArray[type]->isArrayInC();
100 }
101
getSFType(int type)102 int getSFType(int type)
103 {
104 switch(type) {
105 case MFBOOL:
106 return SFBOOL;
107 case MFCOLOR:
108 return SFCOLOR;
109 case MFCOLORRGBA:
110 return SFCOLORRGBA;
111 case MFDOUBLE:
112 return SFDOUBLE;
113 case MFFLOAT:
114 return SFFLOAT;
115 case MFINT32:
116 return SFINT32;
117 case MFMATRIX3F:
118 return SFMATRIX3F;
119 case MFMATRIX4F:
120 return SFMATRIX4F;
121 case MFNODE:
122 return SFNODE;
123 case MFROTATION:
124 return SFROTATION;
125 case MFSTRING:
126 return SFSTRING;
127 case MFTIME:
128 return SFTIME;
129 case MFVEC2D:
130 return SFVEC2D;
131 case MFVEC2F:
132 return SFVEC2F;
133 case MFVEC3D:
134 return SFVEC3D;
135 case MFVEC3F:
136 return SFVEC3F;
137 case MFVEC4F:
138 return SFVEC4F;
139 }
140 return type;
141 }
142
isMFType(int type)143 bool isMFType(int type)
144 {
145 switch(type) {
146 case MFBOOL:
147 return true;
148 case MFCOLOR:
149 return true;
150 case MFCOLORRGBA:
151 return true;
152 case MFDOUBLE:
153 return true;
154 case MFFLOAT:
155 return true;
156 case MFINT32:
157 return true;
158 case MFMATRIX3F:
159 return true;
160 case MFMATRIX4F:
161 return true;
162 case MFNODE:
163 return true;
164 case MFROTATION:
165 return true;
166 case MFSTRING:
167 return true;
168 case MFTIME:
169 return true;
170 case MFVEC2D:
171 return true;
172 case MFVEC2F:
173 return true;
174 case MFVEC3D:
175 return true;
176 case MFVEC3F:
177 return true;
178 case MFVEC4F:
179 return true;
180 }
181 return false;
182 }
183