hexagon_map/point/
convert.rs1use super::*;
2use crate::HPoint;
3
4impl From<CubicPoint> for AxialPoint {
5 fn from(point: CubicPoint) -> Self {
9 AxialPoint::new(point.q, point.p - point.q)
10 }
11}
12
13impl HexPoint for CubicPoint {
14 fn as_cubic_point(&self) -> CubicPoint {
15 *self
16 }
17 fn as_axial_point(&self) -> AxialPoint {
18 AxialPoint::from(*self)
19 }
20}
21
22impl From<AxialPoint> for CubicPoint {
23 fn from(point: AxialPoint) -> Self {
27 CubicPoint::new(point.q + point.r, point.q)
28 }
29}
30
31impl HexPoint for AxialPoint {
32 fn as_cubic_point(&self) -> CubicPoint {
33 CubicPoint::from(*self)
34 }
35
36 fn as_axial_point(&self) -> AxialPoint {
37 *self
38 }
39}
40
41impl From<CubicPoint> for HPoint {
42 fn from(point: CubicPoint) -> Self {
43 HPoint::new(point.p, point.q)
44 }
45}
46
47impl Into<CubicPoint> for HPoint {
48 fn into(self) -> CubicPoint {
49 CubicPoint::new(self.x, self.y)
50 }
51}