( object, raycaster, intersects )
| 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; |
no outgoing calls
no test coverage detected