FreeWRL / FreeX3D 4.3.0
jsVRMLClasses_sm.h
1/*
2
3
4Complex VRML nodes as Javascript classes.
5
6*/
7
8/****************************************************************************
9 This file is part of the FreeWRL/FreeX3D Distribution.
10
11 Copyright 2009 CRC Canada. (http://www.crc.gc.ca)
12
13 FreeWRL/FreeX3D is free software: you can redistribute it and/or modify
14 it under the terms of the GNU Lesser Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 FreeWRL/FreeX3D is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with FreeWRL/FreeX3D. If not, see <http://www.gnu.org/licenses/>.
25****************************************************************************/
26
27
28#ifndef __FREEWRL_JS_VRML_CLASSES_H__
29#define __FREEWRL_JS_VRML_CLASSES_H__
30
31#ifndef UNUSED
32#define UNUSED(v) ((void) v)
33#endif
34
35#define INIT_ARGC_NODE 1
36#define INIT_ARGC 0
37
38/* tie a node into the root. Currently not required, as we do a better job
39of garbage collection
40... NOTE! JS_AddRoot and JS_RemoveRoot is DEPRECATED as of JS_VERSION 185*/
41#define ADD_ROOT(a,b) \
42 /* printf ("adding root cx %u pointer %u value %u\n",a,&b,b); \
43 if (JS_AddRoot(a,&b) != JS_TRUE) { \
44 printf ("JA_AddRoot failed at %s:%d\n",__FILE__,__LINE__); \
45 return JS_FALSE; \
46 } */
47
48#define REMOVE_ROOT(a,b) \
49 /* printf ("removing root %u\n",b); \
50 JS_RemoveRoot(a,&b); */
51
52//#define MF_LENGTH_FIELD "mf_len"
53#define MF_LENGTH_FIELD "length"
54
55#define DEFINE_LENGTH(this_context,this_object,this_length) \
56 {jsval zimbo = INT_TO_JSVAL(this_length);\
57 /* printf ("defining length to %d for %d %d\n",this_length,this_context,this_object);*/ \
58 if (!JS_DefineProperty(this_context, this_object, MF_LENGTH_FIELD, zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
59 ConsoleMessage( "JS_DefineProperty failed for \"%s\" at %s:%d.\n",MF_LENGTH_FIELD,__FILE__,__LINE__); \
60 return JS_FALSE;\
61 }}
62
63#define DEFINE_LENGTH_NORV(this_context,this_object,this_length) \
64 {jsval zimbo = INT_TO_JSVAL(this_length);\
65 /* printf ("defining length to %d for %d %d\n",this_length,this_context,this_object);*/ \
66 if (!JS_DefineProperty(this_context, this_object, MF_LENGTH_FIELD, zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
67 ConsoleMessage( "JS_DefineProperty failed for \"%s\" at %s:%d.\n",MF_LENGTH_FIELD,__FILE__,__LINE__); \
68 return;\
69 }}
70
71#define DEFINE_MF_ECMA_HAS_CHANGED \
72 {jsval zimbo = INT_TO_JSVAL(0); \
73 /* printf ("defining property for MF_ECMA_HAS_CHANGED... %d %d ",cx,obj); */ \
74 if (!JS_DefineProperty(cx, obj, "MF_ECMA_has_changed", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
75 printf( "JS_DefineProperty failed for \"MF_ECMA_has_changed\" at %s:%d.\n",__FILE__,__LINE__); \
76 /* printf ("myThread is %u\n",pthread_self()); */ \
77 return JS_FALSE; \
78 }}
79
80#define SET_MF_ECMA_HAS_CHANGED { jsval myv; \
81 myv = INT_TO_JSVAL(1); \
82 /* printf ("setting property for MF_ECMA_has_changed %d %d\n",cx,obj); */ \
83 if (!JS_SetProperty(cx, obj, "MF_ECMA_has_changed", &myv)) { \
84 printf( "JS_SetProperty failed for \"MF_ECMA_has_changed\" in doMFSetProperty.\n"); \
85 return JS_FALSE; \
86 }}
87
88
89#define SET_JS_TICKTIME { jsval zimbo; \
90 JS_NewNumberValue(cx, TickTime(), &zimbo); \
91 if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
92 printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \
93 return; \
94 }}
95
96#define COMPILE_FUNCTION_IF_NEEDED(tnfield) \
97 if (JSparamnames[tnfield].eventInFunction == NULL) { \
98 sprintf (scriptline,"%s%s(%s%s,__eventInTickTime)", "",JSparamnames[tnfield].name,"__eventIn_Value_",JSparamnames[tnfield].name); \
99 /* printf ("compiling function %s for type %d\n",scriptline,JSparamnames[tnfield].type); */ \
100 JSparamnames[tnfield].eventInFunction = (void*)JS_CompileScript( \
101 cx, obj, scriptline, strlen(scriptline), "compile eventIn",1); \
102 if (!JS_AddObjectRoot(cx,(JSObject**)(&JSparamnames[tnfield].eventInFunction))) { \
103 printf( "JS_AddObjectRoot failed for compilation of script \"%s\" at %s:%d.\n",scriptline,__FILE__,__LINE__); \
104 return; \
105 } \
106 }
107#define COMPILE_FUNCTION_IF_NEEDED_SET(tnfield,kind) \
108 if (JSparamnames[tnfield].eventInFunction == NULL) { \
109 if(kind == PKW_inputOutput) \
110 sprintf (scriptline,"set_%s(%s,__eventInTickTime)", JSparamnames[tnfield].name,JSparamnames[tnfield].name); \
111 else /* PKW_inputOnly */ \
112 sprintf (scriptline,"%s(%s%s,__eventInTickTime)", JSparamnames[tnfield].name,"__eventIn_Value_",JSparamnames[tnfield].name); \
113 /* printf ("compiling function %s for type %d\n",scriptline,JSparamnames[tnfield].type); */ \
114 JSparamnames[tnfield].eventInFunction = (void*)JS_CompileScript( \
115 cx, obj, scriptline, strlen(scriptline), "compile eventIn",1); \
116 if (!JS_AddObjectRoot(cx,(JSObject**)(&JSparamnames[tnfield].eventInFunction))) { \
117 printf( "JS_AddObjectRoot failed for compilation of script \"%s\" at %s:%d.\n",scriptline,__FILE__,__LINE__); \
118 return; \
119 } \
120 }
121
122#define RUN_FUNCTION(tnfield) \
123 { \
124 jsval zimbo; \
125 if (!JS_ExecuteScript(cx, obj, (JSScript*)JSparamnames[tnfield].eventInFunction, &zimbo)) { \
126 printf ("eventIn %s failed to complete successfully, in FreeWRL code %s:%d\n",JSparamnames[tnfield].name,__FILE__,__LINE__); \
127 /* printf ("myThread is %u\n",pthread_self());*/ \
128 } \
129 }
130
131
132#define SET_LENGTH(cx,newMFObject,length) \
133 { \
134 jsval lenval; \
135 lenval = INT_TO_JSVAL(length); \
136 if (!JS_SetProperty(cx, newMFObject, MF_LENGTH_FIELD, &lenval)) { \
137 printf( "JS_SetProperty failed for \"%s\" at %s:%d\n", MF_LENGTH_FIELD,__FILE__,__LINE__); \
138 return; \
139 } \
140 }
141
142#define SET_EVENTIN_VALUE(cx,obj,nameIndex,newObj) \
143 { \
144 char scriptline[100]; \
145 sprintf (scriptline,"__eventIn_Value_%s", JSparamnames[nameIndex].name); \
146 if (!JS_DefineProperty(cx,obj, scriptline, OBJECT_TO_JSVAL(newObj), JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
147 printf( "JS_DefineProperty failed for \"ECMA in\" at %s:%d.\n",__FILE__,__LINE__); \
148 /* printf ("myThread is %u\n",pthread_self()); */ \
149 return; \
150 } \
151 }
152
153
154/*
155 * The following VRML field types don't need JS classes:
156 * (ECMAScript native datatypes, see JS.pm):
157 *
158 * * SFBool
159 * * SFFloat
160 * * SFInt32
161 * * SFString
162 * * SFTime
163 *
164 * VRML field types that are implemented here as Javascript classes
165 * are:
166 *
167 * * SFColor, MFColor
168 * * MFFloat
169 * * SFImage -- not supported currently
170 * * MFInt32
171 * * SFNode (special case - must be supported perl (see JS.pm), MFNode
172 * * SFRotation, MFRotation
173 * * MFString
174 * * MFTime
175 * * SFVec2f, MFVec2f
176 * * SFVec3f, MFVec3f
177 * * SFVec3d
178 *
179 * These (single value) fields have struct types defined elsewhere
180 * (see Structs.h) that are stored by Javascript classes as private data.
181 *
182 * Some of the computations for SFVec3f, SFRotation are now defined
183 * elsewhere (see LinearAlgebra.h) to avoid duplication.
184 */
185
186
187/* helper functions */
188void JS_MY_Finalize(JSFreeOp *fop, JSObject *obj);
189
190
191JSBool doMFToString(JSContext *cx, JSObject *obj, const char *className, jsval *rval);
192
193JSBool doMFAddProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp, const char *name);
194JSBool doMFSetProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp, int type);
195
196JSBool getBrowser(JSContext *context, JSObject *obj, BrowserNative **brow);
197JSBool doMFStringUnquote(JSContext *cx, jsval *vp);
198
199
200/* class functions */
201
202
203JSBool globalResolve(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid);
204
205
206JSBool
207loadVrmlClasses(JSContext *context,
208 JSObject *globalObj);
209
210
211
212JSBool getECMANative(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
213
214JSBool setECMANative(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
215
216
217
218JSBool getAssignProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
219
220
221JSBool setAssignProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
222
223
224JSBool SFColorGetHSV(JSContext *cx, uintN argc, jsval *vp);
225JSBool SFColorSetHSV(JSContext *cx, uintN argc, jsval *vp);
226JSBool SFColorToString(JSContext *cx, uintN argc, jsval *vp);
227JSBool SFColorAssign(JSContext *cx, uintN argc, jsval *vp);
228JSBool SFColorConstr(JSContext *cx, uintN argc, jsval *vp);
229
230
231JSBool SFColorGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
232JSBool SFColorSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
233
234
235
236JSBool SFColorRGBAGetHSV(JSContext *cx, uintN argc, jsval *vp);
237JSBool SFColorRGBASetHSV(JSContext *cx, uintN argc, jsval *vp);
238JSBool SFColorRGBAToString(JSContext *cx, uintN argc, jsval *vp);
239JSBool SFColorRGBAAssign(JSContext *cx, uintN argc, jsval *vp);
240JSBool SFColorRGBAConstr(JSContext *cx, uintN argc, jsval *vp);
241
242
243JSBool SFColorRGBAGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
244JSBool SFColorRGBASetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
245
246
247JSBool SFImageToString(JSContext *cx, uintN argc,jsval *vp);
248JSBool SFImageAssign(JSContext *cx, uintN argc, jsval *vp);
249JSBool SFImageConstr(JSContext *cx, uintN argc, jsval *vp);
250
251
252
253
254JSBool SFImageGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
255JSBool SFImageSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
256
257
258
259JSBool SFNodeToString(JSContext *cx, uintN argc, jsval *vp);
260JSBool SFNodeValueOf(JSContext *cx, uintN argc, jsval *vp);
261JSBool SFNodeAssign(JSContext *cx, uintN argc, jsval *vp);
262JSBool SFNodeEquals(JSContext *cx, uintN argc, jsval *vp);
263JSBool SFNodeConstr(JSContext *cx, uintN argc, jsval *vp);
264
265
266
267void SFNodeFinalize(JSFreeOp *fop, JSObject *obj);
268
269JSBool SFNodeGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
270JSBool SFNodeSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
271
272
273JSBool SFRotationGetAxis(JSContext *cx, uintN argc, jsval *vp);
274JSBool SFRotationInverse(JSContext *cx, uintN argc, jsval *vp); /* not implemented */
275JSBool SFRotationMultiply(JSContext *cx, uintN argc, jsval *vp);
276JSBool SFRotationMultVec(JSContext *cx, uintN argc, jsval *vp);
277JSBool SFRotationSetAxis(JSContext *cx, uintN argc, jsval *vp);
278JSBool SFRotationSlerp(JSContext *cx, uintN argc, jsval *vp);
279JSBool SFRotationToString(JSContext *cx, uintN argc, jsval *vp);
280JSBool SFRotationAssign(JSContext *cx, uintN argc, jsval *vp);
281JSBool SFRotationConstr(JSContext *cx, uintN argc, jsval *vp);
282
283
284
285
286JSBool SFRotationGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
287JSBool SFRotationSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
288
289
290
291JSBool SFVec2fAdd(JSContext *cx, uintN argc, jsval *vp);
292JSBool SFVec2fDivide(JSContext *cx, uintN argc, jsval *vp);
293JSBool SFVec2fDot(JSContext *cx, uintN argc, jsval *vp);
294JSBool SFVec2fLength(JSContext *cx, uintN argc, jsval *vp);
295JSBool SFVec2fMultiply(JSContext *cx, uintN argc, jsval *vp);
296/* JSBool SFVec2fNegate(JSContext *cx, uintN argc, jsval *vp); */
297JSBool SFVec2fNormalize(JSContext *cx, uintN argc, jsval *vp);
298JSBool SFVec2fSubtract(JSContext *cx, uintN argc, jsval *vp);
299JSBool SFVec2fToString(JSContext *cx, uintN argc, jsval *vp);
300JSBool SFVec2fAssign(JSContext *cx, uintN argc, jsval *vp);
301JSBool SFVec2fConstr(JSContext *cx, uintN argc, jsval *vp);
302
303
304JSBool SFVec2fGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
305JSBool SFVec2fSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
306
307
308
309JSBool SFVec3fAdd(JSContext *cx, uintN argc, jsval *vp);
310JSBool SFVec3fCross(JSContext *cx, uintN argc, jsval *vp);
311JSBool SFVec3fDivide(JSContext *cx, uintN argc, jsval *vp);
312JSBool SFVec3fDot(JSContext *cx, uintN argc, jsval *vp);
313JSBool SFVec3fLength(JSContext *cx, uintN argc, jsval *vp);
314JSBool SFVec3fMultiply(JSContext *cx, uintN argc, jsval *vp);
315JSBool SFVec3fNegate(JSContext *cx, uintN argc, jsval *vp);
316JSBool SFVec3fNormalize(JSContext *cx, uintN argc, jsval *vp);
317JSBool SFVec3fSubtract(JSContext *cx, uintN argc, jsval *vp);
318JSBool SFVec3fToString(JSContext *cx, uintN argc, jsval *vp);
319JSBool SFVec3fAssign(JSContext *cx, uintN argc, jsval *vp);
320JSBool SFVec3fConstr(JSContext *cx, uintN argc, jsval *vp);
321JSBool SFVec3fGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
322JSBool SFVec3fSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
323
324JSBool SFVec2dAdd(JSContext* cx, uintN argc, jsval* vp);
325JSBool SFVec2dDivide(JSContext* cx, uintN argc, jsval* vp);
326JSBool SFVec2dDot(JSContext* cx, uintN argc, jsval* vp);
327JSBool SFVec2dLength(JSContext* cx, uintN argc, jsval* vp);
328JSBool SFVec2dMultiply(JSContext* cx, uintN argc, jsval* vp);
329/* JSBool SFVec2fNegate(JSContext *cx, uintN argc, jsval *vp); */
330JSBool SFVec2dNormalize(JSContext* cx, uintN argc, jsval* vp);
331JSBool SFVec2dSubtract(JSContext* cx, uintN argc, jsval* vp);
332JSBool SFVec2dToString(JSContext* cx, uintN argc, jsval* vp);
333JSBool SFVec2dAssign(JSContext* cx, uintN argc, jsval* vp);
334JSBool SFVec2dConstr(JSContext* cx, uintN argc, jsval* vp);
335
336
337JSBool SFVec2dGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
338JSBool SFVec2dSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
339
340
341
342
343JSBool SFVec3dAdd(JSContext *cx, uintN argc, jsval *vp);
344JSBool SFVec3dCross(JSContext *cx, uintN argc, jsval *vp);
345JSBool SFVec3dDivide(JSContext *cx, uintN argc, jsval *vp);
346JSBool SFVec3dDot(JSContext *cx, uintN argc, jsval *vp);
347JSBool SFVec3dLength(JSContext *cx, uintN argc, jsval *vp);
348JSBool SFVec3dMultiply(JSContext *cx, uintN argc, jsval *vp);
349JSBool SFVec3dNegate(JSContext *cx, uintN argc, jsval *vp);
350JSBool SFVec3dNormalize(JSContext *cx, uintN argc, jsval *vp);
351JSBool SFVec3dSubtract(JSContext *cx, uintN argc, jsval *vp);
352JSBool SFVec3dToString(JSContext *cx, uintN argc, jsval *vp);
353JSBool SFVec3dAssign(JSContext *cx, uintN argc, jsval *vp);
354JSBool SFVec3dConstr(JSContext *cx, uintN argc, jsval *vp);
355
356JSBool SFVec3dGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
357JSBool SFVec3dSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
358
359
360
361
362JSBool SFVec4fToString(JSContext *cx, uintN argc, jsval *vp);
363JSBool SFVec4fAssign(JSContext *cx, uintN argc, jsval *vp);
364JSBool SFVec4fConstr(JSContext *cx, uintN argc, jsval *vp);
365
366JSBool SFVec4fGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
367JSBool SFVec4fSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
368
369JSBool SFVec4dToString(JSContext *cx, uintN argc, jsval *vp);
370JSBool SFVec4dAssign(JSContext *cx, uintN argc, jsval *vp);
371JSBool SFVec4dConstr(JSContext *cx, uintN argc, jsval *vp);
372JSBool SFVec4dGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
373JSBool SFVec4dSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
374
375JSBool SFMatrix3fToString(JSContext* cx, uintN argc, jsval* vp);
376JSBool SFMatrix3fAssign(JSContext* cx, uintN argc, jsval* vp);
377JSBool SFMatrix3fConstr(JSContext* cx, uintN argc, jsval* vp);
378JSBool SFMatrix3fGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
379JSBool SFMatrix3fSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
380
381JSBool SFMatrix4fToString(JSContext* cx, uintN argc, jsval* vp);
382JSBool SFMatrix4fAssign(JSContext* cx, uintN argc, jsval* vp);
383JSBool SFMatrix4fConstr(JSContext* cx, uintN argc, jsval* vp);
384JSBool SFMatrix4fGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
385JSBool SFMatrix4fSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
386
387JSBool SFMatrix3dToString(JSContext* cx, uintN argc, jsval* vp);
388JSBool SFMatrix3dAssign(JSContext* cx, uintN argc, jsval* vp);
389JSBool SFMatrix3dConstr(JSContext* cx, uintN argc, jsval* vp);
390JSBool SFMatrix3dGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
391JSBool SFMatrix3dSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
392
393JSBool SFMatrix4dToString(JSContext* cx, uintN argc, jsval* vp);
394JSBool SFMatrix4dAssign(JSContext* cx, uintN argc, jsval* vp);
395JSBool SFMatrix4dConstr(JSContext* cx, uintN argc, jsval* vp);
396JSBool SFMatrix4dGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
397JSBool SFMatrix4dSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
398
399JSBool MFColorToString(JSContext *cx, uintN argc, jsval *vp);
400JSBool MFColorAssign(JSContext *cx, uintN argc, jsval *vp);
401JSBool MFColorConstr(JSContext *cx, uintN argc, jsval *vp);
402JSBool MFColorConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
403
404JSBool MFColorAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
405JSBool MFColorGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
406JSBool MFColorSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
407
408JSBool MFColorRGBAToString(JSContext* cx, uintN argc, jsval* vp);
409JSBool MFColorRGBAAssign(JSContext* cx, uintN argc, jsval* vp);
410JSBool MFColorRGBAConstr(JSContext* cx, uintN argc, jsval* vp);
411JSBool MFColorRGBAConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
412
413JSBool MFColorRGBAAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
414JSBool MFColorRGBAGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
415JSBool MFColorRGBASetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
416
417
418JSBool MFFloatToString(JSContext *cx, uintN argc, jsval *vp);
419JSBool MFFloatAssign(JSContext *cx, uintN argc, jsval *vp);
420JSBool MFFloatConstr(JSContext *cx, uintN argc, jsval *vp);
421JSBool MFFloatConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
422
423
424JSBool MFFloatAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
425JSBool MFFloatGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
426JSBool MFFloatSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
427
428
429JSBool MFInt32ToString(JSContext *cx, uintN argc, jsval *vp);
430JSBool MFInt32Assign(JSContext *cx, uintN argc, jsval *vp);
431JSBool MFInt32Constr(JSContext *cx, uintN argc, jsval *vp);
432JSBool MFInt32ConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
433
434JSBool MFInt32AddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
435JSBool MFInt32GetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
436JSBool MFInt32SetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
437
438
439JSBool MFBoolToString(JSContext* cx, uintN argc, jsval* vp);
440JSBool MFBoolAssign(JSContext* cx, uintN argc, jsval* vp);
441JSBool MFBoolConstr(JSContext* cx, uintN argc, jsval* vp);
442JSBool MFBoolConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
443
444JSBool MFBoolAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
445JSBool MFBoolGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
446JSBool MFBoolSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
447
448
449JSBool MFNodeToString(JSContext *cx, uintN argc, jsval *vp);
450JSBool MFNodeAssign(JSContext *cx, uintN argc, jsval *vp);
451JSBool MFNodeConstr(JSContext *cx, uintN argc, jsval *vp);
452JSBool MFNodeConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
453
454JSBool MFNodeAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
455JSBool MFNodeGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
456JSBool MFNodeSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
457
458
459JSBool MFRotationToString(JSContext *cx, uintN argc, jsval *vp);
460JSBool MFRotationAssign(JSContext *cx, uintN argc, jsval *vp);
461JSBool MFRotationConstr(JSContext *cx, uintN argc, jsval *vp);
462JSBool MFRotationConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
463
464
465JSBool MFRotationAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
466JSBool MFRotationGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
467JSBool MFRotationSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
468
469
470JSBool MFStringToString(JSContext *cx, uintN argc, jsval *vp);
471JSBool MFStringAssign(JSContext *cx, uintN argc, jsval *vp);
472JSBool MFStringConstr(JSContext *cx, uintN argc, jsval *vp);
473JSBool MFStringConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
474
475
476JSBool MFStringConvertProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JSType type, JS::MutableHandle<JS::Value> hvp);
477JSBool MFStringEnumerateProperty(JSContext *cx, JS::Handle<JSObject*> hobj);
478JSBool MFStringDeleteProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool *succeeded);
479
480JSBool MFStringAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
481JSBool MFStringDeleteProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool *succeeded);
482JSBool MFStringGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
483JSBool MFStringSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
484JSBool MFStringResolveProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid);
485
486
487
488JSBool MFTimeToString(JSContext *cx, uintN argc, jsval *vp);
489JSBool MFTimeAssign(JSContext *cx, uintN argc, jsval *vp);
490JSBool MFTimeConstr(JSContext *cx, uintN argc, jsval *vp);
491JSBool MFTimeConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
492JSBool MFTimeAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
493JSBool MFTimeGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
494JSBool MFTimeSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
495
496JSBool MFDoubleToString(JSContext* cx, uintN argc, jsval* vp);
497JSBool MFDoubleAssign(JSContext* cx, uintN argc, jsval* vp);
498JSBool MFDoubleConstr(JSContext* cx, uintN argc, jsval* vp);
499JSBool MFDoubleConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
500JSBool MFDoubleAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
501JSBool MFDoubleGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
502JSBool MFDoubleSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
503
504
505
506JSBool MFVec2fToString(JSContext *cx, uintN argc, jsval *vp);
507JSBool MFVec2fAssign(JSContext *cx, uintN argc, jsval *vp);
508JSBool MFVec2fConstr(JSContext *cx, uintN argc, jsval *vp);
509JSBool MFVec2fConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
510
511
512
513JSBool MFVec2fAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
514JSBool MFVec2fGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
515JSBool MFVec2fSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
516
517
518JSBool MFVec3fToString(JSContext *cx, uintN argc, jsval *vp);
519JSBool MFVec3fAssign(JSContext *cx, uintN argc, jsval *vp);
520JSBool MFVec3fConstr(JSContext *cx, uintN argc, jsval *vp);
521JSBool MFVec3fConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
522JSBool MFVec3fAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
523JSBool MFVec3fGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
524JSBool MFVec3fSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
525
526JSBool MFVec4fToString(JSContext* cx, uintN argc, jsval* vp);
527JSBool MFVec4fAssign(JSContext* cx, uintN argc, jsval* vp);
528JSBool MFVec4fConstr(JSContext* cx, uintN argc, jsval* vp);
529JSBool MFVec4fConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
530JSBool MFVec4fAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
531JSBool MFVec4fGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
532JSBool MFVec4fSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
533
534JSBool MFVec2dToString(JSContext* cx, uintN argc, jsval* vp);
535JSBool MFVec2dAssign(JSContext* cx, uintN argc, jsval* vp);
536JSBool MFVec2dConstr(JSContext* cx, uintN argc, jsval* vp);
537JSBool MFVec2dConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
538JSBool MFVec2dAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
539JSBool MFVec2dGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
540JSBool MFVec2dSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
541
542JSBool MFVec3dToString(JSContext* cx, uintN argc, jsval* vp);
543JSBool MFVec3dAssign(JSContext* cx, uintN argc, jsval* vp);
544JSBool MFVec3dConstr(JSContext* cx, uintN argc, jsval* vp);
545JSBool MFVec3dConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
546JSBool MFVec3dAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
547JSBool MFVec3dGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
548JSBool MFVec3dSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
549
550JSBool MFVec4dToString(JSContext* cx, uintN argc, jsval* vp);
551JSBool MFVec4dAssign(JSContext* cx, uintN argc, jsval* vp);
552JSBool MFVec4dConstr(JSContext* cx, uintN argc, jsval* vp);
553JSBool MFVec4dConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
554JSBool MFVec4dAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
555JSBool MFVec4dGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
556JSBool MFVec4dSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
557
558JSBool MFMatrix3fToString(JSContext* cx, uintN argc, jsval* vp);
559JSBool MFMatrix3fAssign(JSContext* cx, uintN argc, jsval* vp);
560JSBool MFMatrix3fConstr(JSContext* cx, uintN argc, jsval* vp);
561JSBool MFMatrix3fConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
562JSBool MFMatrix3fAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
563JSBool MFMatrix3fGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
564JSBool MFMatrix3fSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
565
566JSBool MFMatrix4fToString(JSContext* cx, uintN argc, jsval* vp);
567JSBool MFMatrix4fAssign(JSContext* cx, uintN argc, jsval* vp);
568JSBool MFMatrix4fConstr(JSContext* cx, uintN argc, jsval* vp);
569JSBool MFMatrix4fConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
570JSBool MFMatrix4fAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
571JSBool MFMatrix4fGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
572JSBool MFMatrix4fSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
573
574JSBool MFMatrix3dToString(JSContext* cx, uintN argc, jsval* vp);
575JSBool MFMatrix3dAssign(JSContext* cx, uintN argc, jsval* vp);
576JSBool MFMatrix3dConstr(JSContext* cx, uintN argc, jsval* vp);
577JSBool MFMatrix3dConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
578JSBool MFMatrix3dAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
579JSBool MFMatrix3dGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
580JSBool MFMatrix3dSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
581
582JSBool MFMatrix4dToString(JSContext* cx, uintN argc, jsval* vp);
583JSBool MFMatrix4dAssign(JSContext* cx, uintN argc, jsval* vp);
584JSBool MFMatrix4dConstr(JSContext* cx, uintN argc, jsval* vp);
585JSBool MFMatrix4dConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
586JSBool MFMatrix4dAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
587JSBool MFMatrix4dGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
588JSBool MFMatrix4dSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
589
590JSBool MFImageToString(JSContext* cx, uintN argc, jsval* vp);
591JSBool MFImageAssign(JSContext* cx, uintN argc, jsval* vp);
592JSBool MFImageConstr(JSContext* cx, uintN argc, jsval* vp);
593JSBool MFImageConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
594JSBool MFImageAddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
595JSBool MFImageGetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
596JSBool MFImageSetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
597
598
599JSBool VrmlMatrixToString(JSContext *cx, uintN argc, jsval *vp);
600JSBool VrmlMatrixAssign(JSContext *cx, uintN argc, jsval *vp);
601JSBool VrmlMatrixsetTransform(JSContext *cx, uintN argc, jsval *vp);
602JSBool VrmlMatrixgetTransform(JSContext *cx, uintN argc, jsval *vp);
603JSBool VrmlMatrixinverse(JSContext *cx, uintN argc, jsval *vp);
604JSBool VrmlMatrixtranspose(JSContext *cx, uintN argc, jsval *vp);
605JSBool VrmlMatrixmultLeft(JSContext *cx, uintN argc, jsval *vp);
606JSBool VrmlMatrixmultRight(JSContext *cx, uintN argc, jsval *vp);
607JSBool VrmlMatrixmultVecMatrix(JSContext *cx, uintN argc, jsval *vp);
608JSBool VrmlMatrixmultMatrixVec(JSContext *cx, uintN argc, jsval *vp);
609JSBool VrmlMatrixConstr(JSContext *cx, uintN argc, jsval *vp);
610JSBool VrmlMatrixConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
611
612
613JSBool VrmlMatrixAddProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
614JSBool VrmlMatrixGetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
615JSBool VrmlMatrixSetProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
616
617JSBool X3DMatrix3ToString(JSContext* cx, uintN argc, jsval* vp);
618JSBool X3DMatrix3Assign(JSContext* cx, uintN argc, jsval* vp);
619JSBool X3DMatrix3setTransform(JSContext* cx, uintN argc, jsval* vp);
620JSBool X3DMatrix3getTransform(JSContext* cx, uintN argc, jsval* vp);
621JSBool X3DMatrix3inverse(JSContext* cx, uintN argc, jsval* vp);
622JSBool X3DMatrix3transpose(JSContext* cx, uintN argc, jsval* vp);
623JSBool X3DMatrix3multLeft(JSContext* cx, uintN argc, jsval* vp);
624JSBool X3DMatrix3multRight(JSContext* cx, uintN argc, jsval* vp);
625JSBool X3DMatrix3multVecMatrix(JSContext* cx, uintN argc, jsval* vp);
626JSBool X3DMatrix3multMatrixVec(JSContext* cx, uintN argc, jsval* vp);
627JSBool X3DMatrix3Constr(JSContext* cx, uintN argc, jsval* vp);
628JSBool X3DMatrix3ConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
629JSBool X3DMatrix3AddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
630JSBool X3DMatrix3GetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
631JSBool X3DMatrix3SetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
632
633JSBool X3DMatrix4ToString(JSContext* cx, uintN argc, jsval* vp);
634JSBool X3DMatrix4Assign(JSContext* cx, uintN argc, jsval* vp);
635JSBool X3DMatrix4setTransform(JSContext* cx, uintN argc, jsval* vp);
636JSBool X3DMatrix4getTransform(JSContext* cx, uintN argc, jsval* vp);
637JSBool X3DMatrix4inverse(JSContext* cx, uintN argc, jsval* vp);
638JSBool X3DMatrix4transpose(JSContext* cx, uintN argc, jsval* vp);
639JSBool X3DMatrix4multLeft(JSContext* cx, uintN argc, jsval* vp);
640JSBool X3DMatrix4multRight(JSContext* cx, uintN argc, jsval* vp);
641JSBool X3DMatrix4multVecMatrix(JSContext* cx, uintN argc, jsval* vp);
642JSBool X3DMatrix4multMatrixVec(JSContext* cx, uintN argc, jsval* vp);
643JSBool X3DMatrix4Constr(JSContext* cx, uintN argc, jsval* vp);
644JSBool X3DMatrix4ConstrInternals(JSContext* cx, JSObject* obj, uintN argc, jsval* argv, jsval* rval);
645JSBool X3DMatrix4AddProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
646JSBool X3DMatrix4GetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
647JSBool X3DMatrix4SetProperty(JSContext* cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
648
649
650JSBool _standardMFAssign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval, JSClass *myClass, int type);
651JSBool _standardMFGetProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp, const char *makeNewElement, int type);
652
653void printJSNodeType (JSContext *context, JSObject *myobj);
654
655extern JSClass SFColorClass;
656extern JSPropertySpec (SFColorProperties)[];
657extern JSFunctionSpec (SFColorFunctions)[];
658extern JSClass SFColorRGBAClass;
659extern JSPropertySpec (SFColorRGBAProperties)[];
660extern JSFunctionSpec (SFColorRGBAFunctions)[];
661extern JSClass SFImageClass;
662extern JSPropertySpec (SFImageProperties)[];
663extern JSFunctionSpec (SFImageFunctions)[];
664extern JSClass SFNodeClass;
665extern JSPropertySpec (SFNodeProperties)[];
666extern JSFunctionSpec (SFNodeFunctions)[];
667extern JSClass SFRotationClass;
668extern JSPropertySpec (SFRotationProperties)[];
669extern JSFunctionSpec (SFRotationFunctions)[];
670extern JSClass SFVec2fClass;
671extern JSPropertySpec (SFVec2fProperties)[];
672extern JSFunctionSpec (SFVec2fFunctions)[];
673extern JSClass SFVec3fClass;
674extern JSPropertySpec (SFVec3fProperties)[];
675extern JSFunctionSpec (SFVec3fFunctions)[];
676extern JSClass SFVec2dClass;
677extern JSPropertySpec(SFVecdfProperties)[];
678extern JSFunctionSpec(SFVecdfFunctions)[];
679extern JSClass SFVec3dClass;
680extern JSPropertySpec (SFVec3dProperties)[];
681extern JSFunctionSpec (SFVec3dFunctions)[];
682
683
684extern JSClass SFVec4fClass;
685extern JSPropertySpec (SFVec4fProperties)[];
686extern JSFunctionSpec (SFVec4fFunctions)[];
687extern JSClass SFVec4dClass;
688extern JSPropertySpec (SFVec4dProperties)[];
689extern JSFunctionSpec (SFVec4dFunctions)[];
690
691extern JSClass SFMatrix3fClass;
692extern JSPropertySpec(SFMatrix3fProperties)[];
693extern JSFunctionSpec(SFMatrix3fFunctions)[];
694extern JSClass SFMatrix4fClass;
695extern JSPropertySpec(SFMatrix4fProperties)[];
696extern JSFunctionSpec(SFMatrix4fFunctions)[];
697
698extern JSClass SFMatrix3dClass;
699extern JSPropertySpec(SFMatrix3dProperties)[];
700extern JSFunctionSpec(SFMatrix3dFunctions)[];
701extern JSClass SFMatrix4dClass;
702extern JSPropertySpec(SFMatrix4dProperties)[];
703extern JSFunctionSpec(SFMatrix4dFunctions)[];
704
705extern JSClass MFColorClass;
706extern JSFunctionSpec (MFColorFunctions)[];
707extern JSClass MFColorRGBAClass;
708extern JSFunctionSpec(MFColorRGBAFunctions)[];
709
710extern JSClass MFFloatClass;
711extern JSFunctionSpec (MFFloatFunctions)[];
712extern JSClass MFBoolClass;
713extern JSFunctionSpec (MFBoolFunctions)[];
714extern JSClass MFInt32Class;
715extern JSFunctionSpec (MFInt32Functions)[];
716extern JSClass MFNodeClass;
717extern JSFunctionSpec (MFNodeFunctions)[];
718extern JSClass MFRotationClass;
719extern JSFunctionSpec (MFRotationFunctions)[];
720extern JSClass MFStringClass;
721extern JSFunctionSpec (MFStringFunctions)[];
722extern JSClass MFTimeClass;
723extern JSPropertySpec (MFTimeProperties)[] ;
724extern JSFunctionSpec (MFTimeFunctions)[];
725extern JSClass MFDoubleClass;
726extern JSPropertySpec(MFDoubleProperties)[];
727extern JSFunctionSpec(MFDoubleFunctions)[];
728
729extern JSClass MFVec2fClass;
730extern JSFunctionSpec (MFVec2fFunctions)[];
731extern JSClass MFVec3fClass;
732extern JSFunctionSpec (MFVec3fFunctions)[];
733extern JSClass MFVec4fClass;
734extern JSFunctionSpec(MFVec4fFunctions)[];
735extern JSClass MFVec2dClass;
736extern JSFunctionSpec(MFVec2dFunctions)[];
737extern JSClass MFVec3dClass;
738extern JSFunctionSpec(MFVec3dFunctions)[];
739extern JSClass MFVec4dClass;
740extern JSFunctionSpec(MFVec4dFunctions)[];
741extern JSClass MFImageClass;
742extern JSFunctionSpec(MFImageFunctions)[];
743
744extern JSClass MFMatrix3fClass;
745extern JSFunctionSpec(MFMatrix3fFunctions)[];
746extern JSClass MFMatrix4fClass;
747extern JSFunctionSpec(MFMatrix4fFunctions)[];
748
749extern JSClass MFMatrix3dClass;
750extern JSFunctionSpec(MFMatrix3dFunctions)[];
751extern JSClass MFMatrix4dClass;
752extern JSFunctionSpec(MFMatrix4dFunctions)[];
753
754
755
756extern JSClass VrmlMatrixClass;
757extern JSFunctionSpec (VrmlMatrixFunctions)[];
758extern JSClass X3DMatrix3Class;
759extern JSFunctionSpec(X3DMatrix3Functions)[];
760extern JSClass X3DMatrix4Class;
761extern JSFunctionSpec(X3DMatrix4Functions)[];
762
763JSBool js_SetPropertyCheck(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
764JSBool js_SetPropertyDebug5(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
765JSBool js_SetPropertyDebug6 (JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
766JSBool js_SetPropertyDebug3 (JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
767JSBool js_SetPropertyDebug8 (JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
768
769
770#endif /* JS_VRML_CLASSES */