From 3e351882cd759ce58b676a33b48831b47517e201 Mon Sep 17 00:00:00 2001 From: joshuastray Date: Tue, 31 Mar 2015 14:10:54 +0800 Subject: [PATCH] make camera.unproject accept one argument --- .../bindings/manual/cocos2d_specifics.cpp | 12 +++++++++-- .../js-tests/src/Camera3DTest/Camera3DTest.js | 21 +++++++++---------- .../js-tests/src/Sprite3DTest/Sprite3DTest.js | 10 ++++----- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/frameworks/js-bindings/bindings/manual/cocos2d_specifics.cpp b/frameworks/js-bindings/bindings/manual/cocos2d_specifics.cpp index 7bb402f5ba..b21083a85d 100644 --- a/frameworks/js-bindings/bindings/manual/cocos2d_specifics.cpp +++ b/frameworks/js-bindings/bindings/manual/cocos2d_specifics.cpp @@ -4938,7 +4938,15 @@ bool js_cocos2dx_Camera_unproject(JSContext *cx, uint32_t argc, jsval *vp) args.rval().set(vector3_to_jsval(cx, arg2)); return true; } - + else if (argc == 1) + { + cocos2d::Vec3 arg0; + ok &= jsval_to_vector3(cx, args.get(0), &arg0); + JSB_PRECONDITION2(ok, cx, false, "js_cocos2dx_Camera_unproject : Error processing arguments"); + cocos2d::Vec3 ret = cobj->unproject(arg0); + args.rval().set(vector3_to_jsval(cx, ret)); + return true; + } JS_ReportError(cx, "js_cocos2dx_Camera_unproject : wrong number of arguments: %d, was expecting %d", argc, 2); return false; } @@ -5435,7 +5443,7 @@ void register_cocos2dx_js_core(JSContext* cx, JS::HandleObject global) JS_DefineFunction(cx, global, "garbageCollect", js_forceGC, 1, JSPROP_READONLY | JSPROP_PERMANENT); tmpObj.set(jsb_cocos2d_Camera_prototype); - JS_DefineFunction(cx, tmpObj, "unproject", js_cocos2dx_Camera_unproject, 2, JSPROP_ENUMERATE | JSPROP_PERMANENT); + JS_DefineFunction(cx, tmpObj, "unproject", js_cocos2dx_Camera_unproject, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, tmpObj, "isVisibleInFrustum", js_cocos2dx_Camera_isVisibleInFrustum, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); tmpObj.set(jsb_cocos2d_ClippingNode_prototype); diff --git a/samples/js-tests/src/Camera3DTest/Camera3DTest.js b/samples/js-tests/src/Camera3DTest/Camera3DTest.js index 16b82726f4..83f665a541 100644 --- a/samples/js-tests/src/Camera3DTest/Camera3DTest.js +++ b/samples/js-tests/src/Camera3DTest/Camera3DTest.js @@ -604,9 +604,8 @@ var Camera3DTest = (function(){ var nearP = cc.math.vec3(location.x, location.y, -1); var farP = cc.math.vec3(location.x, location.y, 1); - var size = cc.winSize; - nearP = this._camera.unproject(size, nearP); - farP = this._camera.unproject(size, farP); + nearP = this._camera.unproject(nearP); + farP = this._camera.unproject(farP); var dir = cc.math.vec3(farP.x-nearP.x, farP.y-nearP.y, farP.z-nearP.z); var ndd = dir.y; // (0, 1, 0) * dir @@ -887,27 +886,27 @@ var CameraCullingDemo = Camera3DTestDemo.extend({ // top-left var src = cc.math.vec3(0, 0, 0); - var tl_0 = this._cameraFirst.unproject(size, src); + var tl_0 = this._cameraFirst.unproject(src); src = cc.math.vec3(0, 0, 1); - var tl_1 = this._cameraFirst.unproject(size, src); + var tl_1 = this._cameraFirst.unproject(src); // top-right src = cc.math.vec3(size.width, 0, 0); - var tr_0 = this._cameraFirst.unproject(size, src); + var tr_0 = this._cameraFirst.unproject(src); src = cc.math.vec3(size.width, 0, 1); - var tr_1 = this._cameraFirst.unproject(size, src); + var tr_1 = this._cameraFirst.unproject(src); // bottom-left src = cc.math.vec3(0, size.height, 0); - var bl_0 = this._cameraFirst.unproject(size, src); + var bl_0 = this._cameraFirst.unproject(src); src = cc.math.vec3(0, size.height, 1); - var bl_1 = this._cameraFirst.unproject(size, src); + var bl_1 = this._cameraFirst.unproject(src); // bottom-right src = cc.math.vec3(size.width, size.height, 0); - var br_0 = this._cameraFirst.unproject(size, src); + var br_0 = this._cameraFirst.unproject(src); src = cc.math.vec3(size.width, size.height, 1); - var br_1 = this._cameraFirst.unproject(size, src); + var br_1 = this._cameraFirst.unproject(src); this._drawFrustum.drawLine(tl_0, tl_1, color); this._drawFrustum.drawLine(tr_0, tr_1, color); diff --git a/samples/js-tests/src/Sprite3DTest/Sprite3DTest.js b/samples/js-tests/src/Sprite3DTest/Sprite3DTest.js index f2ada88991..66fc1318fa 100644 --- a/samples/js-tests/src/Sprite3DTest/Sprite3DTest.js +++ b/samples/js-tests/src/Sprite3DTest/Sprite3DTest.js @@ -773,13 +773,12 @@ var Sprite3DWithOBBPerformanceTest = Sprite3DTestDemo.extend({ calculateRayByLocationInView:function(location){ var camera = cc.Camera.getDefaultCamera(); - var size = cc.winSize; var src = cc.math.vec3(location.x, location.y, -1); - var nearPoint = camera.unproject(size, src); + var nearPoint = camera.unproject(src); src = cc.math.vec3(location.x, location.y, 1); - var farPoint = camera.unproject(size, src); + var farPoint = camera.unproject(src); var direction = cc.math.vec3(farPoint.x - nearPoint.x, farPoint.y - nearPoint.y, farPoint.z - nearPoint.z); direction.normalize(); @@ -1469,9 +1468,8 @@ var Sprite3DFakeShadowTest = Sprite3DTestDemo.extend({ var nearP = cc.math.vec3(location.x, location.y, -1); var farP = cc.math.vec3(location.x, location.y, 1); - var size = cc.winSize; - nearP = this._camera.unproject(size, nearP); - farP = this._camera.unproject(size, farP); + nearP = this._camera.unproject(nearP); + farP = this._camera.unproject(farP); var dir = cc.math.vec3(farP.x-nearP.x, farP.y-nearP.y, farP.z-nearP.z); var ndd = dir.y; // (0, 1, 0) * dir