( object, raycaster, intersects )
| 6606 | }; |
| 6607 | |
| 6608 | var intersectObject = function ( object, raycaster, intersects ) { |
| 6609 | |
| 6610 | if ( object instanceof THREE.Particle ) { |
| 6611 | |
| 6612 | matrixPosition.getPositionFromMatrix( object.matrixWorld ); |
| 6613 | var distance = raycaster.ray.distanceToPoint( matrixPosition ); |
| 6614 | |
| 6615 | if ( distance > object.scale.x ) { |
| 6616 | |
| 6617 | return intersects; |
| 6618 | |
| 6619 | } |
| 6620 | |
| 6621 | intersects.push( { |
| 6622 | |
| 6623 | distance: distance, |
| 6624 | point: object.position, |
| 6625 | face: null, |
| 6626 | object: object |
| 6627 | |
| 6628 | } ); |
| 6629 | |
| 6630 | } else if ( object instanceof THREE.LOD ) { |
| 6631 | |
| 6632 | matrixPosition.getPositionFromMatrix( object.matrixWorld ); |
| 6633 | var distance = raycaster.ray.origin.distanceTo( matrixPosition ); |
| 6634 | |
| 6635 | intersectObject( object.getObjectForDistance( distance ), raycaster, intersects ); |
| 6636 | |
| 6637 | } else if ( object instanceof THREE.Mesh ) { |
| 6638 | |
| 6639 | var geometry = object.geometry; |
| 6640 | |
| 6641 | // Checking boundingSphere distance to ray |
| 6642 | matrixPosition.getPositionFromMatrix( object.matrixWorld ); |
| 6643 | |
| 6644 | if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere(); |
| 6645 | |
| 6646 | sphere.set( matrixPosition, geometry.boundingSphere.radius * object.matrixWorld.getMaxScaleOnAxis() ); |
| 6647 | |
| 6648 | if ( raycaster.ray.isIntersectionSphere( sphere ) === false ) { |
| 6649 | |
| 6650 | return intersects; |
| 6651 | |
| 6652 | } |
| 6653 | |
| 6654 | var vertices = geometry.vertices; |
| 6655 | |
| 6656 | if ( geometry instanceof THREE.BufferGeometry ) { |
| 6657 | |
| 6658 | var material = object.material; |
| 6659 | |
| 6660 | if ( material === undefined ) return intersects; |
| 6661 | if ( geometry.dynamic === false ) return intersects; |
| 6662 | |
| 6663 | var isFaceMaterial = object.material instanceof THREE.MeshFaceMaterial; |
| 6664 | var objectMaterials = isFaceMaterial === true ? object.material.materials : null; |
| 6665 |
no outgoing calls
no test coverage detected