public static IAuto <Arrow> Rotate(this Arrow axis) { axis.CheckUnit(); return(new Auto <Arrow>( morphF: arrow => { var projection = axis.Scale((Sign)axis.Dot(arrow)); return axis.Cross(arrow).Add(projection); })); }
public FaceTurn(Arrow axis) { axis.CheckUnit(); this.Axis = axis; }
public static void Check(this CubieFace face, Arrow direction) { direction.CheckUnit(); face.Face.CheckPerpendicular(direction); }