A clustering example for levels 0 and 1: HarfBuzz Manual

## A clustering example for levels 0 and 1

Let's say we start with the following character sequence and cluster values:

       A,B,C,D,E
       0,1,2,3,4

We then map the characters to glyphs. For simplicity, let's assume that each character maps to the corresponding, identical-looking glyph:

       A,B,C,D,E
       0,1,2,3,4

Now if, for example, `B` and `C` ligate, then the clusters to which they belong "merge". This merged cluster takes for its cluster number the minimum of all the cluster numbers of the clusters that went in. In this case, we get:

       A,BC,D,E
       0,1 ,3,4

Now let's assume that the `BC` glyph decomposes into three components, and `D` also decomposes into two. The components each inherit the cluster value of their parent:

       A,BC0,BC1,BC2,D0,D1,E
       0,1  ,1  ,1  ,3 ,3 ,4

Now if `BC2` and `D0` ligate, then their clusters (numbers 1 and 3) merge into `min(1,3) = 1`:

       A,BC0,BC1,BC2D0,D1,E
       0,1  ,1  ,1    ,1 ,4

At this point, cluster 1 means: the character sequence `BCD` is represented by glyphs `BC0,BC1,BC2D0,D1` and cannot be broken down any further.