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

Function intersectObject

Three.js/js/Three56.js:6004–6132  ·  view source on GitHub ↗
( object, raycaster, intersects )

Source from the content-addressed store, hash-verified

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 ];

Callers 2

intersectDescendantsFunction · 0.70
Three56.jsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected