MCPcopy
hub / github.com/stemkoski/stemkoski.github.com / intersectObject

Function intersectObject

Three.js/js/Three59dev.js:6403–6641  ·  view source on GitHub ↗
( object, raycaster, intersects )

Source from the content-addressed store, hash-verified

6401 };
6402
6403 var intersectObject = function ( object, raycaster, intersects ) {
6404
6405 if ( object instanceof THREE.Particle ) {
6406
6407 matrixPosition.getPositionFromMatrix( object.matrixWorld );
6408 var distance = raycaster.ray.distanceToPoint( matrixPosition );
6409
6410 if ( distance > object.scale.x ) {
6411
6412 return intersects;
6413
6414 }
6415
6416 intersects.push( {
6417
6418 distance: distance,
6419 point: object.position,
6420 face: null,
6421 object: object
6422
6423 } );
6424
6425 } else if ( object instanceof THREE.LOD ) {
6426
6427 matrixPosition.getPositionFromMatrix( object.matrixWorld );
6428 var distance = raycaster.ray.origin.distanceTo( matrixPosition );
6429
6430 intersectObject( object.getObjectForDistance( distance ), raycaster, intersects );
6431
6432 } else if (object instanceof THREE.Mesh ) {
6433
6434 // Checking boundingSphere distance to ray
6435 matrixPosition.getPositionFromMatrix( object.matrixWorld );
6436 sphere.set( matrixPosition, object.geometry.boundingSphere.radius * object.matrixWorld.getMaxScaleOnAxis() );
6437
6438 if ( raycaster.ray.isIntersectionSphere( sphere ) === false ) {
6439
6440 return intersects;
6441
6442 }
6443
6444 var geometry = object.geometry;
6445 var vertices = geometry.vertices;
6446
6447 if ( geometry instanceof THREE.BufferGeometry ) {
6448
6449 var material = object.material;
6450
6451 if ( material === undefined ) return intersects;
6452 if ( ! geometry.dynamic ) return intersects;
6453
6454 var isFaceMaterial = object.material instanceof THREE.MeshFaceMaterial;
6455 var objectMaterials = isFaceMaterial === true ? object.material.materials : null;
6456
6457 var side = object.material.side;
6458
6459 var a, b, c;
6460 var precision = raycaster.precision;

Callers 2

intersectDescendantsFunction · 0.70
Three59dev.jsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected