MCPcopy Index your code
hub / github.com/stemkoski/stemkoski.github.com / intersectObject

Function intersectObject

7DFPS/js/Three.js:6608–6954  ·  view source on GitHub ↗
( object, raycaster, intersects )

Source from the content-addressed store, hash-verified

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

Callers 2

intersectDescendantsFunction · 0.70
Three.jsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected