未验证 提交 7f52269f 编写于 作者: W WestLangley 提交者: GitHub

Merge pull request #16970 from Mugen87/dev31

Examples: Clean up SelectionBox.
......@@ -8,6 +8,18 @@ THREE.SelectionBox = ( function () {
var frustum = new THREE.Frustum();
var center = new THREE.Vector3();
var tmpPoint = new THREE.Vector3();
var vecNear = new THREE.Vector3();
var vecTopLeft = new THREE.Vector3();
var vecTopRight = new THREE.Vector3();
var vecDownRight = new THREE.Vector3();
var vecDownLeft = new THREE.Vector3();
var vectemp1 = new THREE.Vector3();
var vectemp2 = new THREE.Vector3();
var vectemp3 = new THREE.Vector3();
function SelectionBox( camera, scene, deep ) {
this.camera = camera;
......@@ -40,25 +52,26 @@ THREE.SelectionBox = ( function () {
this.camera.updateProjectionMatrix();
this.camera.updateMatrixWorld();
var tmpPoint = startPoint.clone();
tmpPoint.copy( startPoint );
tmpPoint.x = Math.min( startPoint.x, endPoint.x );
tmpPoint.y = Math.max( startPoint.y, endPoint.y );
endPoint.x = Math.max( startPoint.x, endPoint.x );
endPoint.y = Math.min( startPoint.y, endPoint.y );
var vecNear = this.camera.position.clone();
var vecTopLeft = tmpPoint.clone();
var vecTopRight = new THREE.Vector3( endPoint.x, tmpPoint.y, 0 );
var vecDownRight = endPoint.clone();
var vecDownLeft = new THREE.Vector3( tmpPoint.x, endPoint.y, 0 );
vecNear.copy( this.camera.position );
vecTopLeft.copy( tmpPoint );
vecTopRight.set( endPoint.x, tmpPoint.y, 0 );
vecDownRight.copy( endPoint );
vecDownLeft.set( tmpPoint.x, endPoint.y, 0 );
vecTopLeft.unproject( this.camera );
vecTopRight.unproject( this.camera );
vecDownRight.unproject( this.camera );
vecDownLeft.unproject( this.camera );
var vectemp1 = vecTopLeft.clone().sub( vecNear );
var vectemp2 = vecTopRight.clone().sub( vecNear );
var vectemp3 = vecDownRight.clone().sub( vecNear );
vectemp1.copy( vecTopLeft ).sub( vecNear );
vectemp2.copy( vecTopRight ).sub( vecNear );
vectemp3.copy( vecDownRight ).sub( vecNear );
vectemp1.normalize();
vectemp2.normalize();
vectemp3.normalize();
......
......@@ -13,6 +13,18 @@ var SelectionBox = ( function () {
var frustum = new Frustum();
var center = new Vector3();
var tmpPoint = new Vector3();
var vecNear = new Vector3();
var vecTopLeft = new Vector3();
var vecTopRight = new Vector3();
var vecDownRight = new Vector3();
var vecDownLeft = new Vector3();
var vectemp1 = new Vector3();
var vectemp2 = new Vector3();
var vectemp3 = new Vector3();
function SelectionBox( camera, scene, deep ) {
this.camera = camera;
......@@ -45,25 +57,26 @@ var SelectionBox = ( function () {
this.camera.updateProjectionMatrix();
this.camera.updateMatrixWorld();
var tmpPoint = startPoint.clone();
tmpPoint.copy( startPoint );
tmpPoint.x = Math.min( startPoint.x, endPoint.x );
tmpPoint.y = Math.max( startPoint.y, endPoint.y );
endPoint.x = Math.max( startPoint.x, endPoint.x );
endPoint.y = Math.min( startPoint.y, endPoint.y );
var vecNear = this.camera.position.clone();
var vecTopLeft = tmpPoint.clone();
var vecTopRight = new Vector3( endPoint.x, tmpPoint.y, 0 );
var vecDownRight = endPoint.clone();
var vecDownLeft = new Vector3( tmpPoint.x, endPoint.y, 0 );
vecNear.copy( this.camera.position );
vecTopLeft.copy( tmpPoint );
vecTopRight.set( endPoint.x, tmpPoint.y, 0 );
vecDownRight.copy( endPoint );
vecDownLeft.set( tmpPoint.x, endPoint.y, 0 );
vecTopLeft.unproject( this.camera );
vecTopRight.unproject( this.camera );
vecDownRight.unproject( this.camera );
vecDownLeft.unproject( this.camera );
var vectemp1 = vecTopLeft.clone().sub( vecNear );
var vectemp2 = vecTopRight.clone().sub( vecNear );
var vectemp3 = vecDownRight.clone().sub( vecNear );
vectemp1.copy( vecTopLeft ).sub( vecNear );
vectemp2.copy( vecTopRight ).sub( vecNear );
vectemp3.copy( vecDownRight ).sub( vecNear );
vectemp1.normalize();
vectemp2.normalize();
vectemp3.normalize();
......
......@@ -172,7 +172,7 @@
for ( var i = 0; i < allSelected.length; i ++ ) {
allSelected[ i ].material.emissive.set( 0x0000ff );
allSelected[ i ].material.emissive.set( 0xffffff );
}
......@@ -191,7 +191,7 @@
for ( var i = 0; i < allSelected.length; i ++ ) {
allSelected[ i ].material.emissive.set( 0x0000ff );
allSelected[ i ].material.emissive.set( 0xffffff );
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册