intersectObjects( objects, recursive = true, intersects = [] ) {

		for ( let i = 0, l = objects.length; i < l; i ++ ) {

			intersect( objects[ i ], this, intersects, recursive );

		}

		intersects.sort( ascSort );

		return intersects;

	}
Checks all intersection between the ray and the objects with or without
the descendants. Intersections are returned sorted by distance, closest first.

@param {Array<Object3D>} objects - The 3D objects to check for intersection with the ray.
@param {boolean} [recursive=true] - If set to `true`, it also checks all descendants.
Otherwise it only checks intersection with the object.
@param {Array<Raycaster~Intersection>} [intersects=[]] The target array that holds the result of the method.
@return {Array<Raycaster~Intersection>} An array holding the intersection points.