Based on help from a previous question: On Game Dev StackExchange I'm trying to get to a conclusion to test if a shape tessellates.There is no rotation of the shape, purely translating.As I'm working through, I've got to a point where I can build a list of 'Safe moves'. The process I'm trying to follow is that from the answer linked above:Enumerate your vertices in some order.Test the result of moving each vertex to every other unchecked vertex.So I've written this c# to help do this:public void Check(List<IntPoint>  shape) {    originalShape = shape;    compoundShape.Add(shape);    safeMoves.Clear ();    // Step 1: Enumerate your vertices in some order    foreach (IntPoint vo in originalShape) {        // Step 2: Test the result of moving each vertex to every other unchecked vertex.        foreach (IntPoint vd in originalShape) {            // Check if they are the same point (1,1) vs (1,1)            if (vo != vd) {                // Create the translated shape                List<IntPoint> newShape = Translate (vo, vd);                // If no overlap, add to safe moves                if (!CheckForOverLaps (originalShape, newShape)) {                    safeMoves.Add (new KeyValuePair<IntPoint, IntPoint> (vo, vd));                }            }        }    }}The next part I just can't get my head around, I thought I grasped it at the time but now confused!..Examine all the combinations of entries (see note 2) from the safe-move as follows:If the current move overlaps any previous move, it can't tessellate, so try the next combination (see note #3).If none of the moves from the combination overlap, check to see if there is any unfilled space around the original shape.If there is no unfilled space, you have a legal tessellation!If there is empty space, try the next combination.Does combinations of entries mean every entry vs every other entry in the safe move list? What are the current and previous moves?Any pseudo code or further illustrated explanation of this would be so useful. The previous answer has some good detail but I'm just lacking that little extra to help explain this.Huge thanks all.
Checking For Tessellation of 2D shapes, without rotation
algorithms;computational geometry;mathematical foundations