+ def oRanNearRtRicDirections(self) -> list[Hex]:
+ q0 = (
+ 2 * self.oRanCuSpiralRadiusOfODus
+ + 3 * self.oRanCuSpiralRadiusOfODus * self.oRanDuSpiralRadiusOfORus
+ + self.oRanDuSpiralRadiusOfORus
+ + 1
+ )
+ r0 = self.oRanDuSpiralRadiusOfORus - self.oRanCuSpiralRadiusOfODus
+
+ q = 3 * q0 - self.oRanNearRtRicSpiralRadiusOfOCus
+ r = -r0 - self.oRanNearRtRicSpiralRadiusOfOCus
+
+ profile_id = self.id[2:-1]
+
+ if profile_id in {"111", "112", "113", "114"}:
+ q = 21 + 14 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -7 * self.oRanNearRtRicSpiralRadiusOfOCus
+ elif profile_id in {"121", "122", "123", "124"}:
+ q = 25 + 13 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = 9 + 10 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ elif profile_id in {"131", "132"}:
+ q = 49 + 30 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -21 - 34 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ elif profile_id == "133":
+ q = 74
+ r = 37
+ elif profile_id == "134":
+ q = 93
+ r = 50
+ elif profile_id in {"211", "212", "213", "214"}:
+ q = 34 + 23 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -10 * self.oRanNearRtRicSpiralRadiusOfOCus - 1
+ elif profile_id in {"221", "222", "223", "224"}:
+ q = 57 + 38 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -19 * self.oRanNearRtRicSpiralRadiusOfOCus
+ elif profile_id in {"231", "232", "233", "234"}:
+ q = 80 + 53 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -28 * self.oRanNearRtRicSpiralRadiusOfOCus - 1
+ elif profile_id in {"241", "242", "243", "244"}:
+ q = 103 + 68 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -39 * self.oRanNearRtRicSpiralRadiusOfOCus + 2 * (
+ self.oRanNearRtRicSpiralRadiusOfOCus - 1
+ )
+ elif profile_id in {"311", "312", "313", "314"}:
+ q = 47 + 32 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -11 - 13 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ elif profile_id in {"321", "322", "323", "324"}:
+ q = 79 + 53 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -24 - 25 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ elif profile_id in {"331", "332", "333", "334"}:
+ q = 111 + 75 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ r = -37 - 37 * (self.oRanNearRtRicSpiralRadiusOfOCus - 1)
+ else:
+ # Handle the default case or raise a warning
+ pass
+
+ s = -q - r
+ return [
+ Hex(q, r, s),
+ Hex(-s, -q, -r),
+ Hex(r, s, q),
+ Hex(-q, -r, -s),
+ Hex(s, q, r),
+ Hex(-r, -s, -q),
+ ]