( object, raycaster, intersects )
| 6002 | }; |
| 6003 | |
| 6004 | var intersectObject = function ( object, raycaster, intersects ) { |
| 6005 | |
| 6006 | if ( object instanceof THREE.Particle ) { |
| 6007 | |
| 6008 | matrixPosition.getPositionFromMatrix( object.matrixWorld ); |
| 6009 | var distance = raycaster.ray.distanceToPoint( matrixPosition ); |
| 6010 | |
| 6011 | if ( distance > object.scale.x ) { |
| 6012 | |
| 6013 | return intersects; |
| 6014 | |
| 6015 | } |
| 6016 | |
| 6017 | intersects.push( { |
| 6018 | |
| 6019 | distance: distance, |
| 6020 | point: object.position, |
| 6021 | face: null, |
| 6022 | object: object |
| 6023 | |
| 6024 | } ); |
| 6025 | |
| 6026 | } else if ( object instanceof THREE.Mesh ) { |
| 6027 | |
| 6028 | // Checking boundingSphere distance to ray |
| 6029 | matrixPosition.getPositionFromMatrix( object.matrixWorld ); |
| 6030 | sphere.set( |
| 6031 | matrixPosition, |
| 6032 | object.geometry.boundingSphere.radius * object.matrixWorld.getMaxScaleOnAxis() ); |
| 6033 | |
| 6034 | if ( ! raycaster.ray.isIntersectionSphere( sphere ) ) { |
| 6035 | |
| 6036 | return intersects; |
| 6037 | |
| 6038 | } |
| 6039 | |
| 6040 | // Checking faces |
| 6041 | |
| 6042 | var geometry = object.geometry; |
| 6043 | var vertices = geometry.vertices; |
| 6044 | |
| 6045 | var isFaceMaterial = object.material instanceof THREE.MeshFaceMaterial; |
| 6046 | var objectMaterials = isFaceMaterial === true ? object.material.materials : null; |
| 6047 | |
| 6048 | var side = object.material.side; |
| 6049 | |
| 6050 | var a, b, c, d; |
| 6051 | var precision = raycaster.precision; |
| 6052 | |
| 6053 | object.matrixRotationWorld.extractRotation( object.matrixWorld ); |
| 6054 | |
| 6055 | inverseMatrix.getInverse( object.matrixWorld ); |
| 6056 | |
| 6057 | localRay.copy( raycaster.ray ).applyMatrix4( inverseMatrix ); |
| 6058 | |
| 6059 | for ( var f = 0, fl = geometry.faces.length; f < fl; f ++ ) { |
| 6060 | |
| 6061 | var face = geometry.faces[ f ]; |
no outgoing calls
no test coverage detected