28#ifndef __FREEWRL_JS_VRML_CLASSES_H__
29#define __FREEWRL_JS_VRML_CLASSES_H__
32#define UNUSED(v) ((void) v)
35#define INIT_ARGC_NODE 1
41#define ADD_ROOT(a,b) \
48#define REMOVE_ROOT(a,b) \
53#define MF_LENGTH_FIELD "length"
55#define DEFINE_LENGTH(this_context,this_object,this_length) \
56 {jsval zimbo = INT_TO_JSVAL(this_length);\
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__); \
63#define DEFINE_LENGTH_NORV(this_context,this_object,this_length) \
64 {jsval zimbo = INT_TO_JSVAL(this_length);\
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__); \
71#define DEFINE_MF_ECMA_HAS_CHANGED \
72 {jsval zimbo = INT_TO_JSVAL(0); \
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__); \
80#define SET_MF_ECMA_HAS_CHANGED { jsval myv; \
81 myv = INT_TO_JSVAL(1); \
83 if (!JS_SetProperty(cx, obj, "MF_ECMA_has_changed", &myv)) { \
84 printf( "JS_SetProperty failed for \"MF_ECMA_has_changed\" in doMFSetProperty.\n"); \
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__); \
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); \
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__); \
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); \
112 sprintf (scriptline,"%s(%s%s,__eventInTickTime)", JSparamnames[tnfield].name,"__eventIn_Value_",JSparamnames[tnfield].name); \
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__); \
122#define RUN_FUNCTION(tnfield) \
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__); \
132#define SET_LENGTH(cx,newMFObject,length) \
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__); \
142#define SET_EVENTIN_VALUE(cx,obj,nameIndex,newObj) \
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__); \
188void JS_MY_Finalize(JSFreeOp *fop, JSObject *obj);
191JSBool doMFToString(JSContext *cx, JSObject *obj,
const char *className, jsval *rval);
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);
196JSBool getBrowser(JSContext *context, JSObject *obj, BrowserNative **brow);
197JSBool doMFStringUnquote(JSContext *cx, jsval *vp);
203JSBool globalResolve(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid);
207loadVrmlClasses(JSContext *context,
208 JSObject *globalObj);
212JSBool getECMANative(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
214JSBool setECMANative(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
218JSBool getAssignProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JS::MutableHandle<JS::Value> hvp);
221JSBool setAssignProperty(JSContext *cx, JS::Handle<JSObject*> hobj, JS::Handle<jsid> hiid, JSBool strict, JS::MutableHandle<JS::Value> hvp);
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);
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);
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);
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);
247JSBool SFImageToString(JSContext *cx, uintN argc,jsval *vp);
248JSBool SFImageAssign(JSContext *cx, uintN argc, jsval *vp);
249JSBool SFImageConstr(JSContext *cx, uintN argc, jsval *vp);
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);
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);
267void SFNodeFinalize(JSFreeOp *fop, JSObject *obj);
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);
273JSBool SFRotationGetAxis(JSContext *cx, uintN argc, jsval *vp);
274JSBool SFRotationInverse(JSContext *cx, uintN argc, jsval *vp);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
362JSBool SFVec4fToString(JSContext *cx, uintN argc, jsval *vp);
363JSBool SFVec4fAssign(JSContext *cx, uintN argc, jsval *vp);
364JSBool SFVec4fConstr(JSContext *cx, uintN argc, jsval *vp);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
653void printJSNodeType (JSContext *context, JSObject *myobj);
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)[];
684extern JSClass SFVec4fClass;
685extern JSPropertySpec (SFVec4fProperties)[];
686extern JSFunctionSpec (SFVec4fFunctions)[];
687extern JSClass SFVec4dClass;
688extern JSPropertySpec (SFVec4dProperties)[];
689extern JSFunctionSpec (SFVec4dFunctions)[];
691extern JSClass SFMatrix3fClass;
692extern JSPropertySpec(SFMatrix3fProperties)[];
693extern JSFunctionSpec(SFMatrix3fFunctions)[];
694extern JSClass SFMatrix4fClass;
695extern JSPropertySpec(SFMatrix4fProperties)[];
696extern JSFunctionSpec(SFMatrix4fFunctions)[];
698extern JSClass SFMatrix3dClass;
699extern JSPropertySpec(SFMatrix3dProperties)[];
700extern JSFunctionSpec(SFMatrix3dFunctions)[];
701extern JSClass SFMatrix4dClass;
702extern JSPropertySpec(SFMatrix4dProperties)[];
703extern JSFunctionSpec(SFMatrix4dFunctions)[];
705extern JSClass MFColorClass;
706extern JSFunctionSpec (MFColorFunctions)[];
707extern JSClass MFColorRGBAClass;
708extern JSFunctionSpec(MFColorRGBAFunctions)[];
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)[];
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)[];
744extern JSClass MFMatrix3fClass;
745extern JSFunctionSpec(MFMatrix3fFunctions)[];
746extern JSClass MFMatrix4fClass;
747extern JSFunctionSpec(MFMatrix4fFunctions)[];
749extern JSClass MFMatrix3dClass;
750extern JSFunctionSpec(MFMatrix3dFunctions)[];
751extern JSClass MFMatrix4dClass;
752extern JSFunctionSpec(MFMatrix4dFunctions)[];
756extern JSClass VrmlMatrixClass;
757extern JSFunctionSpec (VrmlMatrixFunctions)[];
758extern JSClass X3DMatrix3Class;
759extern JSFunctionSpec(X3DMatrix3Functions)[];
760extern JSClass X3DMatrix4Class;
761extern JSFunctionSpec(X3DMatrix4Functions)[];
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);