Skip to content

Commit

Permalink
fix(LeastDifferencePreference): preferred spot (#5667)
Browse files Browse the repository at this point in the history
  • Loading branch information
ccetl authored Feb 21, 2025
1 parent eb6a2bf commit 528fd51
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,22 +43,20 @@ class LeastDifferencePreference(
return eyesPos + baseRotation.directionVector * range
}

override fun getPreferredSpotOnBox(box: Box, eyesPos: Vec3d, range: Double): Vec3d? {
override fun getPreferredSpotOnBox(box: Box, eyesPos: Vec3d, range: Double): Vec3d {
if (basePoint != null) {
return basePoint
}

if (box.contains(eyesPos)) {
return eyesPos
}

val preferredSpot = getPreferredSpot(eyesPos, range)
if (box.contains(preferredSpot)) {
return preferredSpot
}

val look = Line(eyesPos, preferredSpot - eyesPos)
return look.getPointOnBoxInDirection(box)?.takeIf { it.squaredDistanceTo(eyesPos) <= range.sq() }
return look.getPointOnBoxInDirection(box)
?.takeIf { it.squaredDistanceTo(eyesPos) <= range.sq() }
?: preferredSpot
}

override fun compare(o1: Rotation, o2: Rotation): Int {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ interface RotationPreference : Comparator<Rotation> {

fun getPreferredSpot(eyesPos: Vec3d, range: Double, ): Vec3d

fun getPreferredSpotOnBox(box: Box, eyesPos: Vec3d, range: Double): Vec3d? {
fun getPreferredSpotOnBox(box: Box, eyesPos: Vec3d, range: Double): Vec3d {
return getPreferredSpot(eyesPos, range)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ fun raytraceBox(
val rangeSquared = range * range
val wallsRangeSquared = wallsRange * wallsRange

val preferredSpot = rotationPreference.getPreferredSpotOnBox(box, eyes, range) ?: return null
val preferredSpot = rotationPreference.getPreferredSpotOnBox(box, eyes, range)
val preferredSpotOnBox = if (box.contains(eyes) && box.contains(preferredSpot)) {
preferredSpot
} else {
Expand Down

0 comments on commit 528fd51

Please sign in to comment.