FreeWRL/FreeX3D  3.0.0
jsNative.h
1 /*
2 
3 
4 CProto.h - this is the object representing a PROTO definition and being
5 capable of instantiating it.
6 
7 We keep a vector of pointers to all that pointers which point to "inner
8 memory" and need therefore be updated when copying. Such pointers include
9 field-destinations and parts of ROUTEs. Those pointers are then simply
10 copied, their new positions put in the new vector, and afterwards are all
11 pointers there updated.
12 
13 */
14 
15 /****************************************************************************
16  This file is part of the FreeWRL/FreeX3D Distribution.
17 
18  Copyright 2009 CRC Canada. (http://www.crc.gc.ca)
19 
20  FreeWRL/FreeX3D is free software: you can redistribute it and/or modify
21  it under the terms of the GNU Lesser Public License as published by
22  the Free Software Foundation, either version 3 of the License, or
23  (at your option) any later version.
24 
25  FreeWRL/FreeX3D is distributed in the hope that it will be useful,
26  but WITHOUT ANY WARRANTY; without even the implied warranty of
27  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28  GNU General Public License for more details.
29 
30  You should have received a copy of the GNU General Public License
31  along with FreeWRL/FreeX3D. If not, see <http://www.gnu.org/licenses/>.
32 ****************************************************************************/
33 
34 
35 #ifndef __FREEWRL_JS_NATIVE_H__
36 #define __FREEWRL_JS_NATIVE_H__
37 
38 
39 typedef struct _BrowserNative {
40  /* int magic; does this really do anything ??? */
41  /* and, this really does nothing SV *sv_js; */
42  int dummyEntry;
44 
45 typedef struct _SFNodeNative {
46  int valueChanged;
47  struct X3D_Node *handle;
48  char *X3DString;
49  int fieldsExpanded;
50 } SFNodeNative;
51 
52 typedef struct _SFRotationNative {
53  int valueChanged;
54  struct SFRotation v;
56 
57 typedef struct _SFVec2fNative {
58  int valueChanged;
59  struct SFVec2f v;
61 
62 typedef struct _SFVec3fNative {
63  int valueChanged;
64  struct SFColor v;
66 
67 typedef struct _SFVec3dNative {
68  int valueChanged;
69  struct SFVec3d v;
71 
72 typedef struct _SFImageNative {
73  int valueChanged;
75 
76 typedef struct _SFColorNative {
77  int valueChanged;
78  struct SFColor v;
80 
81 typedef struct _SFColorRGBANative {
82  int valueChanged;
83  struct SFColorRGBA v;
85 
86 typedef struct _SFVec4fNative {
87  int valueChanged;
88  struct SFVec4f v;
90 
91 typedef struct _SFVec4dNative {
92  int valueChanged;
93  struct SFVec4d v;
95 
96 /*
97  * Adds additional (touchable) property to instance of a native
98  * type.
99  */
100 extern JSBool
101 addGlobalECMANativeProperty(void *cx,
102  void *glob,
103  char *name);
104 
105 extern JSBool
106 addGlobalAssignProperty(void *cx,
107  void *glob,
108  char *name,
109  char *str);
110 
111 extern JSBool
112 addSFNodeProperty(void *cx,
113  void *glob,
114  char *nodeName,
115  char *name,
116  char *str);
117 
118 extern void *
119 SFNodeNativeNew(void);
120 
121 extern JSBool
122 SFNodeNativeAssign(void *top, void *fromp);
123 
124 extern void *
125 SFRotationNativeNew(void);
126 
127 extern void
128 SFRotationNativeAssign(void *top, void *fromp);
129 
130 extern void
131 SFRotationNativeSet(void *p, struct Uni_String *sv);
132 
133 extern void *
134 SFVec3fNativeNew(void);
135 
136 extern void
137 SFVec3fNativeAssign(void *top, void *fromp);
138 
139 extern void
140 SFVec3fNativeSet(void *p, struct Uni_String *sv);
141 
142 extern void *
143 SFVec2fNativeNew(void);
144 
145 extern void
146 SFVec2fNativeAssign(void *top, void *fromp);
147 
148 extern void
149 SFVec2fNativeSet(void *p, struct Uni_String *sv);
150 
151 extern void *
152 SFImageNativeNew(void);
153 
154 extern void
155 SFImageNativeAssign(void *top, void *fromp);
156 
157 extern void
158 SFImageNativeSet(void *p, struct Uni_String *sv);
159 
160 extern void *
161 SFColorNativeNew(void);
162 
163 extern void
164 SFColorNativeAssign(void *top, void *fromp);
165 
166 extern void
167 SFColorNativeSet(void *p, struct Uni_String *sv);
168 
169 void * SFNodeNativeNew(void);
170 int SFNodeNativeAssign(void *top, void *fromp);
171 void * SFColorRGBANativeNew(void);
172 void SFColorRGBANativeAssign(void *top, void *fromp);
173 void * SFColorNativeNew(void);
174 void SFColorNativeAssign(void *top, void *fromp);
175 void * SFImageNativeNew(void);
176 void SFImageNativeAssign(void *top, void *fromp);
177 void * SFRotationNativeNew(void);
178 void SFRotationNativeAssign(void *top, void *fromp);
179 void * SFVec2fNativeNew(void);
180 void SFVec2fNativeAssign(void *top, void *fromp);
181 void * SFVec3fNativeNew(void);
182 void SFVec3fNativeAssign(void *top, void *fromp);
183 void * SFVec3dNativeNew(void);
184 void SFVec3dNativeAssign(void *top, void *fromp);
185 void * SFVec4fNativeNew(void);
186 void SFVec4fNativeAssign(void *top, void *fromp);
187 void * SFVec4dNativeNew(void);
188 void SFVec4dNativeAssign(void *top, void *fromp);
189 
190 #endif /* __FREEWRL_JS_NATIVE_H__ */