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__); \
97 #define COMPILE_FUNCTION_IF_NEEDED(tnfield) \
98 if (JSparamnames[tnfield].eventInFunction == NULL) { \
99 sprintf (scriptline,"%s(__eventIn_Value_%s,__eventInTickTime)", JSparamnames[tnfield].name,JSparamnames[tnfield].name); \
101 JSparamnames[tnfield].eventInFunction = (void *) JS_CompileScript( \
102 cx, obj, scriptline, strlen(scriptline), "compile eventIn",1); \
105 #define COMPILE_FUNCTION_IF_NEEDED(tnfield) \
106 if (JSparamnames[tnfield].eventInFunction == NULL) { \
107 sprintf (scriptline,"%s(__eventIn_Value_%s,__eventInTickTime)", JSparamnames[tnfield].name,JSparamnames[tnfield].name); \
109 JSparamnames[tnfield].eventInFunction = (void*)JS_CompileScript( \
110 cx, obj, scriptline, strlen(scriptline), "compile eventIn",1); \
111 if (!JS_AddObjectRoot(cx,(JSObject**)(&JSparamnames[tnfield].eventInFunction))) { \
112 printf( "JS_AddObjectRoot failed for compilation of script \"%s\" at %s:%d.\n",scriptline,__FILE__,__LINE__); \
117 #define RUN_FUNCTION(tnfield) \
119 if (!JS_ExecuteScript(cx, obj, JSparamnames[tnfield].eventInFunction, &zimbo)) { \
120 printf ("failed to set parameter for eventIn %s in FreeWRL code %s:%d\n",JSparamnames[tnfield].name,__FILE__,__LINE__); \
125 #define SET_LENGTH(cx,newMFObject,length) \
127 lenval = INT_TO_JSVAL(length); \
128 if (!JS_SetProperty(cx, newMFObject, MF_LENGTH_FIELD, &lenval)) { \
129 printf( "JS_SetProperty failed for \"%s\" at %s:%d\n", MF_LENGTH_FIELD,__FILE__,__LINE__); \
133 #define SET_EVENTIN_VALUE(cx,obj,nameIndex,newObj) \
134 { char scriptline[100]; \
135 sprintf (scriptline,"__eventIn_Value_%s", JSparamnames[nameIndex].name); \
136 if (!JS_DefineProperty(cx,obj, scriptline, OBJECT_TO_JSVAL(newObj), JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
137 printf( "JS_DefineProperty failed for \"ECMA in\" at %s:%d.\n",__FILE__,__LINE__); \
177 void JS_MY_Finalize(JSContext *cx, JSObject *obj);
179 JSBool doMFToString(JSContext *cx, JSObject *obj,
const char *className, jsval *rval);
181 JSBool doMFAddProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp,
char *name);
182 JSBool doMFSetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp,
int type);
184 JSBool doMFAddProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp,
char *name);
185 JSBool doMFSetProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp,
int type);
187 JSBool getBrowser(JSContext *context, JSObject *obj,
BrowserNative **brow);
188 JSBool doMFStringUnquote(JSContext *cx, jsval *vp);
194 globalResolve(JSContext *cx,
203 loadVrmlClasses(JSContext *context,
204 JSObject *globalObj);
208 setECMANative(JSContext *cx,
220 getAssignProperty(JSContext *context,
230 setAssignProperty(JSContext *context,
244 SFColorGetHSV(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
247 SFColorSetHSV(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
250 SFColorToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
253 SFColorAssign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
256 SFColorConstr(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
258 JSBool SFColorGetHSV(JSContext *cx, uintN argc, jsval *vp);
259 JSBool SFColorSetHSV(JSContext *cx, uintN argc, jsval *vp);
260 JSBool SFColorToString(JSContext *cx, uintN argc, jsval *vp);
261 JSBool SFColorAssign(JSContext *cx, uintN argc, jsval *vp);
262 JSBool SFColorConstr(JSContext *cx, uintN argc, jsval *vp);
266 JSBool SFColorGetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
267 JSBool SFColorSetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
269 JSBool SFColorGetProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp);
270 JSBool SFColorSetProperty(JSContext *cx, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
275 SFColorRGBAGetHSV(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
278 SFColorRGBASetHSV(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
281 SFColorRGBAToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
284 SFColorRGBAAssign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
287 SFColorRGBAConstr(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
289 JSBool SFColorRGBAGetHSV(JSContext *cx, uintN argc, jsval *vp);
290 JSBool SFColorRGBASetHSV(JSContext *cx, uintN argc, jsval *vp);
291 JSBool SFColorRGBAToString(JSContext *cx, uintN argc, jsval *vp);
292 JSBool SFColorRGBAAssign(JSContext *cx, uintN argc, jsval *vp);
293 JSBool SFColorRGBAConstr(JSContext *cx, uintN argc, jsval *vp);
297 JSBool SFColorRGBAGetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
298 JSBool SFColorRGBASetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
300 JSBool SFColorRGBAGetProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp);
301 JSBool SFColorRGBASetProperty(JSContext *cx, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
306 SFImageToString(JSContext *cx,
313 SFImageAssign(JSContext *cx,
321 SFImageConstr(JSContext *cx,
327 JSBool SFImageToString(JSContext *cx, uintN argc,jsval *vp);
328 JSBool SFImageAssign(JSContext *cx, uintN argc, jsval *vp);
329 JSBool SFImageConstr(JSContext *cx, uintN argc, jsval *vp);
333 SFImageGetProperty(JSContext *cx,
343 SFImageSetProperty(JSContext *cx,
357 SFNodeToString(JSContext *cx,
364 SFNodeAssign(JSContext *cx, JSObject *obj,
370 SFNodeConstr(JSContext *cx,
376 JSBool SFNodeToString(JSContext *cx, uintN argc, jsval *vp);
377 JSBool SFNodeAssign(JSContext *cx, uintN argc, jsval *vp);
378 JSBool SFNodeConstr(JSContext *cx, uintN argc, jsval *vp);
381 void SFNodeFinalize(JSContext *cx, JSObject *obj);
384 SFNodeGetProperty(JSContext *cx,
394 SFNodeSetProperty(JSContext *cx,
407 SFRotationGetAxis(JSContext *cx,
415 SFRotationInverse(JSContext *cx,
422 SFRotationMultiply(JSContext *cx,
428 SFRotationMultVec(JSContext *cx,
435 SFRotationSetAxis(JSContext *cx,
442 SFRotationSlerp(JSContext *cx,
449 SFRotationToString(JSContext *cx,
456 SFRotationAssign(JSContext *cx,
463 SFRotationConstr(JSContext *cx,
470 JSBool SFRotationGetAxis(JSContext *cx, uintN argc, jsval *vp);
471 JSBool SFRotationInverse(JSContext *cx, uintN argc, jsval *vp);
472 JSBool SFRotationMultiply(JSContext *cx, uintN argc, jsval *vp);
473 JSBool SFRotationMultVec(JSContext *cx, uintN argc, jsval *vp);
474 JSBool SFRotationSetAxis(JSContext *cx, uintN argc, jsval *vp);
475 JSBool SFRotationSlerp(JSContext *cx, uintN argc, jsval *vp);
476 JSBool SFRotationToString(JSContext *cx, uintN argc, jsval *vp);
477 JSBool SFRotationAssign(JSContext *cx, uintN argc, jsval *vp);
478 JSBool SFRotationConstr(JSContext *cx, uintN argc, jsval *vp);
483 SFRotationGetProperty(JSContext *cx,
493 SFRotationSetProperty(JSContext *cx,
506 SFVec2fAdd(JSContext *cx,
513 SFVec2fDivide(JSContext *cx,
520 SFVec2fDot(JSContext *cx,
527 SFVec2fLength(JSContext *cx,
534 SFVec2fMultiply(JSContext *cx,
549 SFVec2fNormalize(JSContext *cx,
556 SFVec2fSubtract(JSContext *cx,
563 SFVec2fToString(JSContext *cx,
570 SFVec2fAssign(JSContext *cx,
577 SFVec2fConstr(JSContext *cx,
583 JSBool SFVec2fAdd(JSContext *cx, uintN argc, jsval *vp);
584 JSBool SFVec2fDivide(JSContext *cx, uintN argc, jsval *vp);
585 JSBool SFVec2fDot(JSContext *cx, uintN argc, jsval *vp);
586 JSBool SFVec2fLength(JSContext *cx, uintN argc, jsval *vp);
587 JSBool SFVec2fMultiply(JSContext *cx, uintN argc, jsval *vp);
589 JSBool SFVec2fNormalize(JSContext *cx, uintN argc, jsval *vp);
590 JSBool SFVec2fSubtract(JSContext *cx, uintN argc, jsval *vp);
591 JSBool SFVec2fToString(JSContext *cx, uintN argc, jsval *vp);
592 JSBool SFVec2fAssign(JSContext *cx, uintN argc, jsval *vp);
593 JSBool SFVec2fConstr(JSContext *cx, uintN argc, jsval *vp);
597 SFVec2fGetProperty(JSContext *cx,
607 SFVec2fSetProperty(JSContext *cx,
619 JSBool SFVec3fAdd(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
620 JSBool SFVec3fCross(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
621 JSBool SFVec3fDivide(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
622 JSBool SFVec3fDot(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
623 JSBool SFVec3fLength(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
624 JSBool SFVec3fMultiply(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
625 JSBool SFVec3fNegate(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
626 JSBool SFVec3fNormalize(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
627 JSBool SFVec3fSubtract(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
628 JSBool SFVec3fToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
629 JSBool SFVec3fAssign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
630 JSBool SFVec3fConstr(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
631 JSBool SFVec3fGetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
632 JSBool SFVec3fSetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
634 JSBool SFVec3fAdd(JSContext *cx, uintN argc, jsval *vp);
635 JSBool SFVec3fCross(JSContext *cx, uintN argc, jsval *vp);
636 JSBool SFVec3fDivide(JSContext *cx, uintN argc, jsval *vp);
637 JSBool SFVec3fDot(JSContext *cx, uintN argc, jsval *vp);
638 JSBool SFVec3fLength(JSContext *cx, uintN argc, jsval *vp);
639 JSBool SFVec3fMultiply(JSContext *cx, uintN argc, jsval *vp);
640 JSBool SFVec3fNegate(JSContext *cx, uintN argc, jsval *vp);
641 JSBool SFVec3fNormalize(JSContext *cx, uintN argc, jsval *vp);
642 JSBool SFVec3fSubtract(JSContext *cx, uintN argc, jsval *vp);
643 JSBool SFVec3fToString(JSContext *cx, uintN argc, jsval *vp);
644 JSBool SFVec3fAssign(JSContext *cx, uintN argc, jsval *vp);
645 JSBool SFVec3fConstr(JSContext *cx, uintN argc, jsval *vp);
646 JSBool SFVec3fGetProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp);
647 JSBool SFVec3fSetProperty(JSContext *cx, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
651 JSBool SFVec3dAdd(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
652 JSBool SFVec3dCross(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
653 JSBool SFVec3dDivide(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
654 JSBool SFVec3dDot(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
655 JSBool SFVec3dLength(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
656 JSBool SFVec3dMultiply(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
657 JSBool SFVec3dNegate(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
658 JSBool SFVec3dNormalize(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
659 JSBool SFVec3dSubtract(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
660 JSBool SFVec3dToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
661 JSBool SFVec3dAssign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
662 JSBool SFVec3dConstr(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
663 JSBool SFVec3dGetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
664 JSBool SFVec3dSetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
666 JSBool SFVec3dAdd(JSContext *cx, uintN argc, jsval *vp);
667 JSBool SFVec3dCross(JSContext *cx, uintN argc, jsval *vp);
668 JSBool SFVec3dDivide(JSContext *cx, uintN argc, jsval *vp);
669 JSBool SFVec3dDot(JSContext *cx, uintN argc, jsval *vp);
670 JSBool SFVec3dLength(JSContext *cx, uintN argc, jsval *vp);
671 JSBool SFVec3dMultiply(JSContext *cx, uintN argc, jsval *vp);
672 JSBool SFVec3dNegate(JSContext *cx, uintN argc, jsval *vp);
673 JSBool SFVec3dNormalize(JSContext *cx, uintN argc, jsval *vp);
674 JSBool SFVec3dSubtract(JSContext *cx, uintN argc, jsval *vp);
675 JSBool SFVec3dToString(JSContext *cx, uintN argc, jsval *vp);
676 JSBool SFVec3dAssign(JSContext *cx, uintN argc, jsval *vp);
677 JSBool SFVec3dConstr(JSContext *cx, uintN argc, jsval *vp);
678 JSBool SFVec3dGetProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp);
679 JSBool SFVec3dSetProperty(JSContext *cx, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
684 JSBool SFVec4fToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
685 JSBool SFVec4fAssign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
686 JSBool SFVec4fConstr(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
687 JSBool SFVec4fGetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
688 JSBool SFVec4fSetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
689 JSBool SFVec4dToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
690 JSBool SFVec4dAssign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
691 JSBool SFVec4dConstr(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
692 JSBool SFVec4dGetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
693 JSBool SFVec4dSetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp);
695 JSBool SFVec4fToString(JSContext *cx, uintN argc, jsval *vp);
696 JSBool SFVec4fAssign(JSContext *cx, uintN argc, jsval *vp);
697 JSBool SFVec4fConstr(JSContext *cx, uintN argc, jsval *vp);
698 JSBool SFVec4fGetProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp);
699 JSBool SFVec4fSetProperty(JSContext *cx, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
700 JSBool SFVec4dToString(JSContext *cx, uintN argc, jsval *vp);
701 JSBool SFVec4dAssign(JSContext *cx, uintN argc, jsval *vp);
702 JSBool SFVec4dConstr(JSContext *cx, uintN argc, jsval *vp);
703 JSBool SFVec4dGetProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp);
704 JSBool SFVec4dSetProperty(JSContext *cx, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
709 MFColorToString(JSContext *cx,
716 MFColorAssign(JSContext *cx,
723 MFColorConstr(JSContext *cx,
729 JSBool MFColorToString(JSContext *cx, uintN argc, jsval *vp);
730 JSBool MFColorAssign(JSContext *cx, uintN argc, jsval *vp);
731 JSBool MFColorConstr(JSContext *cx, uintN argc, jsval *vp);
732 JSBool MFColorConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
736 MFColorAddProperty(JSContext *cx,
746 MFColorGetProperty(JSContext *cx,
756 MFColorSetProperty(JSContext *cx,
770 MFFloatToString(JSContext *cx,
777 MFFloatAssign(JSContext *cx,
784 MFFloatConstr(JSContext *cx,
790 JSBool MFFloatToString(JSContext *cx, uintN argc, jsval *vp);
791 JSBool MFFloatAssign(JSContext *cx, uintN argc, jsval *vp);
792 JSBool MFFloatConstr(JSContext *cx, uintN argc, jsval *vp);
793 JSBool MFFloatConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
797 MFFloatAddProperty(JSContext *cx,
807 MFFloatGetProperty(JSContext *cx,
817 MFFloatSetProperty(JSContext *cx,
831 MFInt32ToString(JSContext *cx,
838 MFInt32Assign(JSContext *cx,
845 MFInt32Constr(JSContext *cx,
851 JSBool MFInt32ToString(JSContext *cx, uintN argc, jsval *vp);
852 JSBool MFInt32Assign(JSContext *cx, uintN argc, jsval *vp);
853 JSBool MFInt32Constr(JSContext *cx, uintN argc, jsval *vp);
854 JSBool MFInt32ConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
858 MFInt32AddProperty(JSContext *cx,
868 MFInt32GetProperty(JSContext *cx,
878 MFInt32SetProperty(JSContext *cx,
891 MFNodeToString(JSContext *cx,
898 MFNodeAssign(JSContext *cx,
905 MFNodeConstr(JSContext *cx,
911 JSBool MFNodeToString(JSContext *cx, uintN argc, jsval *vp);
912 JSBool MFNodeAssign(JSContext *cx, uintN argc, jsval *vp);
913 JSBool MFNodeConstr(JSContext *cx, uintN argc, jsval *vp);
914 JSBool MFNodeConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
918 MFNodeAddProperty(JSContext *cx,
928 MFNodeGetProperty(JSContext *cx,
938 MFNodeSetProperty(JSContext *cx,
952 MFRotationToString(JSContext *cx,
959 MFRotationAssign(JSContext *cx,
966 MFRotationConstr(JSContext *cx,
972 JSBool MFRotationToString(JSContext *cx, uintN argc, jsval *vp);
973 JSBool MFRotationAssign(JSContext *cx, uintN argc, jsval *vp);
974 JSBool MFRotationConstr(JSContext *cx, uintN argc, jsval *vp);
975 JSBool MFRotationConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
979 MFRotationGetProperty(JSContext *cx,
989 MFRotationSetProperty(JSContext *cx,
1000 MFRotationAddProperty(JSContext *cx,
1002 #
if JS_VERSION < 185
1010 #if JS_VERSION < 185
1012 MFStringToString(JSContext *cx,
1019 MFStringAssign(JSContext *cx,
1026 MFStringConstr(JSContext *cx,
1032 JSBool MFStringToString(JSContext *cx, uintN argc, jsval *vp);
1033 JSBool MFStringAssign(JSContext *cx, uintN argc, jsval *vp);
1034 JSBool MFStringConstr(JSContext *cx, uintN argc, jsval *vp);
1035 JSBool MFStringConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1039 MFStringGetProperty(JSContext *cx,
1041 #
if JS_VERSION < 185
1049 MFStringSetProperty(JSContext *cx,
1051 #
if JS_VERSION < 185
1061 MFStringAddProperty(JSContext *cx,
1063 #
if JS_VERSION < 185
1070 JSBool MFStringEnumerateProperty(JSContext *cx, JSObject *obj) ;
1071 #if JS_VERSION < 185
1072 JSBool MFStringDeleteProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp) ;
1073 JSBool MFStringResolveProperty(JSContext *cx, JSObject *obj, jsval
id) ;
1075 JSBool MFStringDeleteProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp) ;
1076 JSBool MFStringResolveProperty(JSContext *cx, JSObject *obj, jsid
id) ;
1078 JSBool MFStringConvertProperty(JSContext *cx, JSObject *obj, JSType type, jsval *vp) ;
1082 #if JS_VERSION < 185
1084 MFTimeToString(JSContext *cx,
1091 MFTimeAssign(JSContext *cx,
1098 MFTimeConstr(JSContext *cx,
1104 JSBool MFTimeToString(JSContext *cx, uintN argc, jsval *vp);
1105 JSBool MFTimeAssign(JSContext *cx, uintN argc, jsval *vp);
1106 JSBool MFTimeConstr(JSContext *cx, uintN argc, jsval *vp);
1107 JSBool MFTimeConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1111 MFTimeAddProperty(JSContext *cx,
1113 #
if JS_VERSION < 185
1121 MFTimeGetProperty(JSContext *cx,
1123 #
if JS_VERSION < 185
1131 MFTimeSetProperty(JSContext *cx,
1133 #
if JS_VERSION < 185
1143 #if JS_VERSION < 185
1145 MFVec2fToString(JSContext *cx,
1152 MFVec2fAssign(JSContext *cx,
1159 MFVec2fConstr(JSContext *cx,
1165 JSBool MFVec2fToString(JSContext *cx, uintN argc, jsval *vp);
1166 JSBool MFVec2fAssign(JSContext *cx, uintN argc, jsval *vp);
1167 JSBool MFVec2fConstr(JSContext *cx, uintN argc, jsval *vp);
1168 JSBool MFVec2fConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1172 MFVec2fAddProperty(JSContext *cx,
1174 #
if JS_VERSION < 185
1182 MFVec2fGetProperty(JSContext *cx,
1184 #
if JS_VERSION < 185
1192 MFVec2fSetProperty(JSContext *cx,
1194 #
if JS_VERSION < 185
1204 #if JS_VERSION < 185
1206 MFVec3fToString(JSContext *cx,
1213 MFVec3fAssign(JSContext *cx,
1220 MFVec3fConstr(JSContext *cx,
1226 JSBool MFVec3fToString(JSContext *cx, uintN argc, jsval *vp);
1227 JSBool MFVec3fAssign(JSContext *cx, uintN argc, jsval *vp);
1228 JSBool MFVec3fConstr(JSContext *cx, uintN argc, jsval *vp);
1229 JSBool MFVec3fConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1233 MFVec3fAddProperty(JSContext *cx,
1235 #
if JS_VERSION < 185
1243 MFVec3fGetProperty(JSContext *cx,
1245 #
if JS_VERSION < 185
1253 MFVec3fSetProperty(JSContext *cx,
1255 #
if JS_VERSION < 185
1263 #if JS_VERSION < 185
1265 VrmlMatrixToString(JSContext *cx,
1272 VrmlMatrixAssign(JSContext *cx,
1279 JSBool VrmlMatrixsetTransform(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1280 JSBool VrmlMatrixgetTransform(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1281 JSBool VrmlMatrixinverse(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1282 JSBool VrmlMatrixtranspose(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1283 JSBool VrmlMatrixmultLeft(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1284 JSBool VrmlMatrixmultRight(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1285 JSBool VrmlMatrixmultVecMatrix(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1286 JSBool VrmlMatrixmultMatrixVec(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1289 VrmlMatrixConstr(JSContext *cx,
1295 JSBool VrmlMatrixToString(JSContext *cx, uintN argc, jsval *vp);
1296 JSBool VrmlMatrixAssign(JSContext *cx, uintN argc, jsval *vp);
1297 JSBool VrmlMatrixsetTransform(JSContext *cx, uintN argc, jsval *vp);
1298 JSBool VrmlMatrixgetTransform(JSContext *cx, uintN argc, jsval *vp);
1299 JSBool VrmlMatrixinverse(JSContext *cx, uintN argc, jsval *vp);
1300 JSBool VrmlMatrixtranspose(JSContext *cx, uintN argc, jsval *vp);
1301 JSBool VrmlMatrixmultLeft(JSContext *cx, uintN argc, jsval *vp);
1302 JSBool VrmlMatrixmultRight(JSContext *cx, uintN argc, jsval *vp);
1303 JSBool VrmlMatrixmultVecMatrix(JSContext *cx, uintN argc, jsval *vp);
1304 JSBool VrmlMatrixmultMatrixVec(JSContext *cx, uintN argc, jsval *vp);
1305 JSBool VrmlMatrixConstr(JSContext *cx, uintN argc, jsval *vp);
1306 JSBool VrmlMatrixConstrInternals(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
1310 VrmlMatrixAddProperty(JSContext *cx,
1312 #
if JS_VERSION < 185
1320 VrmlMatrixGetProperty(JSContext *cx,
1322 #
if JS_VERSION < 185
1330 VrmlMatrixSetProperty(JSContext *cx,
1332 #
if JS_VERSION < 185
1340 JSBool _standardMFAssign(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval, JSClass *myClass,
int type);
1341 #if JS_VERSION < 185
1342 JSBool _standardMFGetProperty(JSContext *cx, JSObject *obj, jsval
id, jsval *vp,
char *makeNewElement,
int type);
1344 JSBool _standardMFGetProperty(JSContext *cx, JSObject *obj, jsid
id, jsval *vp,
char *makeNewElement,
int type);
1346 void printJSNodeType (JSContext *context, JSObject *myobj);
1348 extern JSClass SFColorClass;
1349 extern JSPropertySpec (SFColorProperties)[];
1350 extern JSFunctionSpec (SFColorFunctions)[];
1351 extern JSClass SFColorRGBAClass;
1352 extern JSPropertySpec (SFColorRGBAProperties)[];
1353 extern JSFunctionSpec (SFColorRGBAFunctions)[];
1354 extern JSClass SFImageClass;
1355 extern JSPropertySpec (SFImageProperties)[];
1356 extern JSFunctionSpec (SFImageFunctions)[];
1357 extern JSClass SFNodeClass;
1358 extern JSPropertySpec (SFNodeProperties)[];
1359 extern JSFunctionSpec (SFNodeFunctions)[];
1360 extern JSClass SFRotationClass;
1361 extern JSPropertySpec (SFRotationProperties)[];
1362 extern JSFunctionSpec (SFRotationFunctions)[];
1363 extern JSClass SFVec2fClass;
1364 extern JSPropertySpec (SFVec2fProperties)[];
1365 extern JSFunctionSpec (SFVec2fFunctions)[];
1366 extern JSClass SFVec3fClass;
1367 extern JSPropertySpec (SFVec3fProperties)[];
1368 extern JSFunctionSpec (SFVec3fFunctions)[];
1369 extern JSClass SFVec3dClass;
1370 extern JSPropertySpec (SFVec3dProperties)[];
1371 extern JSFunctionSpec (SFVec3dFunctions)[];
1374 extern JSClass SFVec4fClass;
1375 extern JSPropertySpec (SFVec4fProperties)[];
1376 extern JSFunctionSpec (SFVec4fFunctions)[];
1377 extern JSClass SFVec4dClass;
1378 extern JSPropertySpec (SFVec4dProperties)[];
1379 extern JSFunctionSpec (SFVec4dFunctions)[];
1381 extern JSClass MFColorClass;
1382 extern JSFunctionSpec (MFColorFunctions)[];
1383 extern JSClass MFFloatClass;
1384 extern JSFunctionSpec (MFFloatFunctions)[];
1385 extern JSClass MFBoolClass;
1386 extern JSFunctionSpec (MFBoolFunctions)[];
1387 extern JSClass MFInt32Class;
1388 extern JSFunctionSpec (MFInt32Functions)[];
1389 extern JSClass MFNodeClass;
1390 extern JSFunctionSpec (MFNodeFunctions)[];
1391 extern JSClass MFRotationClass;
1392 extern JSFunctionSpec (MFRotationFunctions)[];
1393 extern JSClass MFStringClass;
1394 extern JSFunctionSpec (MFStringFunctions)[];
1395 extern JSClass MFTimeClass;
1396 extern JSPropertySpec (MFTimeProperties)[] ;
1397 extern JSFunctionSpec (MFTimeFunctions)[];
1398 extern JSClass MFVec2fClass;
1399 extern JSFunctionSpec (MFVec2fFunctions)[];
1400 extern JSClass MFVec3fClass;
1401 extern JSFunctionSpec (MFVec3fFunctions)[];
1402 extern JSClass VrmlMatrixClass;
1403 extern JSFunctionSpec (VrmlMatrixFunctions)[];
1405 #if JS_VERSION < 185
1406 JSBool js_GetPropertyDebug (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1407 JSBool js_SetPropertyCheck (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1408 JSBool js_SetPropertyDebug1 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1409 JSBool js_SetPropertyDebug2 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1410 JSBool js_SetPropertyDebug3 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1411 JSBool js_SetPropertyDebug4 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1412 JSBool js_SetPropertyDebug5 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1413 JSBool js_SetPropertyDebug6 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1414 JSBool js_SetPropertyDebug7 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1415 JSBool js_SetPropertyDebug8 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1416 JSBool js_SetPropertyDebug9 (JSContext *context, JSObject *obj, jsval
id, jsval *vp);
1418 JSBool js_GetPropertyDebug (JSContext *context, JSObject *obj, jsid
id, jsval *vp);
1419 JSBool js_SetPropertyCheck (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1420 JSBool js_SetPropertyDebug1 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1421 JSBool js_SetPropertyDebug2 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1422 JSBool js_SetPropertyDebug3 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1423 JSBool js_SetPropertyDebug4 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1424 JSBool js_SetPropertyDebug5 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1425 JSBool js_SetPropertyDebug6 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1426 JSBool js_SetPropertyDebug7 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1427 JSBool js_SetPropertyDebug8 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);
1428 JSBool js_SetPropertyDebug9 (JSContext *context, JSObject *obj, jsid
id, JSBool strict, jsval *vp);