PageRenderTime 107ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 1ms

/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.cpp

https://github.com/suhanlee/cocos2d-x
C++ | 4910 lines | 3505 code | 921 blank | 484 comment | 257 complexity | 68ae4414c8498faacbfcd9599bbda5be MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1. /*
  2. * AUTOGENERATED FILE. DO NOT EDIT IT
  3. * Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-11-07
  4. * Script version: v0.3
  5. */
  6. #include "js_bindings_config.h"
  7. #ifdef JSB_INCLUDE_CHIPMUNK
  8. #include "js_bindings_chipmunk_manual.h"
  9. #include "jsfriendapi.h"
  10. #include "js_bindings_config.h"
  11. #include "js_manual_conversions.h"
  12. #include "js_bindings_chipmunk_functions.h"
  13. /*
  14. * cpConstraint
  15. */
  16. #pragma mark - cpConstraint
  17. JSClass* JSB_cpConstraint_class = NULL;
  18. JSObject* JSB_cpConstraint_object = NULL;
  19. // Constructor
  20. JSBool JSB_cpConstraint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  21. {
  22. JSB_PRECONDITION3(argc==0, cx, JS_FALSE, "Invalid number of arguments");
  23. JSB_PRECONDITION3(false, cx, JS_TRUE, "No constructor");
  24. return JS_TRUE;
  25. }
  26. // Destructor
  27. void JSB_cpConstraint_finalize(JSFreeOp *fop, JSObject *jsthis)
  28. {
  29. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  30. if( proxy ) {
  31. CCLOGINFO("jsbindings: finalizing JS object %p (cpConstraint), handle: %p", jsthis, proxy->handle);
  32. jsb_del_jsobject_for_proxy(proxy->handle);
  33. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  34. cpConstraintFree( (cpConstraint*)proxy->handle);
  35. jsb_del_c_proxy_for_jsobject(jsthis);
  36. } else {
  37. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpConstraint)", jsthis);
  38. }
  39. }
  40. // Arguments:
  41. // Ret value: void
  42. JSBool JSB_cpConstraint_activateBodies(JSContext *cx, uint32_t argc, jsval *vp) {
  43. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  44. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  45. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  46. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  47. cpConstraintActivateBodies((cpConstraint*)arg0 );
  48. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  49. return JS_TRUE;
  50. }
  51. // Arguments:
  52. // Ret value: void
  53. JSBool JSB_cpConstraint_destroy(JSContext *cx, uint32_t argc, jsval *vp) {
  54. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  55. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  56. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  57. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  58. cpConstraintDestroy((cpConstraint*)arg0 );
  59. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  60. return JS_TRUE;
  61. }
  62. // Arguments:
  63. // Ret value: cpBody*
  64. JSBool JSB_cpConstraint_getA(JSContext *cx, uint32_t argc, jsval *vp) {
  65. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  66. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  67. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  68. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  69. cpBody* ret_val;
  70. ret_val = cpConstraintGetA((cpConstraint*)arg0 );
  71. jsval ret_jsval = c_class_to_jsval( cx, ret_val, JSB_cpBody_object, JSB_cpBody_class, "cpBody" );
  72. JS_SET_RVAL(cx, vp, ret_jsval);
  73. return JS_TRUE;
  74. }
  75. // Arguments:
  76. // Ret value: cpBody*
  77. JSBool JSB_cpConstraint_getB(JSContext *cx, uint32_t argc, jsval *vp) {
  78. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  79. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  80. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  81. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  82. cpBody* ret_val;
  83. ret_val = cpConstraintGetB((cpConstraint*)arg0 );
  84. jsval ret_jsval = c_class_to_jsval( cx, ret_val, JSB_cpBody_object, JSB_cpBody_class, "cpBody" );
  85. JS_SET_RVAL(cx, vp, ret_jsval);
  86. return JS_TRUE;
  87. }
  88. // Arguments:
  89. // Ret value: cpFloat
  90. JSBool JSB_cpConstraint_getErrorBias(JSContext *cx, uint32_t argc, jsval *vp) {
  91. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  92. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  93. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  94. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  95. cpFloat ret_val;
  96. ret_val = cpConstraintGetErrorBias((cpConstraint*)arg0 );
  97. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  98. return JS_TRUE;
  99. }
  100. // Arguments:
  101. // Ret value: cpFloat
  102. JSBool JSB_cpConstraint_getImpulse(JSContext *cx, uint32_t argc, jsval *vp) {
  103. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  104. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  105. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  106. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  107. cpFloat ret_val;
  108. ret_val = cpConstraintGetImpulse((cpConstraint*)arg0 );
  109. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  110. return JS_TRUE;
  111. }
  112. // Arguments:
  113. // Ret value: cpFloat
  114. JSBool JSB_cpConstraint_getMaxBias(JSContext *cx, uint32_t argc, jsval *vp) {
  115. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  116. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  117. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  118. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  119. cpFloat ret_val;
  120. ret_val = cpConstraintGetMaxBias((cpConstraint*)arg0 );
  121. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  122. return JS_TRUE;
  123. }
  124. // Arguments:
  125. // Ret value: cpFloat
  126. JSBool JSB_cpConstraint_getMaxForce(JSContext *cx, uint32_t argc, jsval *vp) {
  127. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  128. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  129. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  130. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  131. cpFloat ret_val;
  132. ret_val = cpConstraintGetMaxForce((cpConstraint*)arg0 );
  133. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  134. return JS_TRUE;
  135. }
  136. // Arguments:
  137. // Ret value: cpSpace*
  138. JSBool JSB_cpConstraint_getSpace(JSContext *cx, uint32_t argc, jsval *vp) {
  139. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  140. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  141. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  142. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  143. cpSpace* ret_val;
  144. ret_val = cpConstraintGetSpace((cpConstraint*)arg0 );
  145. jsval ret_jsval = c_class_to_jsval( cx, ret_val, JSB_cpSpace_object, JSB_cpSpace_class, "cpSpace" );
  146. JS_SET_RVAL(cx, vp, ret_jsval);
  147. return JS_TRUE;
  148. }
  149. // Arguments: cpFloat
  150. // Ret value: void
  151. JSBool JSB_cpConstraint_setErrorBias(JSContext *cx, uint32_t argc, jsval *vp) {
  152. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  153. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  154. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  155. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  156. jsval *argvp = JS_ARGV(cx,vp);
  157. JSBool ok = JS_TRUE;
  158. double arg1;
  159. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  160. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  161. cpConstraintSetErrorBias((cpConstraint*)arg0 , (cpFloat)arg1 );
  162. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  163. return JS_TRUE;
  164. }
  165. // Arguments: cpFloat
  166. // Ret value: void
  167. JSBool JSB_cpConstraint_setMaxBias(JSContext *cx, uint32_t argc, jsval *vp) {
  168. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  169. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  170. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  171. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  172. jsval *argvp = JS_ARGV(cx,vp);
  173. JSBool ok = JS_TRUE;
  174. double arg1;
  175. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  176. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  177. cpConstraintSetMaxBias((cpConstraint*)arg0 , (cpFloat)arg1 );
  178. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  179. return JS_TRUE;
  180. }
  181. // Arguments: cpFloat
  182. // Ret value: void
  183. JSBool JSB_cpConstraint_setMaxForce(JSContext *cx, uint32_t argc, jsval *vp) {
  184. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  185. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  186. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  187. cpConstraint* arg0 = (cpConstraint*) proxy->handle;
  188. jsval *argvp = JS_ARGV(cx,vp);
  189. JSBool ok = JS_TRUE;
  190. double arg1;
  191. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  192. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  193. cpConstraintSetMaxForce((cpConstraint*)arg0 , (cpFloat)arg1 );
  194. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  195. return JS_TRUE;
  196. }
  197. void JSB_cpConstraint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  198. {
  199. JSB_cpConstraint_class = (JSClass *)calloc(1, sizeof(JSClass));
  200. JSB_cpConstraint_class->name = name;
  201. JSB_cpConstraint_class->addProperty = JS_PropertyStub;
  202. JSB_cpConstraint_class->delProperty = JS_PropertyStub;
  203. JSB_cpConstraint_class->getProperty = JS_PropertyStub;
  204. JSB_cpConstraint_class->setProperty = JS_StrictPropertyStub;
  205. JSB_cpConstraint_class->enumerate = JS_EnumerateStub;
  206. JSB_cpConstraint_class->resolve = JS_ResolveStub;
  207. JSB_cpConstraint_class->convert = JS_ConvertStub;
  208. JSB_cpConstraint_class->finalize = JSB_cpConstraint_finalize;
  209. JSB_cpConstraint_class->flags = JSCLASS_HAS_PRIVATE;
  210. static JSPropertySpec properties[] = {
  211. {0, 0, 0, 0, 0}
  212. };
  213. static JSFunctionSpec funcs[] = {
  214. JS_FN("activateBodies", JSB_cpConstraint_activateBodies, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  215. JS_FN("destroy", JSB_cpConstraint_destroy, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  216. JS_FN("getA", JSB_cpConstraint_getA, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  217. JS_FN("getB", JSB_cpConstraint_getB, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  218. JS_FN("getErrorBias", JSB_cpConstraint_getErrorBias, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  219. JS_FN("getImpulse", JSB_cpConstraint_getImpulse, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  220. JS_FN("getMaxBias", JSB_cpConstraint_getMaxBias, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  221. JS_FN("getMaxForce", JSB_cpConstraint_getMaxForce, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  222. JS_FN("getSpace", JSB_cpConstraint_getSpace, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  223. JS_FN("setErrorBias", JSB_cpConstraint_setErrorBias, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  224. JS_FN("setMaxBias", JSB_cpConstraint_setMaxBias, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  225. JS_FN("setMaxForce", JSB_cpConstraint_setMaxForce, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  226. JS_FS_END
  227. };
  228. static JSFunctionSpec st_funcs[] = {
  229. JS_FS_END
  230. };
  231. JSB_cpConstraint_object = JS_InitClass(cx, globalObj, JSB_cpBase_object, JSB_cpConstraint_class, JSB_cpConstraint_constructor,0,properties,funcs,NULL,st_funcs);
  232. JSBool found;
  233. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  234. }
  235. /*
  236. * cpGrooveJoint
  237. */
  238. #pragma mark - cpGrooveJoint
  239. JSClass* JSB_cpGrooveJoint_class = NULL;
  240. JSObject* JSB_cpGrooveJoint_object = NULL;
  241. // Arguments: cpBody*, cpBody*, cpVect, cpVect, cpVect
  242. // Constructor
  243. JSBool JSB_cpGrooveJoint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  244. {
  245. JSB_PRECONDITION3(argc==5, cx, JS_FALSE, "Invalid number of arguments");
  246. JSObject *jsobj = JS_NewObject(cx, JSB_cpGrooveJoint_class, JSB_cpGrooveJoint_object, NULL);
  247. jsval *argvp = JS_ARGV(cx,vp);
  248. JSBool ok = JS_TRUE;
  249. cpBody* arg0; cpBody* arg1; cpVect arg2; cpVect arg3; cpVect arg4;
  250. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  251. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  252. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg2 );
  253. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg3 );
  254. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg4 );
  255. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  256. void* ret_val = cpGrooveJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpVect)arg2 , (cpVect)arg3 , (cpVect)arg4 );
  257. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  258. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  259. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  260. return JS_TRUE;
  261. }
  262. // Destructor
  263. void JSB_cpGrooveJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  264. {
  265. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  266. if( proxy ) {
  267. CCLOGINFO("jsbindings: finalizing JS object %p (cpGrooveJoint), handle: %p", jsthis, proxy->handle);
  268. jsb_del_jsobject_for_proxy(proxy->handle);
  269. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  270. cpConstraintFree( (cpConstraint*)proxy->handle);
  271. jsb_del_c_proxy_for_jsobject(jsthis);
  272. } else {
  273. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpGrooveJoint)", jsthis);
  274. }
  275. }
  276. // Arguments:
  277. // Ret value: cpVect
  278. JSBool JSB_cpGrooveJoint_getAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  279. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  280. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  281. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  282. cpGrooveJoint* arg0 = (cpGrooveJoint*) proxy->handle;
  283. cpVect ret_val;
  284. ret_val = cpGrooveJointGetAnchr2((cpConstraint*)arg0 );
  285. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  286. JS_SET_RVAL(cx, vp, ret_jsval);
  287. return JS_TRUE;
  288. }
  289. // Arguments:
  290. // Ret value: cpVect
  291. JSBool JSB_cpGrooveJoint_getGrooveA(JSContext *cx, uint32_t argc, jsval *vp) {
  292. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  293. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  294. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  295. cpGrooveJoint* arg0 = (cpGrooveJoint*) proxy->handle;
  296. cpVect ret_val;
  297. ret_val = cpGrooveJointGetGrooveA((cpConstraint*)arg0 );
  298. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  299. JS_SET_RVAL(cx, vp, ret_jsval);
  300. return JS_TRUE;
  301. }
  302. // Arguments:
  303. // Ret value: cpVect
  304. JSBool JSB_cpGrooveJoint_getGrooveB(JSContext *cx, uint32_t argc, jsval *vp) {
  305. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  306. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  307. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  308. cpGrooveJoint* arg0 = (cpGrooveJoint*) proxy->handle;
  309. cpVect ret_val;
  310. ret_val = cpGrooveJointGetGrooveB((cpConstraint*)arg0 );
  311. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  312. JS_SET_RVAL(cx, vp, ret_jsval);
  313. return JS_TRUE;
  314. }
  315. // Arguments: cpVect
  316. // Ret value: void
  317. JSBool JSB_cpGrooveJoint_setAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  318. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  319. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  320. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  321. cpGrooveJoint* arg0 = (cpGrooveJoint*) proxy->handle;
  322. jsval *argvp = JS_ARGV(cx,vp);
  323. JSBool ok = JS_TRUE;
  324. cpVect arg1;
  325. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  326. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  327. cpGrooveJointSetAnchr2((cpConstraint*)arg0 , (cpVect)arg1 );
  328. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  329. return JS_TRUE;
  330. }
  331. // Arguments: cpVect
  332. // Ret value: void
  333. JSBool JSB_cpGrooveJoint_setGrooveA(JSContext *cx, uint32_t argc, jsval *vp) {
  334. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  335. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  336. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  337. cpGrooveJoint* arg0 = (cpGrooveJoint*) proxy->handle;
  338. jsval *argvp = JS_ARGV(cx,vp);
  339. JSBool ok = JS_TRUE;
  340. cpVect arg1;
  341. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  342. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  343. cpGrooveJointSetGrooveA((cpConstraint*)arg0 , (cpVect)arg1 );
  344. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  345. return JS_TRUE;
  346. }
  347. // Arguments: cpVect
  348. // Ret value: void
  349. JSBool JSB_cpGrooveJoint_setGrooveB(JSContext *cx, uint32_t argc, jsval *vp) {
  350. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  351. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  352. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  353. cpGrooveJoint* arg0 = (cpGrooveJoint*) proxy->handle;
  354. jsval *argvp = JS_ARGV(cx,vp);
  355. JSBool ok = JS_TRUE;
  356. cpVect arg1;
  357. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  358. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  359. cpGrooveJointSetGrooveB((cpConstraint*)arg0 , (cpVect)arg1 );
  360. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  361. return JS_TRUE;
  362. }
  363. void JSB_cpGrooveJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  364. {
  365. JSB_cpGrooveJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  366. JSB_cpGrooveJoint_class->name = name;
  367. JSB_cpGrooveJoint_class->addProperty = JS_PropertyStub;
  368. JSB_cpGrooveJoint_class->delProperty = JS_PropertyStub;
  369. JSB_cpGrooveJoint_class->getProperty = JS_PropertyStub;
  370. JSB_cpGrooveJoint_class->setProperty = JS_StrictPropertyStub;
  371. JSB_cpGrooveJoint_class->enumerate = JS_EnumerateStub;
  372. JSB_cpGrooveJoint_class->resolve = JS_ResolveStub;
  373. JSB_cpGrooveJoint_class->convert = JS_ConvertStub;
  374. JSB_cpGrooveJoint_class->finalize = JSB_cpGrooveJoint_finalize;
  375. JSB_cpGrooveJoint_class->flags = JSCLASS_HAS_PRIVATE;
  376. static JSPropertySpec properties[] = {
  377. {0, 0, 0, 0, 0}
  378. };
  379. static JSFunctionSpec funcs[] = {
  380. JS_FN("getAnchr2", JSB_cpGrooveJoint_getAnchr2, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  381. JS_FN("getGrooveA", JSB_cpGrooveJoint_getGrooveA, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  382. JS_FN("getGrooveB", JSB_cpGrooveJoint_getGrooveB, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  383. JS_FN("setAnchr2", JSB_cpGrooveJoint_setAnchr2, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  384. JS_FN("setGrooveA", JSB_cpGrooveJoint_setGrooveA, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  385. JS_FN("setGrooveB", JSB_cpGrooveJoint_setGrooveB, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  386. JS_FS_END
  387. };
  388. static JSFunctionSpec st_funcs[] = {
  389. JS_FS_END
  390. };
  391. JSB_cpGrooveJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpGrooveJoint_class, JSB_cpGrooveJoint_constructor,0,properties,funcs,NULL,st_funcs);
  392. JSBool found;
  393. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  394. }
  395. /*
  396. * cpSimpleMotor
  397. */
  398. #pragma mark - cpSimpleMotor
  399. JSClass* JSB_cpSimpleMotor_class = NULL;
  400. JSObject* JSB_cpSimpleMotor_object = NULL;
  401. // Arguments: cpBody*, cpBody*, cpFloat
  402. // Constructor
  403. JSBool JSB_cpSimpleMotor_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  404. {
  405. JSB_PRECONDITION3(argc==3, cx, JS_FALSE, "Invalid number of arguments");
  406. JSObject *jsobj = JS_NewObject(cx, JSB_cpSimpleMotor_class, JSB_cpSimpleMotor_object, NULL);
  407. jsval *argvp = JS_ARGV(cx,vp);
  408. JSBool ok = JS_TRUE;
  409. cpBody* arg0; cpBody* arg1; double arg2;
  410. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  411. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  412. ok &= JS_ValueToNumber( cx, *argvp++, &arg2 );
  413. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  414. void* ret_val = cpSimpleMotorNew((cpBody*)arg0 , (cpBody*)arg1 , (cpFloat)arg2 );
  415. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  416. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  417. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  418. return JS_TRUE;
  419. }
  420. // Destructor
  421. void JSB_cpSimpleMotor_finalize(JSFreeOp *fop, JSObject *jsthis)
  422. {
  423. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  424. if( proxy ) {
  425. CCLOGINFO("jsbindings: finalizing JS object %p (cpSimpleMotor), handle: %p", jsthis, proxy->handle);
  426. jsb_del_jsobject_for_proxy(proxy->handle);
  427. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  428. cpConstraintFree( (cpConstraint*)proxy->handle);
  429. jsb_del_c_proxy_for_jsobject(jsthis);
  430. } else {
  431. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpSimpleMotor)", jsthis);
  432. }
  433. }
  434. // Arguments:
  435. // Ret value: cpFloat
  436. JSBool JSB_cpSimpleMotor_getRate(JSContext *cx, uint32_t argc, jsval *vp) {
  437. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  438. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  439. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  440. cpSimpleMotor* arg0 = (cpSimpleMotor*) proxy->handle;
  441. cpFloat ret_val;
  442. ret_val = cpSimpleMotorGetRate((cpConstraint*)arg0 );
  443. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  444. return JS_TRUE;
  445. }
  446. // Arguments: cpFloat
  447. // Ret value: void
  448. JSBool JSB_cpSimpleMotor_setRate(JSContext *cx, uint32_t argc, jsval *vp) {
  449. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  450. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  451. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  452. cpSimpleMotor* arg0 = (cpSimpleMotor*) proxy->handle;
  453. jsval *argvp = JS_ARGV(cx,vp);
  454. JSBool ok = JS_TRUE;
  455. double arg1;
  456. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  457. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  458. cpSimpleMotorSetRate((cpConstraint*)arg0 , (cpFloat)arg1 );
  459. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  460. return JS_TRUE;
  461. }
  462. void JSB_cpSimpleMotor_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  463. {
  464. JSB_cpSimpleMotor_class = (JSClass *)calloc(1, sizeof(JSClass));
  465. JSB_cpSimpleMotor_class->name = name;
  466. JSB_cpSimpleMotor_class->addProperty = JS_PropertyStub;
  467. JSB_cpSimpleMotor_class->delProperty = JS_PropertyStub;
  468. JSB_cpSimpleMotor_class->getProperty = JS_PropertyStub;
  469. JSB_cpSimpleMotor_class->setProperty = JS_StrictPropertyStub;
  470. JSB_cpSimpleMotor_class->enumerate = JS_EnumerateStub;
  471. JSB_cpSimpleMotor_class->resolve = JS_ResolveStub;
  472. JSB_cpSimpleMotor_class->convert = JS_ConvertStub;
  473. JSB_cpSimpleMotor_class->finalize = JSB_cpSimpleMotor_finalize;
  474. JSB_cpSimpleMotor_class->flags = JSCLASS_HAS_PRIVATE;
  475. static JSPropertySpec properties[] = {
  476. {0, 0, 0, 0, 0}
  477. };
  478. static JSFunctionSpec funcs[] = {
  479. JS_FN("getRate", JSB_cpSimpleMotor_getRate, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  480. JS_FN("setRate", JSB_cpSimpleMotor_setRate, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  481. JS_FS_END
  482. };
  483. static JSFunctionSpec st_funcs[] = {
  484. JS_FS_END
  485. };
  486. JSB_cpSimpleMotor_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpSimpleMotor_class, JSB_cpSimpleMotor_constructor,0,properties,funcs,NULL,st_funcs);
  487. JSBool found;
  488. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  489. }
  490. /*
  491. * cpPivotJoint
  492. */
  493. #pragma mark - cpPivotJoint
  494. JSClass* JSB_cpPivotJoint_class = NULL;
  495. JSObject* JSB_cpPivotJoint_object = NULL;
  496. // Arguments: cpBody*, cpBody*, cpVect
  497. // Constructor
  498. JSBool JSB_cpPivotJoint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  499. {
  500. JSB_PRECONDITION3(argc==3, cx, JS_FALSE, "Invalid number of arguments");
  501. JSObject *jsobj = JS_NewObject(cx, JSB_cpPivotJoint_class, JSB_cpPivotJoint_object, NULL);
  502. jsval *argvp = JS_ARGV(cx,vp);
  503. JSBool ok = JS_TRUE;
  504. cpBody* arg0; cpBody* arg1; cpVect arg2;
  505. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  506. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  507. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg2 );
  508. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  509. void* ret_val = cpPivotJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpVect)arg2 );
  510. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  511. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  512. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  513. return JS_TRUE;
  514. }
  515. // Destructor
  516. void JSB_cpPivotJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  517. {
  518. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  519. if( proxy ) {
  520. CCLOGINFO("jsbindings: finalizing JS object %p (cpPivotJoint), handle: %p", jsthis, proxy->handle);
  521. jsb_del_jsobject_for_proxy(proxy->handle);
  522. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  523. cpConstraintFree( (cpConstraint*)proxy->handle);
  524. jsb_del_c_proxy_for_jsobject(jsthis);
  525. } else {
  526. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpPivotJoint)", jsthis);
  527. }
  528. }
  529. // Arguments:
  530. // Ret value: cpVect
  531. JSBool JSB_cpPivotJoint_getAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  532. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  533. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  534. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  535. cpPivotJoint* arg0 = (cpPivotJoint*) proxy->handle;
  536. cpVect ret_val;
  537. ret_val = cpPivotJointGetAnchr1((cpConstraint*)arg0 );
  538. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  539. JS_SET_RVAL(cx, vp, ret_jsval);
  540. return JS_TRUE;
  541. }
  542. // Arguments:
  543. // Ret value: cpVect
  544. JSBool JSB_cpPivotJoint_getAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  545. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  546. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  547. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  548. cpPivotJoint* arg0 = (cpPivotJoint*) proxy->handle;
  549. cpVect ret_val;
  550. ret_val = cpPivotJointGetAnchr2((cpConstraint*)arg0 );
  551. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  552. JS_SET_RVAL(cx, vp, ret_jsval);
  553. return JS_TRUE;
  554. }
  555. // Arguments: cpVect
  556. // Ret value: void
  557. JSBool JSB_cpPivotJoint_setAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  558. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  559. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  560. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  561. cpPivotJoint* arg0 = (cpPivotJoint*) proxy->handle;
  562. jsval *argvp = JS_ARGV(cx,vp);
  563. JSBool ok = JS_TRUE;
  564. cpVect arg1;
  565. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  566. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  567. cpPivotJointSetAnchr1((cpConstraint*)arg0 , (cpVect)arg1 );
  568. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  569. return JS_TRUE;
  570. }
  571. // Arguments: cpVect
  572. // Ret value: void
  573. JSBool JSB_cpPivotJoint_setAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  574. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  575. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  576. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  577. cpPivotJoint* arg0 = (cpPivotJoint*) proxy->handle;
  578. jsval *argvp = JS_ARGV(cx,vp);
  579. JSBool ok = JS_TRUE;
  580. cpVect arg1;
  581. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  582. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  583. cpPivotJointSetAnchr2((cpConstraint*)arg0 , (cpVect)arg1 );
  584. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  585. return JS_TRUE;
  586. }
  587. void JSB_cpPivotJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  588. {
  589. JSB_cpPivotJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  590. JSB_cpPivotJoint_class->name = name;
  591. JSB_cpPivotJoint_class->addProperty = JS_PropertyStub;
  592. JSB_cpPivotJoint_class->delProperty = JS_PropertyStub;
  593. JSB_cpPivotJoint_class->getProperty = JS_PropertyStub;
  594. JSB_cpPivotJoint_class->setProperty = JS_StrictPropertyStub;
  595. JSB_cpPivotJoint_class->enumerate = JS_EnumerateStub;
  596. JSB_cpPivotJoint_class->resolve = JS_ResolveStub;
  597. JSB_cpPivotJoint_class->convert = JS_ConvertStub;
  598. JSB_cpPivotJoint_class->finalize = JSB_cpPivotJoint_finalize;
  599. JSB_cpPivotJoint_class->flags = JSCLASS_HAS_PRIVATE;
  600. static JSPropertySpec properties[] = {
  601. {0, 0, 0, 0, 0}
  602. };
  603. static JSFunctionSpec funcs[] = {
  604. JS_FN("getAnchr1", JSB_cpPivotJoint_getAnchr1, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  605. JS_FN("getAnchr2", JSB_cpPivotJoint_getAnchr2, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  606. JS_FN("setAnchr1", JSB_cpPivotJoint_setAnchr1, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  607. JS_FN("setAnchr2", JSB_cpPivotJoint_setAnchr2, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  608. JS_FS_END
  609. };
  610. static JSFunctionSpec st_funcs[] = {
  611. JS_FS_END
  612. };
  613. JSB_cpPivotJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpPivotJoint_class, JSB_cpPivotJoint_constructor,0,properties,funcs,NULL,st_funcs);
  614. JSBool found;
  615. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  616. }
  617. /*
  618. * cpPinJoint
  619. */
  620. #pragma mark - cpPinJoint
  621. JSClass* JSB_cpPinJoint_class = NULL;
  622. JSObject* JSB_cpPinJoint_object = NULL;
  623. // Arguments: cpBody*, cpBody*, cpVect, cpVect
  624. // Constructor
  625. JSBool JSB_cpPinJoint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  626. {
  627. JSB_PRECONDITION3(argc==4, cx, JS_FALSE, "Invalid number of arguments");
  628. JSObject *jsobj = JS_NewObject(cx, JSB_cpPinJoint_class, JSB_cpPinJoint_object, NULL);
  629. jsval *argvp = JS_ARGV(cx,vp);
  630. JSBool ok = JS_TRUE;
  631. cpBody* arg0; cpBody* arg1; cpVect arg2; cpVect arg3;
  632. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  633. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  634. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg2 );
  635. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg3 );
  636. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  637. void* ret_val = cpPinJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpVect)arg2 , (cpVect)arg3 );
  638. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  639. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  640. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  641. return JS_TRUE;
  642. }
  643. // Destructor
  644. void JSB_cpPinJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  645. {
  646. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  647. if( proxy ) {
  648. CCLOGINFO("jsbindings: finalizing JS object %p (cpPinJoint), handle: %p", jsthis, proxy->handle);
  649. jsb_del_jsobject_for_proxy(proxy->handle);
  650. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  651. cpConstraintFree( (cpConstraint*)proxy->handle);
  652. jsb_del_c_proxy_for_jsobject(jsthis);
  653. } else {
  654. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpPinJoint)", jsthis);
  655. }
  656. }
  657. // Arguments:
  658. // Ret value: cpVect
  659. JSBool JSB_cpPinJoint_getAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  660. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  661. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  662. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  663. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  664. cpVect ret_val;
  665. ret_val = cpPinJointGetAnchr1((cpConstraint*)arg0 );
  666. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  667. JS_SET_RVAL(cx, vp, ret_jsval);
  668. return JS_TRUE;
  669. }
  670. // Arguments:
  671. // Ret value: cpVect
  672. JSBool JSB_cpPinJoint_getAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  673. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  674. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  675. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  676. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  677. cpVect ret_val;
  678. ret_val = cpPinJointGetAnchr2((cpConstraint*)arg0 );
  679. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  680. JS_SET_RVAL(cx, vp, ret_jsval);
  681. return JS_TRUE;
  682. }
  683. // Arguments:
  684. // Ret value: cpFloat
  685. JSBool JSB_cpPinJoint_getDist(JSContext *cx, uint32_t argc, jsval *vp) {
  686. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  687. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  688. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  689. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  690. cpFloat ret_val;
  691. ret_val = cpPinJointGetDist((cpConstraint*)arg0 );
  692. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  693. return JS_TRUE;
  694. }
  695. // Arguments: cpVect
  696. // Ret value: void
  697. JSBool JSB_cpPinJoint_setAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  698. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  699. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  700. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  701. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  702. jsval *argvp = JS_ARGV(cx,vp);
  703. JSBool ok = JS_TRUE;
  704. cpVect arg1;
  705. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  706. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  707. cpPinJointSetAnchr1((cpConstraint*)arg0 , (cpVect)arg1 );
  708. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  709. return JS_TRUE;
  710. }
  711. // Arguments: cpVect
  712. // Ret value: void
  713. JSBool JSB_cpPinJoint_setAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  714. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  715. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  716. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  717. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  718. jsval *argvp = JS_ARGV(cx,vp);
  719. JSBool ok = JS_TRUE;
  720. cpVect arg1;
  721. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  722. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  723. cpPinJointSetAnchr2((cpConstraint*)arg0 , (cpVect)arg1 );
  724. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  725. return JS_TRUE;
  726. }
  727. // Arguments: cpFloat
  728. // Ret value: void
  729. JSBool JSB_cpPinJoint_setDist(JSContext *cx, uint32_t argc, jsval *vp) {
  730. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  731. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  732. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  733. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  734. jsval *argvp = JS_ARGV(cx,vp);
  735. JSBool ok = JS_TRUE;
  736. double arg1;
  737. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  738. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  739. cpPinJointSetDist((cpConstraint*)arg0 , (cpFloat)arg1 );
  740. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  741. return JS_TRUE;
  742. }
  743. void JSB_cpPinJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  744. {
  745. JSB_cpPinJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  746. JSB_cpPinJoint_class->name = name;
  747. JSB_cpPinJoint_class->addProperty = JS_PropertyStub;
  748. JSB_cpPinJoint_class->delProperty = JS_PropertyStub;
  749. JSB_cpPinJoint_class->getProperty = JS_PropertyStub;
  750. JSB_cpPinJoint_class->setProperty = JS_StrictPropertyStub;
  751. JSB_cpPinJoint_class->enumerate = JS_EnumerateStub;
  752. JSB_cpPinJoint_class->resolve = JS_ResolveStub;
  753. JSB_cpPinJoint_class->convert = JS_ConvertStub;
  754. JSB_cpPinJoint_class->finalize = JSB_cpPinJoint_finalize;
  755. JSB_cpPinJoint_class->flags = JSCLASS_HAS_PRIVATE;
  756. static JSPropertySpec properties[] = {
  757. {0, 0, 0, 0, 0}
  758. };
  759. static JSFunctionSpec funcs[] = {
  760. JS_FN("getAnchr1", JSB_cpPinJoint_getAnchr1, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  761. JS_FN("getAnchr2", JSB_cpPinJoint_getAnchr2, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  762. JS_FN("getDist", JSB_cpPinJoint_getDist, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  763. JS_FN("setAnchr1", JSB_cpPinJoint_setAnchr1, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  764. JS_FN("setAnchr2", JSB_cpPinJoint_setAnchr2, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  765. JS_FN("setDist", JSB_cpPinJoint_setDist, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  766. JS_FS_END
  767. };
  768. static JSFunctionSpec st_funcs[] = {
  769. JS_FS_END
  770. };
  771. JSB_cpPinJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpPinJoint_class, JSB_cpPinJoint_constructor,0,properties,funcs,NULL,st_funcs);
  772. JSBool found;
  773. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  774. }
  775. /*
  776. * cpSlideJoint
  777. */
  778. #pragma mark - cpSlideJoint
  779. JSClass* JSB_cpSlideJoint_class = NULL;
  780. JSObject* JSB_cpSlideJoint_object = NULL;
  781. // Arguments: cpBody*, cpBody*, cpVect, cpVect, cpFloat, cpFloat
  782. // Constructor
  783. JSBool JSB_cpSlideJoint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  784. {
  785. JSB_PRECONDITION3(argc==6, cx, JS_FALSE, "Invalid number of arguments");
  786. JSObject *jsobj = JS_NewObject(cx, JSB_cpSlideJoint_class, JSB_cpSlideJoint_object, NULL);
  787. jsval *argvp = JS_ARGV(cx,vp);
  788. JSBool ok = JS_TRUE;
  789. cpBody* arg0; cpBody* arg1; cpVect arg2; cpVect arg3; double arg4; double arg5;
  790. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  791. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  792. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg2 );
  793. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg3 );
  794. ok &= JS_ValueToNumber( cx, *argvp++, &arg4 );
  795. ok &= JS_ValueToNumber( cx, *argvp++, &arg5 );
  796. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  797. void* ret_val = cpSlideJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpVect)arg2 , (cpVect)arg3 , (cpFloat)arg4 , (cpFloat)arg5 );
  798. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  799. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  800. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  801. return JS_TRUE;
  802. }
  803. // Destructor
  804. void JSB_cpSlideJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  805. {
  806. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  807. if( proxy ) {
  808. CCLOGINFO("jsbindings: finalizing JS object %p (cpSlideJoint), handle: %p", jsthis, proxy->handle);
  809. jsb_del_jsobject_for_proxy(proxy->handle);
  810. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  811. cpConstraintFree( (cpConstraint*)proxy->handle);
  812. jsb_del_c_proxy_for_jsobject(jsthis);
  813. } else {
  814. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpSlideJoint)", jsthis);
  815. }
  816. }
  817. // Arguments:
  818. // Ret value: cpVect
  819. JSBool JSB_cpSlideJoint_getAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  820. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  821. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  822. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  823. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  824. cpVect ret_val;
  825. ret_val = cpSlideJointGetAnchr1((cpConstraint*)arg0 );
  826. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  827. JS_SET_RVAL(cx, vp, ret_jsval);
  828. return JS_TRUE;
  829. }
  830. // Arguments:
  831. // Ret value: cpVect
  832. JSBool JSB_cpSlideJoint_getAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  833. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  834. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  835. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  836. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  837. cpVect ret_val;
  838. ret_val = cpSlideJointGetAnchr2((cpConstraint*)arg0 );
  839. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  840. JS_SET_RVAL(cx, vp, ret_jsval);
  841. return JS_TRUE;
  842. }
  843. // Arguments:
  844. // Ret value: cpFloat
  845. JSBool JSB_cpSlideJoint_getMax(JSContext *cx, uint32_t argc, jsval *vp) {
  846. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  847. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  848. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  849. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  850. cpFloat ret_val;
  851. ret_val = cpSlideJointGetMax((cpConstraint*)arg0 );
  852. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  853. return JS_TRUE;
  854. }
  855. // Arguments:
  856. // Ret value: cpFloat
  857. JSBool JSB_cpSlideJoint_getMin(JSContext *cx, uint32_t argc, jsval *vp) {
  858. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  859. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  860. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  861. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  862. cpFloat ret_val;
  863. ret_val = cpSlideJointGetMin((cpConstraint*)arg0 );
  864. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  865. return JS_TRUE;
  866. }
  867. // Arguments: cpVect
  868. // Ret value: void
  869. JSBool JSB_cpSlideJoint_setAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  870. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  871. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  872. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  873. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  874. jsval *argvp = JS_ARGV(cx,vp);
  875. JSBool ok = JS_TRUE;
  876. cpVect arg1;
  877. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  878. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  879. cpSlideJointSetAnchr1((cpConstraint*)arg0 , (cpVect)arg1 );
  880. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  881. return JS_TRUE;
  882. }
  883. // Arguments: cpVect
  884. // Ret value: void
  885. JSBool JSB_cpSlideJoint_setAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  886. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  887. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  888. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  889. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  890. jsval *argvp = JS_ARGV(cx,vp);
  891. JSBool ok = JS_TRUE;
  892. cpVect arg1;
  893. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  894. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  895. cpSlideJointSetAnchr2((cpConstraint*)arg0 , (cpVect)arg1 );
  896. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  897. return JS_TRUE;
  898. }
  899. // Arguments: cpFloat
  900. // Ret value: void
  901. JSBool JSB_cpSlideJoint_setMax(JSContext *cx, uint32_t argc, jsval *vp) {
  902. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  903. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  904. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  905. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  906. jsval *argvp = JS_ARGV(cx,vp);
  907. JSBool ok = JS_TRUE;
  908. double arg1;
  909. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  910. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  911. cpSlideJointSetMax((cpConstraint*)arg0 , (cpFloat)arg1 );
  912. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  913. return JS_TRUE;
  914. }
  915. // Arguments: cpFloat
  916. // Ret value: void
  917. JSBool JSB_cpSlideJoint_setMin(JSContext *cx, uint32_t argc, jsval *vp) {
  918. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  919. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  920. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  921. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  922. jsval *argvp = JS_ARGV(cx,vp);
  923. JSBool ok = JS_TRUE;
  924. double arg1;
  925. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  926. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  927. cpSlideJointSetMin((cpConstraint*)arg0 , (cpFloat)arg1 );
  928. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  929. return JS_TRUE;
  930. }
  931. void JSB_cpSlideJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  932. {
  933. JSB_cpSlideJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  934. JSB_cpSlideJoint_class->name = name;
  935. JSB_cpSlideJoint_class->addProperty = JS_PropertyStub;
  936. JSB_cpSlideJoint_class->delProperty = JS_PropertyStub;
  937. JSB_cpSlideJoint_class->getProperty = JS_PropertyStub;
  938. JSB_cpSlideJoint_class->setProperty = JS_StrictPropertyStub;
  939. JSB_cpSlideJoint_class->enumerate = JS_EnumerateStub;
  940. JSB_cpSlideJoint_class->resolve = JS_ResolveStub;
  941. JSB_cpSlideJoint_class->convert = JS_ConvertStub;
  942. JSB_cpSlideJoint_class->finalize = JSB_cpSlideJoint_finalize;
  943. JSB_cpSlideJoint_class->flags = JSCLASS_HAS_PRIVATE;
  944. static JSPropertySpec properties[] = {
  945. {0, 0, 0, 0, 0}
  946. };
  947. static JSFunctionSpec funcs[] = {
  948. JS_FN("getAnchr1", JSB_cpSlideJoint_getAnchr1, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  949. JS_FN("getAnchr2", JSB_cpSlideJoint_getAnchr2, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  950. JS_FN("getMax", JSB_cpSlideJoint_getMax, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  951. JS_FN("getMin", JSB_cpSlideJoint_getMin, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  952. JS_FN("setAnchr1", JSB_cpSlideJoint_setAnchr1, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  953. JS_FN("setAnchr2", JSB_cpSlideJoint_setAnchr2, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  954. JS_FN("setMax", JSB_cpSlideJoint_setMax, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  955. JS_FN("setMin", JSB_cpSlideJoint_setMin, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  956. JS_FS_END
  957. };
  958. static JSFunctionSpec st_funcs[] = {
  959. JS_FS_END
  960. };
  961. JSB_cpSlideJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpSlideJoint_class, JSB_cpSlideJoint_constructor,0,properties,funcs,NULL,st_funcs);
  962. JSBool found;
  963. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  964. }
  965. /*
  966. * cpGearJoint
  967. */
  968. #pragma mark - cpGearJoint
  969. JSClass* JSB_cpGearJoint_class = NULL;
  970. JSObject* JSB_cpGearJoint_object = NULL;
  971. // Arguments: cpBody*, cpBody*, cpFloat, cpFloat
  972. // Constructor
  973. JSBool JSB_cpGearJoint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  974. {
  975. JSB_PRECONDITION3(argc==4, cx, JS_FALSE, "Invalid number of arguments");
  976. JSObject *jsobj = JS_NewObject(cx, JSB_cpGearJoint_class, JSB_cpGearJoint_object, NULL);
  977. jsval *argvp = JS_ARGV(cx,vp);
  978. JSBool ok = JS_TRUE;
  979. cpBody* arg0; cpBody* arg1; double arg2; double arg3;
  980. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  981. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  982. ok &= JS_ValueToNumber( cx, *argvp++, &arg2 );
  983. ok &= JS_ValueToNumber( cx, *argvp++, &arg3 );
  984. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  985. void* ret_val = cpGearJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpFloat)arg2 , (cpFloat)arg3 );
  986. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  987. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  988. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  989. return JS_TRUE;
  990. }
  991. // Destructor
  992. void JSB_cpGearJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  993. {
  994. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  995. if( proxy ) {
  996. CCLOGINFO("jsbindings: finalizing JS object %p (cpGearJoint), handle: %p", jsthis, proxy->handle);
  997. jsb_del_jsobject_for_proxy(proxy->handle);
  998. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  999. cpConstraintFree( (cpConstraint*)proxy->handle);
  1000. jsb_del_c_proxy_for_jsobject(jsthis);
  1001. } else {
  1002. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpGearJoint)", jsthis);
  1003. }
  1004. }
  1005. // Arguments:
  1006. // Ret value: cpFloat
  1007. JSBool JSB_cpGearJoint_getPhase(JSContext *cx, uint32_t argc, jsval *vp) {
  1008. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  1009. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  1010. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1011. cpGearJoint* arg0 = (cpGearJoint*) proxy->handle;
  1012. cpFloat ret_val;
  1013. ret_val = cpGearJointGetPhase((cpConstraint*)arg0 );
  1014. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  1015. return JS_TRUE;
  1016. }
  1017. // Arguments:
  1018. // Ret value: cpFloat
  1019. JSBool JSB_cpGearJoint_getRatio(JSContext *cx, uint32_t argc, jsval *vp) {
  1020. JSB_PRECONDITION3( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  1021. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  1022. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1023. cpGearJoint* arg0 = (cpGearJoint*) proxy->handle;
  1024. cpFloat ret_val;
  1025. ret_val = cpGearJointGetRatio((cpConstraint*)arg0 );
  1026. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  1027. return JS_TRUE;
  1028. }
  1029. // Arguments: cpFloat
  1030. // Ret value: void
  1031. JSBool JSB_cpGearJoint_setPhase(JSContext *cx, uint32_t argc, jsval *vp) {
  1032. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  1033. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  1034. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1035. cpGearJoint* arg0 = (cpGearJoint*) proxy->handle;
  1036. jsval *argvp = JS_ARGV(cx,vp);
  1037. JSBool ok = JS_TRUE;
  1038. double arg1;
  1039. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  1040. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  1041. cpGearJointSetPhase((cpConstraint*)arg0 , (cpFloat)arg1 );
  1042. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  1043. return JS_TRUE;
  1044. }
  1045. // Arguments: cpFloat
  1046. // Ret value: void
  1047. JSBool JSB_cpGearJoint_setRatio(JSContext *cx, uint32_t argc, jsval *vp) {
  1048. JSB_PRECONDITION3( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  1049. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  1050. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1051. cpGearJoint* arg0 = (cpGearJoint*) proxy->handle;
  1052. jsval *argvp = JS_ARGV(cx,vp);
  1053. JSBool ok = JS_TRUE;
  1054. double arg1;
  1055. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  1056. JSB_PRECONDITION3(ok, cx, JS_FALSE, "Error processing arguments");
  1057. cpGearJointSetRatio((cpConstraint*)arg0 , (cpFloat)arg1 );
  1058. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  1059. return JS_TRUE;
  1060. }
  1061. void JSB_cpGearJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  1062. {
  1063. JSB_cpGearJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  1064. JSB_cpGearJoint_class->name = name;
  1065. JSB_cpGearJoint_class->addProperty = JS_PropertyStub;
  1066. JSB_cpGearJoint_class->delProperty = JS_PropertyStub;
  1067. JSB_cpGearJoint_class->getProperty = JS_PropertyStub;
  1068. JSB_cpGearJoint_class->setProperty = JS_StrictPropertyStub;
  1069. JSB_cpGearJoint_class->enumerate = JS_EnumerateStub;
  1070. JSB_cpGearJoint_class->resolve = JS_ResolveStub;
  1071. JSB_cpGearJoint_class->convert = JS_ConvertStub;
  1072. JSB_cpGearJoint_class->finalize = JSB_cpGearJoint_finalize;
  1073. JSB_cpGearJoint_class->flags = JSCLASS_HAS_PRIVATE;
  1074. static JSPropertySpec properties[] = {
  1075. {0, 0, 0, 0, 0}
  1076. };
  1077. static JSFunctionSpec funcs[] = {
  1078. JS_FN("getPhase", JSB_cpGearJoint_getPhase, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  1079. JS_FN("getRatio", JSB_cpGearJoint_getRatio, 0, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  1080. JS_FN("setPhase", JSB_cpGearJoint_setPhase, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  1081. JS_FN("setRatio", JSB_cpGearJoint_setRatio, 1, JSPROP_PERMANENT | JSPROP_SHARED | JSPROP_ENUMERATE),
  1082. JS_FS_END
  1083. };
  1084. static JSFunctionSpec st_funcs[] = {
  1085. JS_FS_END
  1086. };
  1087. JSB_cpGearJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpGearJoint_class, JSB_cpGearJoint_constructor,0,properties,funcs,NULL,st_funcs);
  1088. JSBool found;
  1089. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  1090. }
  1091. /*
  1092. * cpDampedRotarySpring
  1093. */
  1094. #pragma mark - cpDampedRotarySpring
  1095. JSClass* JSB_cpDampedRotarySpring_class = NULL;
  1096. JSObject* JSB_cpDampedRotarySpring_object = NULL;
  1097. // Arguments: cpBody*, cpBody*, cpFloat, cpFloat, cpFloat
  1098. // Constructor
  1099. JSBool JSB_cpDampedRotarySpring_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  1100. {
  1101. JSB_PRECONDITION3(argc==5, cx, JS_FALSE, "Invalid number of arguments");
  1102. JSObject *jsobj = JS_NewObject(cx, JSB_cpDampedRotarySpring_class, JSB_cpDampedRotarySpring_object, NULL);
  1103. jsval *argvp = JS_ARGV(cx,vp);
  1104. JSBool ok = JS_TRUE;
  1105. cpBody* arg0; cpBody* arg1; double arg2; double arg3; double arg4;
  1106. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  1107. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  1108. ok &= JS_ValueToNumber( cx, *argvp++, &arg2 );
  1109. ok &= JS_ValueToNumber( cx, *argvp++, &arg3 );
  1110. ok &= JS_ValueToNumber( cx, *argvp++, &arg4 );
  1111. JSB_PRECONDITION3(ok, cx,

Large files files are truncated, but you can click here to view the full file