/** * Überprüft, ob ein Strahl die Box schneidet und liefert den Schnittpunkt in Form eines Skalars * t, so dass <code>ray.getPoint(t)}</code> den Vektor ergibt. * * @param ray Der Strahl * @param nearBound Der nähste, gültige Punkt * @param farBound Der weiteste, gültige Punkt * @return <code>null</code>, wenn der Strahl die Box nicht innerhalb der Range schneidet, * ansonsten der Punkt */ @Nullable @ReturnsCachedValue public final Vector3 getIntersectionV( @NotNull final Ray3 ray, final float nearBound, final float farBound) { final float t = getIntersectionF(ray, nearBound, farBound); return Float.isNaN(t) ? null : ray.getPoint(t); }
/** * Bezieht einen Strahl, der in die entgegengesetzte Richtung zeigt * * @return Der Strahl */ @NotNull @ReturnsCachedValue public Ray3 getInverted() { Vector3 inverted = direction.getInverted(); Ray3 ray = Ray3.createNew(origin, inverted); inverted.recycle(); return ray; }