rotate45 is a rarely used transform filter corresponding to the rotation by a multiple of 45°. The set of all 8 such multiples is called C8 and is discussed more explicitly here.

rotate45 is invoked with a single argument filter:

 rotate45 F

This constructs all 8 of the rotations of F by multiples of 45° The rotate45 filter matches if any of these 8 transforms match.

Any square designator within F must represent all 64 squares, and is unchanged by 45° rotation. The only effect of such rotation is to modify directions filters and keywords. For example,

rotate45 ray up ( )

matches a position if and only if one of the eight rotations of the filter matches, that is, one for each of the compass directions:

  ray up ( )
  ray northwest ( )  
  ray left ( )
  ray southwest ( )
  ray down ( )
  ray southeast ( )
  ray right ( )
  ray northeast ( )

Thus, rotate45 ray up ( ) matches if and only if

   ray ( )

rotate45 follows the conventions of the other transform filters in having a set value if its argument does; having a numeric value if its argument does; and accepting the count parameter.


rotate45 is used in Qq-rotations.cql to find games in which all possible orientations of the configuration of a black and white queen separated by a single piece appear.