Zum Hauptinhalt springen
Der Suchbereich eines Elements wird anhand der in Wo suchen festgelegten Elementeigenschaften und der in Suchbedingungen definierten Bedingungen gebildet. Bevor die Eigenschaften und Bedingungen angewendet werden, entspricht der Suchbereich dem Seitenrechteck. Zuerst wendet das Programm die Elementeigenschaften auf den Bereich an. Anschließend wendet das Programm zusätzliche Einschränkungen aus Suchbedingungen an. Die folgenden Arten von Einschränkungen können in Suchbedingungen festgelegt werden:
  1. Der Suchbereich kann auf ein Rechteck (Variable Rect), auf eine Region (d. h. ein zusammenhängendes Feld von Rechtecken – Variable Region) oder auf ein Feld von Rechtecken beschränkt werden, das im Allgemeinen nicht zusammenhängend sein muss (Variable RectArray). Diese Art von Einschränkung wird mit der Funktion RestrictSearchArea festgelegt, indem ein Parameter des entsprechenden Typs angegeben wird. Beliebige Ausdrücke, die Werte des benötigten Typs zurückgeben, können als Parameter verwendet werden.
  2. Der Suchbereich kann auf eine Halbebene beschränkt werden, die sich links, rechts, oberhalb oder unterhalb eines bestimmten Punkts befindet. Solche Einschränkungen werden mit den Funktionen Leftof, Rightof, Above und Below festgelegt.
  3. Manchmal sollen Grenzen eines Elements eingeschränkt werden. Beispielsweise kann im Voraus bekannt sein, dass die linke Grenze eines Elements stets im linken Teil des Bildes liegt, während sich die rechte Grenze unbegrenzt nach rechts erstrecken kann. Die FlexiLayout-Sprache ermöglicht es, solche Einschränkungen bereits bei der Berechnung des Suchbereichs festzulegen und damit den Bereich der möglichen Hypothesen für ein Element einzuengen. Solche Einschränkungen werden mit den Funktionen LeftBound, RightBound, TopBound und BottomBound sowie den Operatoren > und < festgelegt. Mit den Funktionen LeftBound und RightBound wird auf die linke bzw. rechte Grenze des Suchbereichs zugegriffen, und mit den Funktionen TopBound und BottomBound auf die obere bzw. untere Grenze.
  4. Sie können Suchbeschränkungen festlegen, indem Sie ein Rechteck, ein Feld von Rechtecken, eine Hypothese usw. aus dem Suchbereich ausschließen. Dies kann mit den Funktionen Exclude, ExcludeRect und ExcludeSet erfolgen.
Sie können in Suchbedingungen beliebig viele Suchbeschränkungen der oben genannten Typen angeben. Jede Beschränkung erzeugt eine Region im Bild. Alle durch die Beschränkungen erzeugten Regionen werden miteinander geschnitten. Zusätzlich wird der berechnete Suchbereich für das Element mit dem Suchbereich des Gruppen-Elements geschnitten, dem dieses Element angehört.