diff -r 29859ffd0ac1 -r 334fd47c482e src/cube.rs --- a/src/cube.rs Wed Nov 06 22:27:35 2024 -0500 +++ b/src/cube.rs Thu Nov 07 12:02:24 2024 -0500 @@ -303,16 +303,18 @@ fn exp(self, tangent : &Self::Tangent) -> Self { let mut face = self.face; let mut point = self.point; - let mut dest = self.point + tangent; - loop { + let mut tan = *tangent; + let dest = loop { + let dest = point + tan; let (next_face, cross) = face.find_crossing(&point, &dest); if next_face == face { - break + break dest } + tan -= cross-point; point = next_face.convert_adjacent(face, &cross).unwrap(); - dest = next_face.convert_adjacent(face, &dest).unwrap(); + //dest = next_face.convert_adjacent(face, &dest).unwrap(); face = next_face; - } + }; OnCube { face, point : dest } }