Explorar el Código

Raycaster: add Raycaster.stopTraversal() (#27709)

* Raycaster: add stop traversal on demand

* Raycaster: fix CI warn Implicit operand conversion

* Raycaster: stopTraversal on current branch only

* raycast stop traversal of children when return true

* Update Raycaster.js

Fix code style.

* Update Raycaster.js

Fix check.

---------

Co-authored-by: Michael Herzog <[email protected]>
Alaric.Baraou hace 1 año
padre
commit
258c28f958
Se han modificado 1 ficheros con 4 adiciones y 2 borrados
  1. 4 2
      src/core/Raycaster.js

+ 4 - 2
src/core/Raycaster.js

@@ -101,13 +101,15 @@ function ascSort( a, b ) {
 
 function intersect( object, raycaster, intersects, recursive ) {
 
+	let stopTraversal = false;
+
 	if ( object.layers.test( raycaster.layers ) ) {
 
-		object.raycast( raycaster, intersects );
+		stopTraversal = object.raycast( raycaster, intersects );
 
 	}
 
-	if ( recursive === true ) {
+	if ( recursive === true && stopTraversal !== true ) {
 
 		const children = object.children;