|
@@ -25,9 +25,9 @@
|
|
var camera, scene, renderer;
|
|
var camera, scene, renderer;
|
|
var controller1, controller2;
|
|
var controller1, controller2;
|
|
|
|
|
|
- var controls;
|
|
|
|
|
|
+ var cursor = new THREE.Vector3();
|
|
|
|
|
|
- var up = new THREE.Vector3( 0, 1, 0 );
|
|
|
|
|
|
+ var controls;
|
|
|
|
|
|
init();
|
|
init();
|
|
animate();
|
|
animate();
|
|
@@ -131,8 +131,6 @@
|
|
controller1.addEventListener( 'squeezestart', onSequeezeStart );
|
|
controller1.addEventListener( 'squeezestart', onSequeezeStart );
|
|
controller1.addEventListener( 'squeezeend', onSqueezeEned );
|
|
controller1.addEventListener( 'squeezeend', onSqueezeEned );
|
|
controller1.userData.painter = painter1;
|
|
controller1.userData.painter = painter1;
|
|
- controller1.userData.points = [ new THREE.Vector3(), new THREE.Vector3() ];
|
|
|
|
- controller1.userData.matrices = [ new THREE.Matrix4(), new THREE.Matrix4() ];
|
|
|
|
scene.add( controller1 );
|
|
scene.add( controller1 );
|
|
|
|
|
|
controller2 = renderer.xr.getController( 1 );
|
|
controller2 = renderer.xr.getController( 1 );
|
|
@@ -141,8 +139,6 @@
|
|
controller2.addEventListener( 'squeezestart', onSequeezeStart );
|
|
controller2.addEventListener( 'squeezestart', onSequeezeStart );
|
|
controller2.addEventListener( 'squeezeend', onSqueezeEned );
|
|
controller2.addEventListener( 'squeezeend', onSqueezeEned );
|
|
controller2.userData.painter = painter2;
|
|
controller2.userData.painter = painter2;
|
|
- controller2.userData.points = [ new THREE.Vector3(), new THREE.Vector3() ];
|
|
|
|
- controller2.userData.matrices = [ new THREE.Matrix4(), new THREE.Matrix4() ];
|
|
|
|
scene.add( controller2 );
|
|
scene.add( controller2 );
|
|
|
|
|
|
//
|
|
//
|
|
@@ -180,20 +176,10 @@
|
|
function handleController( controller ) {
|
|
function handleController( controller ) {
|
|
|
|
|
|
var userData = controller.userData;
|
|
var userData = controller.userData;
|
|
-
|
|
|
|
- var point1 = userData.points[ 0 ];
|
|
|
|
- var point2 = userData.points[ 1 ];
|
|
|
|
-
|
|
|
|
- var matrix1 = userData.matrices[ 0 ];
|
|
|
|
- var matrix2 = userData.matrices[ 1 ];
|
|
|
|
|
|
+ var painter = userData.painter;
|
|
|
|
|
|
var pivot = controller.getObjectByName( 'pivot' );
|
|
var pivot = controller.getObjectByName( 'pivot' );
|
|
|
|
|
|
- point1.setFromMatrixPosition( pivot.matrixWorld );
|
|
|
|
- matrix1.lookAt( point2, point1, up );
|
|
|
|
-
|
|
|
|
- var painter = userData.painter;
|
|
|
|
-
|
|
|
|
if ( userData.isSqueezing === true ) {
|
|
if ( userData.isSqueezing === true ) {
|
|
|
|
|
|
var delta = ( controller.position.y - userData.positionAtSqueezeStart ) * 5;
|
|
var delta = ( controller.position.y - userData.positionAtSqueezeStart ) * 5;
|
|
@@ -204,19 +190,19 @@
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ cursor.setFromMatrixPosition( pivot.matrixWorld );
|
|
|
|
+
|
|
if ( userData.isSelecting === true ) {
|
|
if ( userData.isSelecting === true ) {
|
|
|
|
|
|
- var count = painter.mesh.geometry.drawRange.count;
|
|
|
|
|
|
+ painter.lineTo( cursor );
|
|
|
|
+ painter.update();
|
|
|
|
|
|
- painter.stroke( point1, point2, matrix1, matrix2 );
|
|
|
|
|
|
+ } else {
|
|
|
|
|
|
- painter.updateGeometry( count, painter.mesh.geometry.drawRange.count );
|
|
|
|
|
|
+ painter.moveTo( cursor );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- point2.copy( point1 );
|
|
|
|
- matrix2.copy( matrix1 );
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
function animate() {
|
|
function animate() {
|