void showHelp() { fill(yellow,40); rect(0,0,height,height); pushMatrix(); translate(20,20); fill(dgreen); text("FILL",0,0); translate(0,20); text(" written by Jarek Rossignac in April 2007",0,0); translate(0,20); text("Computes regular connectivity to fill holes in triangle meshes from valence defects along the border",0,0); translate(0,20); text("The valence defect of a border vertex is the number of missing triangles to be incident upon that vertex",0,0); translate(0,20); text("The integers in S (shown on top of the screen) indicate the valence defects of border vertices",0,0); translate(0,20); fill(dblue); translate(0,20); text("First click in this window to activate it ",0,0); translate(0,20); text("Press SPACE to show/hide this help text",0,0); translate(0,20); fill(dblue); translate(0,20); text("TO CREATE/EDIT A BORDER:",0,0); translate(0,20); text("Press '<' or '>' to circulate through built-in examples (S[0], S[1],...)",0,0); translate(0,20); text("Press '0' (zero) to delete the last vertex in the border loop ",0,0); translate(0,20); text("Press '1'...'5' to append a vertex with that valence defect",0,0); translate(0,20); text("The border turns green when it is valid (closed, 1 turn)",0,0); translate(0,20); fill(dred); translate(0,20); text("To FILL (shrink the border) manually by invading one triangle at a time:",0,0); translate(0,20); text("Press ',' or '.' to move the gate edge along the border",0,0); translate(0,20); text("Press 'V' to move the gate to a valence-1 vertex, if any",0,0); translate(0,20); text("Press 'v' to delete the valence-1 vertex (large dot where the gate begins) ",0,0); translate(0,20); text("Press 'E' to move the gate to a valence-2 vertex between valence-2 vertices",0,0); translate(0,20); text("Press 'e' to break the gate edge and insert a new internal vertex",0,0); translate(0,20); text("Press 'M' to move the gate to a maximum vertex in the X+Y direction",0,0); translate(0,20); text("Press 'f' to move the gate the next candidate for action",0,0); translate(0,20); text("Press 'n' to do 'f' and the action",0,0); translate(0,20); popMatrix(); }