Skip to content

Instantly share code, notes, and snippets.

@zhangwc
Created November 27, 2013 08:27
Show Gist options
  • Save zhangwc/7672419 to your computer and use it in GitHub Desktop.
Save zhangwc/7672419 to your computer and use it in GitHub Desktop.
get object3Ds which are selected
renderer.domElement.addEventListener( 'mousedown', handleMouseDown, false );
function handleMouseDown(event) {
event.preventDefault();
var mouseX =((event.clientX - container.offsetLeft )/ container.clientWidth )*2-1;
var mouseY =-((event.clientY - container.offsetTop )/ container.clientHeight )*2+1;
var vector = new THREE.Vector3(mouseX,mouseY);
var projector = new THREE.Projector();
projector.unprojectVector(vector, camera);
var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
var intersects = raycaster.intersectObjects(scene.children, true);
if ( intersects.length > 0 ) {
intersects[ 0 ].object.material.color.setHex( Math.random() * 0xffffff );
var particle = new THREE.Sprite(meterial);
particle.position = intersects[ 0 ].point;
particle.scale.x = particle.scale.y = 8;
scene.add( particle );
}
}
if ( intersects.length > 0 ) {
if ( INTERSECTED != intersects[0].object ) {
if ( INTERSECTED ) {
INTERSECTED.materials.emissive.setHex(INTERSECTED.currentHex);
}
INTERSECTED = intersects[0].object;
INTERSECTED.currentHex = INTERSECTED.material.emissive.getHex();
INTERSECTED.material.emissive.setHex( 0xff0000 );
}
else {
if ( INTERSECTED ) INTERSECTED.material.emissive.setHex( INTERSECTED.currentHex );
INTERSECTED = null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment