PageRenderTime 61ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 1ms

/cocos2d/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.cpp

https://github.com/shuaibin-lam/OpenBird
C++ | 4917 lines | 3515 code | 918 blank | 484 comment | 263 complexity | 6ce27da3c45b16a8151a08ef5787fffa MD5 | raw file
Possible License(s): MIT, BSD-2-Clause, CC-BY-SA-3.0, LGPL-3.0, LGPL-2.1, BSD-3-Clause

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_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments");
  23. JSB_PRECONDITION2(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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2(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_PRECONDITION2( 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_PRECONDITION2(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_PRECONDITION2( 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_PRECONDITION2(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_DeletePropertyStub;
  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_ENUMERATE),
  215. JS_FN("destroy", JSB_cpConstraint_destroy, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  216. JS_FN("getA", JSB_cpConstraint_getA, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  217. JS_FN("getB", JSB_cpConstraint_getB, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  218. JS_FN("getErrorBias", JSB_cpConstraint_getErrorBias, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  219. JS_FN("getImpulse", JSB_cpConstraint_getImpulse, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  220. JS_FN("getMaxBias", JSB_cpConstraint_getMaxBias, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  221. JS_FN("getMaxForce", JSB_cpConstraint_getMaxForce, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  222. JS_FN("getSpace", JSB_cpConstraint_getSpace, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  223. JS_FN("setErrorBias", JSB_cpConstraint_setErrorBias, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  224. JS_FN("setMaxBias", JSB_cpConstraint_setMaxBias, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  225. JS_FN("setMaxForce", JSB_cpConstraint_setMaxForce, 1, JSPROP_PERMANENT | 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_PRECONDITION2(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_PRECONDITION2(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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2(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_PRECONDITION2( 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_PRECONDITION2(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_PRECONDITION2( 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_PRECONDITION2(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_DeletePropertyStub;
  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_ENUMERATE),
  381. JS_FN("getGrooveA", JSB_cpGrooveJoint_getGrooveA, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  382. JS_FN("getGrooveB", JSB_cpGrooveJoint_getGrooveB, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  383. JS_FN("setAnchr2", JSB_cpGrooveJoint_setAnchr2, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  384. JS_FN("setGrooveA", JSB_cpGrooveJoint_setGrooveA, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  385. JS_FN("setGrooveB", JSB_cpGrooveJoint_setGrooveB, 1, JSPROP_PERMANENT | 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_PRECONDITION2(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_PRECONDITION2(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_PRECONDITION2( 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_PRECONDITION2( 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_PRECONDITION2(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_DeletePropertyStub;
  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_ENUMERATE),
  480. JS_FN("setRate", JSB_cpSimpleMotor_setRate, 1, JSPROP_PERMANENT | 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_PRECONDITION2(argc==4 || 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; cpVect arg3; void *ret_val;
  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. if(argc == 4) {
  509. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg3 );
  510. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  511. ret_val = cpPivotJointNew2((cpBody*)arg0 , (cpBody*)arg1 , (cpVect)arg2, (cpVect)arg3 );
  512. } else {
  513. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  514. ret_val = cpPivotJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpVect)arg2);
  515. }
  516. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  517. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  518. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  519. return JS_TRUE;
  520. }
  521. // Destructor
  522. void JSB_cpPivotJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  523. {
  524. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  525. if( proxy ) {
  526. CCLOGINFO("jsbindings: finalizing JS object %p (cpPivotJoint), handle: %p", jsthis, proxy->handle);
  527. jsb_del_jsobject_for_proxy(proxy->handle);
  528. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  529. cpConstraintFree( (cpConstraint*)proxy->handle);
  530. jsb_del_c_proxy_for_jsobject(jsthis);
  531. } else {
  532. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpPivotJoint)", jsthis);
  533. }
  534. }
  535. // Arguments:
  536. // Ret value: cpVect
  537. JSBool JSB_cpPivotJoint_getAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  538. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  539. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  540. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  541. cpPivotJoint* arg0 = (cpPivotJoint*) proxy->handle;
  542. cpVect ret_val;
  543. ret_val = cpPivotJointGetAnchr1((cpConstraint*)arg0 );
  544. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  545. JS_SET_RVAL(cx, vp, ret_jsval);
  546. return JS_TRUE;
  547. }
  548. // Arguments:
  549. // Ret value: cpVect
  550. JSBool JSB_cpPivotJoint_getAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  551. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  552. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  553. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  554. cpPivotJoint* arg0 = (cpPivotJoint*) proxy->handle;
  555. cpVect ret_val;
  556. ret_val = cpPivotJointGetAnchr2((cpConstraint*)arg0 );
  557. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  558. JS_SET_RVAL(cx, vp, ret_jsval);
  559. return JS_TRUE;
  560. }
  561. // Arguments: cpVect
  562. // Ret value: void
  563. JSBool JSB_cpPivotJoint_setAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  564. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  565. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  566. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  567. cpPivotJoint* arg0 = (cpPivotJoint*) proxy->handle;
  568. jsval *argvp = JS_ARGV(cx,vp);
  569. JSBool ok = JS_TRUE;
  570. cpVect arg1;
  571. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  572. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  573. cpPivotJointSetAnchr1((cpConstraint*)arg0 , (cpVect)arg1 );
  574. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  575. return JS_TRUE;
  576. }
  577. // Arguments: cpVect
  578. // Ret value: void
  579. JSBool JSB_cpPivotJoint_setAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  580. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  581. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  582. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  583. cpPivotJoint* arg0 = (cpPivotJoint*) proxy->handle;
  584. jsval *argvp = JS_ARGV(cx,vp);
  585. JSBool ok = JS_TRUE;
  586. cpVect arg1;
  587. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  588. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  589. cpPivotJointSetAnchr2((cpConstraint*)arg0 , (cpVect)arg1 );
  590. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  591. return JS_TRUE;
  592. }
  593. void JSB_cpPivotJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  594. {
  595. JSB_cpPivotJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  596. JSB_cpPivotJoint_class->name = name;
  597. JSB_cpPivotJoint_class->addProperty = JS_PropertyStub;
  598. JSB_cpPivotJoint_class->delProperty = JS_DeletePropertyStub;
  599. JSB_cpPivotJoint_class->getProperty = JS_PropertyStub;
  600. JSB_cpPivotJoint_class->setProperty = JS_StrictPropertyStub;
  601. JSB_cpPivotJoint_class->enumerate = JS_EnumerateStub;
  602. JSB_cpPivotJoint_class->resolve = JS_ResolveStub;
  603. JSB_cpPivotJoint_class->convert = JS_ConvertStub;
  604. JSB_cpPivotJoint_class->finalize = JSB_cpPivotJoint_finalize;
  605. JSB_cpPivotJoint_class->flags = JSCLASS_HAS_PRIVATE;
  606. static JSPropertySpec properties[] = {
  607. {0, 0, 0, 0, 0}
  608. };
  609. static JSFunctionSpec funcs[] = {
  610. JS_FN("getAnchr1", JSB_cpPivotJoint_getAnchr1, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  611. JS_FN("getAnchr2", JSB_cpPivotJoint_getAnchr2, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  612. JS_FN("setAnchr1", JSB_cpPivotJoint_setAnchr1, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  613. JS_FN("setAnchr2", JSB_cpPivotJoint_setAnchr2, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  614. JS_FS_END
  615. };
  616. static JSFunctionSpec st_funcs[] = {
  617. JS_FS_END
  618. };
  619. JSB_cpPivotJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpPivotJoint_class, JSB_cpPivotJoint_constructor,0,properties,funcs,NULL,st_funcs);
  620. JSBool found;
  621. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  622. }
  623. /*
  624. * cpPinJoint
  625. */
  626. #pragma mark - cpPinJoint
  627. JSClass* JSB_cpPinJoint_class = NULL;
  628. JSObject* JSB_cpPinJoint_object = NULL;
  629. // Arguments: cpBody*, cpBody*, cpVect, cpVect
  630. // Constructor
  631. JSBool JSB_cpPinJoint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  632. {
  633. JSB_PRECONDITION2(argc==4, cx, JS_FALSE, "Invalid number of arguments");
  634. JSObject *jsobj = JS_NewObject(cx, JSB_cpPinJoint_class, JSB_cpPinJoint_object, NULL);
  635. jsval *argvp = JS_ARGV(cx,vp);
  636. JSBool ok = JS_TRUE;
  637. cpBody* arg0; cpBody* arg1; cpVect arg2; cpVect arg3;
  638. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  639. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  640. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg2 );
  641. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg3 );
  642. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  643. void* ret_val = cpPinJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpVect)arg2 , (cpVect)arg3 );
  644. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  645. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  646. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  647. return JS_TRUE;
  648. }
  649. // Destructor
  650. void JSB_cpPinJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  651. {
  652. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  653. if( proxy ) {
  654. CCLOGINFO("jsbindings: finalizing JS object %p (cpPinJoint), handle: %p", jsthis, proxy->handle);
  655. jsb_del_jsobject_for_proxy(proxy->handle);
  656. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  657. cpConstraintFree( (cpConstraint*)proxy->handle);
  658. jsb_del_c_proxy_for_jsobject(jsthis);
  659. } else {
  660. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpPinJoint)", jsthis);
  661. }
  662. }
  663. // Arguments:
  664. // Ret value: cpVect
  665. JSBool JSB_cpPinJoint_getAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  666. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  667. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  668. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  669. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  670. cpVect ret_val;
  671. ret_val = cpPinJointGetAnchr1((cpConstraint*)arg0 );
  672. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  673. JS_SET_RVAL(cx, vp, ret_jsval);
  674. return JS_TRUE;
  675. }
  676. // Arguments:
  677. // Ret value: cpVect
  678. JSBool JSB_cpPinJoint_getAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  679. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  680. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  681. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  682. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  683. cpVect ret_val;
  684. ret_val = cpPinJointGetAnchr2((cpConstraint*)arg0 );
  685. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  686. JS_SET_RVAL(cx, vp, ret_jsval);
  687. return JS_TRUE;
  688. }
  689. // Arguments:
  690. // Ret value: cpFloat
  691. JSBool JSB_cpPinJoint_getDist(JSContext *cx, uint32_t argc, jsval *vp) {
  692. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  693. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  694. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  695. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  696. cpFloat ret_val;
  697. ret_val = cpPinJointGetDist((cpConstraint*)arg0 );
  698. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  699. return JS_TRUE;
  700. }
  701. // Arguments: cpVect
  702. // Ret value: void
  703. JSBool JSB_cpPinJoint_setAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  704. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  705. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  706. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  707. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  708. jsval *argvp = JS_ARGV(cx,vp);
  709. JSBool ok = JS_TRUE;
  710. cpVect arg1;
  711. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  712. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  713. cpPinJointSetAnchr1((cpConstraint*)arg0 , (cpVect)arg1 );
  714. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  715. return JS_TRUE;
  716. }
  717. // Arguments: cpVect
  718. // Ret value: void
  719. JSBool JSB_cpPinJoint_setAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  720. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  721. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  722. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  723. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  724. jsval *argvp = JS_ARGV(cx,vp);
  725. JSBool ok = JS_TRUE;
  726. cpVect arg1;
  727. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  728. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  729. cpPinJointSetAnchr2((cpConstraint*)arg0 , (cpVect)arg1 );
  730. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  731. return JS_TRUE;
  732. }
  733. // Arguments: cpFloat
  734. // Ret value: void
  735. JSBool JSB_cpPinJoint_setDist(JSContext *cx, uint32_t argc, jsval *vp) {
  736. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  737. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  738. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  739. cpPinJoint* arg0 = (cpPinJoint*) proxy->handle;
  740. jsval *argvp = JS_ARGV(cx,vp);
  741. JSBool ok = JS_TRUE;
  742. double arg1;
  743. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  744. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  745. cpPinJointSetDist((cpConstraint*)arg0 , (cpFloat)arg1 );
  746. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  747. return JS_TRUE;
  748. }
  749. void JSB_cpPinJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  750. {
  751. JSB_cpPinJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  752. JSB_cpPinJoint_class->name = name;
  753. JSB_cpPinJoint_class->addProperty = JS_PropertyStub;
  754. JSB_cpPinJoint_class->delProperty = JS_DeletePropertyStub;
  755. JSB_cpPinJoint_class->getProperty = JS_PropertyStub;
  756. JSB_cpPinJoint_class->setProperty = JS_StrictPropertyStub;
  757. JSB_cpPinJoint_class->enumerate = JS_EnumerateStub;
  758. JSB_cpPinJoint_class->resolve = JS_ResolveStub;
  759. JSB_cpPinJoint_class->convert = JS_ConvertStub;
  760. JSB_cpPinJoint_class->finalize = JSB_cpPinJoint_finalize;
  761. JSB_cpPinJoint_class->flags = JSCLASS_HAS_PRIVATE;
  762. static JSPropertySpec properties[] = {
  763. {0, 0, 0, 0, 0}
  764. };
  765. static JSFunctionSpec funcs[] = {
  766. JS_FN("getAnchr1", JSB_cpPinJoint_getAnchr1, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  767. JS_FN("getAnchr2", JSB_cpPinJoint_getAnchr2, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  768. JS_FN("getDist", JSB_cpPinJoint_getDist, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  769. JS_FN("setAnchr1", JSB_cpPinJoint_setAnchr1, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  770. JS_FN("setAnchr2", JSB_cpPinJoint_setAnchr2, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  771. JS_FN("setDist", JSB_cpPinJoint_setDist, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  772. JS_FS_END
  773. };
  774. static JSFunctionSpec st_funcs[] = {
  775. JS_FS_END
  776. };
  777. JSB_cpPinJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpPinJoint_class, JSB_cpPinJoint_constructor,0,properties,funcs,NULL,st_funcs);
  778. JSBool found;
  779. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  780. }
  781. /*
  782. * cpSlideJoint
  783. */
  784. #pragma mark - cpSlideJoint
  785. JSClass* JSB_cpSlideJoint_class = NULL;
  786. JSObject* JSB_cpSlideJoint_object = NULL;
  787. // Arguments: cpBody*, cpBody*, cpVect, cpVect, cpFloat, cpFloat
  788. // Constructor
  789. JSBool JSB_cpSlideJoint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  790. {
  791. JSB_PRECONDITION2(argc==6, cx, JS_FALSE, "Invalid number of arguments");
  792. JSObject *jsobj = JS_NewObject(cx, JSB_cpSlideJoint_class, JSB_cpSlideJoint_object, NULL);
  793. jsval *argvp = JS_ARGV(cx,vp);
  794. JSBool ok = JS_TRUE;
  795. cpBody* arg0; cpBody* arg1; cpVect arg2; cpVect arg3; double arg4; double arg5;
  796. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  797. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  798. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg2 );
  799. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg3 );
  800. ok &= JS_ValueToNumber( cx, *argvp++, &arg4 );
  801. ok &= JS_ValueToNumber( cx, *argvp++, &arg5 );
  802. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  803. void* ret_val = cpSlideJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpVect)arg2 , (cpVect)arg3 , (cpFloat)arg4 , (cpFloat)arg5 );
  804. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  805. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  806. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  807. return JS_TRUE;
  808. }
  809. // Destructor
  810. void JSB_cpSlideJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  811. {
  812. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  813. if( proxy ) {
  814. CCLOGINFO("jsbindings: finalizing JS object %p (cpSlideJoint), handle: %p", jsthis, proxy->handle);
  815. jsb_del_jsobject_for_proxy(proxy->handle);
  816. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  817. cpConstraintFree( (cpConstraint*)proxy->handle);
  818. jsb_del_c_proxy_for_jsobject(jsthis);
  819. } else {
  820. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpSlideJoint)", jsthis);
  821. }
  822. }
  823. // Arguments:
  824. // Ret value: cpVect
  825. JSBool JSB_cpSlideJoint_getAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  826. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  827. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  828. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  829. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  830. cpVect ret_val;
  831. ret_val = cpSlideJointGetAnchr1((cpConstraint*)arg0 );
  832. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  833. JS_SET_RVAL(cx, vp, ret_jsval);
  834. return JS_TRUE;
  835. }
  836. // Arguments:
  837. // Ret value: cpVect
  838. JSBool JSB_cpSlideJoint_getAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  839. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  840. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  841. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  842. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  843. cpVect ret_val;
  844. ret_val = cpSlideJointGetAnchr2((cpConstraint*)arg0 );
  845. jsval ret_jsval = cpVect_to_jsval( cx, (cpVect)ret_val );
  846. JS_SET_RVAL(cx, vp, ret_jsval);
  847. return JS_TRUE;
  848. }
  849. // Arguments:
  850. // Ret value: cpFloat
  851. JSBool JSB_cpSlideJoint_getMax(JSContext *cx, uint32_t argc, jsval *vp) {
  852. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  853. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  854. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  855. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  856. cpFloat ret_val;
  857. ret_val = cpSlideJointGetMax((cpConstraint*)arg0 );
  858. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  859. return JS_TRUE;
  860. }
  861. // Arguments:
  862. // Ret value: cpFloat
  863. JSBool JSB_cpSlideJoint_getMin(JSContext *cx, uint32_t argc, jsval *vp) {
  864. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  865. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  866. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  867. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  868. cpFloat ret_val;
  869. ret_val = cpSlideJointGetMin((cpConstraint*)arg0 );
  870. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  871. return JS_TRUE;
  872. }
  873. // Arguments: cpVect
  874. // Ret value: void
  875. JSBool JSB_cpSlideJoint_setAnchr1(JSContext *cx, uint32_t argc, jsval *vp) {
  876. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  877. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  878. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  879. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  880. jsval *argvp = JS_ARGV(cx,vp);
  881. JSBool ok = JS_TRUE;
  882. cpVect arg1;
  883. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  884. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  885. cpSlideJointSetAnchr1((cpConstraint*)arg0 , (cpVect)arg1 );
  886. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  887. return JS_TRUE;
  888. }
  889. // Arguments: cpVect
  890. // Ret value: void
  891. JSBool JSB_cpSlideJoint_setAnchr2(JSContext *cx, uint32_t argc, jsval *vp) {
  892. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  893. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  894. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  895. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  896. jsval *argvp = JS_ARGV(cx,vp);
  897. JSBool ok = JS_TRUE;
  898. cpVect arg1;
  899. ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &arg1 );
  900. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  901. cpSlideJointSetAnchr2((cpConstraint*)arg0 , (cpVect)arg1 );
  902. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  903. return JS_TRUE;
  904. }
  905. // Arguments: cpFloat
  906. // Ret value: void
  907. JSBool JSB_cpSlideJoint_setMax(JSContext *cx, uint32_t argc, jsval *vp) {
  908. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  909. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  910. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  911. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  912. jsval *argvp = JS_ARGV(cx,vp);
  913. JSBool ok = JS_TRUE;
  914. double arg1;
  915. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  916. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  917. cpSlideJointSetMax((cpConstraint*)arg0 , (cpFloat)arg1 );
  918. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  919. return JS_TRUE;
  920. }
  921. // Arguments: cpFloat
  922. // Ret value: void
  923. JSBool JSB_cpSlideJoint_setMin(JSContext *cx, uint32_t argc, jsval *vp) {
  924. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  925. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  926. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  927. cpSlideJoint* arg0 = (cpSlideJoint*) proxy->handle;
  928. jsval *argvp = JS_ARGV(cx,vp);
  929. JSBool ok = JS_TRUE;
  930. double arg1;
  931. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  932. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  933. cpSlideJointSetMin((cpConstraint*)arg0 , (cpFloat)arg1 );
  934. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  935. return JS_TRUE;
  936. }
  937. void JSB_cpSlideJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  938. {
  939. JSB_cpSlideJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  940. JSB_cpSlideJoint_class->name = name;
  941. JSB_cpSlideJoint_class->addProperty = JS_PropertyStub;
  942. JSB_cpSlideJoint_class->delProperty = JS_DeletePropertyStub;
  943. JSB_cpSlideJoint_class->getProperty = JS_PropertyStub;
  944. JSB_cpSlideJoint_class->setProperty = JS_StrictPropertyStub;
  945. JSB_cpSlideJoint_class->enumerate = JS_EnumerateStub;
  946. JSB_cpSlideJoint_class->resolve = JS_ResolveStub;
  947. JSB_cpSlideJoint_class->convert = JS_ConvertStub;
  948. JSB_cpSlideJoint_class->finalize = JSB_cpSlideJoint_finalize;
  949. JSB_cpSlideJoint_class->flags = JSCLASS_HAS_PRIVATE;
  950. static JSPropertySpec properties[] = {
  951. {0, 0, 0, 0, 0}
  952. };
  953. static JSFunctionSpec funcs[] = {
  954. JS_FN("getAnchr1", JSB_cpSlideJoint_getAnchr1, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  955. JS_FN("getAnchr2", JSB_cpSlideJoint_getAnchr2, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  956. JS_FN("getMax", JSB_cpSlideJoint_getMax, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  957. JS_FN("getMin", JSB_cpSlideJoint_getMin, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  958. JS_FN("setAnchr1", JSB_cpSlideJoint_setAnchr1, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  959. JS_FN("setAnchr2", JSB_cpSlideJoint_setAnchr2, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  960. JS_FN("setMax", JSB_cpSlideJoint_setMax, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  961. JS_FN("setMin", JSB_cpSlideJoint_setMin, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  962. JS_FS_END
  963. };
  964. static JSFunctionSpec st_funcs[] = {
  965. JS_FS_END
  966. };
  967. JSB_cpSlideJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpSlideJoint_class, JSB_cpSlideJoint_constructor,0,properties,funcs,NULL,st_funcs);
  968. JSBool found;
  969. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  970. }
  971. /*
  972. * cpGearJoint
  973. */
  974. #pragma mark - cpGearJoint
  975. JSClass* JSB_cpGearJoint_class = NULL;
  976. JSObject* JSB_cpGearJoint_object = NULL;
  977. // Arguments: cpBody*, cpBody*, cpFloat, cpFloat
  978. // Constructor
  979. JSBool JSB_cpGearJoint_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  980. {
  981. JSB_PRECONDITION2(argc==4, cx, JS_FALSE, "Invalid number of arguments");
  982. JSObject *jsobj = JS_NewObject(cx, JSB_cpGearJoint_class, JSB_cpGearJoint_object, NULL);
  983. jsval *argvp = JS_ARGV(cx,vp);
  984. JSBool ok = JS_TRUE;
  985. cpBody* arg0; cpBody* arg1; double arg2; double arg3;
  986. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  987. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  988. ok &= JS_ValueToNumber( cx, *argvp++, &arg2 );
  989. ok &= JS_ValueToNumber( cx, *argvp++, &arg3 );
  990. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  991. void* ret_val = cpGearJointNew((cpBody*)arg0 , (cpBody*)arg1 , (cpFloat)arg2 , (cpFloat)arg3 );
  992. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  993. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  994. JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj));
  995. return JS_TRUE;
  996. }
  997. // Destructor
  998. void JSB_cpGearJoint_finalize(JSFreeOp *fop, JSObject *jsthis)
  999. {
  1000. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1001. if( proxy ) {
  1002. CCLOGINFO("jsbindings: finalizing JS object %p (cpGearJoint), handle: %p", jsthis, proxy->handle);
  1003. jsb_del_jsobject_for_proxy(proxy->handle);
  1004. if(proxy->flags == JSB_C_FLAG_CALL_FREE)
  1005. cpConstraintFree( (cpConstraint*)proxy->handle);
  1006. jsb_del_c_proxy_for_jsobject(jsthis);
  1007. } else {
  1008. CCLOGINFO("jsbindings: finalizing uninitialized JS object %p (cpGearJoint)", jsthis);
  1009. }
  1010. }
  1011. // Arguments:
  1012. // Ret value: cpFloat
  1013. JSBool JSB_cpGearJoint_getPhase(JSContext *cx, uint32_t argc, jsval *vp) {
  1014. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  1015. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  1016. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1017. cpGearJoint* arg0 = (cpGearJoint*) proxy->handle;
  1018. cpFloat ret_val;
  1019. ret_val = cpGearJointGetPhase((cpConstraint*)arg0 );
  1020. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  1021. return JS_TRUE;
  1022. }
  1023. // Arguments:
  1024. // Ret value: cpFloat
  1025. JSBool JSB_cpGearJoint_getRatio(JSContext *cx, uint32_t argc, jsval *vp) {
  1026. JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" );
  1027. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  1028. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1029. cpGearJoint* arg0 = (cpGearJoint*) proxy->handle;
  1030. cpFloat ret_val;
  1031. ret_val = cpGearJointGetRatio((cpConstraint*)arg0 );
  1032. JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(ret_val));
  1033. return JS_TRUE;
  1034. }
  1035. // Arguments: cpFloat
  1036. // Ret value: void
  1037. JSBool JSB_cpGearJoint_setPhase(JSContext *cx, uint32_t argc, jsval *vp) {
  1038. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  1039. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  1040. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1041. cpGearJoint* arg0 = (cpGearJoint*) proxy->handle;
  1042. jsval *argvp = JS_ARGV(cx,vp);
  1043. JSBool ok = JS_TRUE;
  1044. double arg1;
  1045. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  1046. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  1047. cpGearJointSetPhase((cpConstraint*)arg0 , (cpFloat)arg1 );
  1048. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  1049. return JS_TRUE;
  1050. }
  1051. // Arguments: cpFloat
  1052. // Ret value: void
  1053. JSBool JSB_cpGearJoint_setRatio(JSContext *cx, uint32_t argc, jsval *vp) {
  1054. JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" );
  1055. JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp);
  1056. struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis);
  1057. cpGearJoint* arg0 = (cpGearJoint*) proxy->handle;
  1058. jsval *argvp = JS_ARGV(cx,vp);
  1059. JSBool ok = JS_TRUE;
  1060. double arg1;
  1061. ok &= JS_ValueToNumber( cx, *argvp++, &arg1 );
  1062. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  1063. cpGearJointSetRatio((cpConstraint*)arg0 , (cpFloat)arg1 );
  1064. JS_SET_RVAL(cx, vp, JSVAL_VOID);
  1065. return JS_TRUE;
  1066. }
  1067. void JSB_cpGearJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name )
  1068. {
  1069. JSB_cpGearJoint_class = (JSClass *)calloc(1, sizeof(JSClass));
  1070. JSB_cpGearJoint_class->name = name;
  1071. JSB_cpGearJoint_class->addProperty = JS_PropertyStub;
  1072. JSB_cpGearJoint_class->delProperty = JS_DeletePropertyStub;
  1073. JSB_cpGearJoint_class->getProperty = JS_PropertyStub;
  1074. JSB_cpGearJoint_class->setProperty = JS_StrictPropertyStub;
  1075. JSB_cpGearJoint_class->enumerate = JS_EnumerateStub;
  1076. JSB_cpGearJoint_class->resolve = JS_ResolveStub;
  1077. JSB_cpGearJoint_class->convert = JS_ConvertStub;
  1078. JSB_cpGearJoint_class->finalize = JSB_cpGearJoint_finalize;
  1079. JSB_cpGearJoint_class->flags = JSCLASS_HAS_PRIVATE;
  1080. static JSPropertySpec properties[] = {
  1081. {0, 0, 0, 0, 0}
  1082. };
  1083. static JSFunctionSpec funcs[] = {
  1084. JS_FN("getPhase", JSB_cpGearJoint_getPhase, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  1085. JS_FN("getRatio", JSB_cpGearJoint_getRatio, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  1086. JS_FN("setPhase", JSB_cpGearJoint_setPhase, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  1087. JS_FN("setRatio", JSB_cpGearJoint_setRatio, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE),
  1088. JS_FS_END
  1089. };
  1090. static JSFunctionSpec st_funcs[] = {
  1091. JS_FS_END
  1092. };
  1093. JSB_cpGearJoint_object = JS_InitClass(cx, globalObj, JSB_cpConstraint_object, JSB_cpGearJoint_class, JSB_cpGearJoint_constructor,0,properties,funcs,NULL,st_funcs);
  1094. JSBool found;
  1095. JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found);
  1096. }
  1097. /*
  1098. * cpDampedRotarySpring
  1099. */
  1100. #pragma mark - cpDampedRotarySpring
  1101. JSClass* JSB_cpDampedRotarySpring_class = NULL;
  1102. JSObject* JSB_cpDampedRotarySpring_object = NULL;
  1103. // Arguments: cpBody*, cpBody*, cpFloat, cpFloat, cpFloat
  1104. // Constructor
  1105. JSBool JSB_cpDampedRotarySpring_constructor(JSContext *cx, uint32_t argc, jsval *vp)
  1106. {
  1107. JSB_PRECONDITION2(argc==5, cx, JS_FALSE, "Invalid number of arguments");
  1108. JSObject *jsobj = JS_NewObject(cx, JSB_cpDampedRotarySpring_class, JSB_cpDampedRotarySpring_object, NULL);
  1109. jsval *argvp = JS_ARGV(cx,vp);
  1110. JSBool ok = JS_TRUE;
  1111. cpBody* arg0; cpBody* arg1; double arg2; double arg3; double arg4;
  1112. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg0, NULL );
  1113. ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, NULL );
  1114. ok &= JS_ValueToNumber( cx, *argvp++, &arg2 );
  1115. ok &= JS_ValueToNumber( cx, *argvp++, &arg3 );
  1116. ok &= JS_ValueToNumber( cx, *argvp++, &arg4 );
  1117. JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
  1118. void* ret_val = cpDampedRotarySpringNew((cpBody*)arg0 , (cpBody*)arg1 , (cpFloat)arg2 , (cpFloat)arg3 , (cpFloat)arg4 );
  1119. jsb_set_jsobject_for_proxy(jsobj, ret_val);
  1120. jsb_set_c_proxy_for_jsobject(jsobj, ret_val, JSB_C_FLAG_CALL_FREE);
  1121. JS_SET_RVAL(cx, vp, OBJECT_T

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