Zum Hauptinhalt springen
Der Suchbereich eines Elements wird durch die in Wo suchen festgelegten Elementeigenschaften und die in Suchbedingungen definierten Bedingungen bestimmt. Bevor Eigenschaften und Bedingungen angewendet werden, entspricht der Suchbereich dem Seitenrechteck. Zuerst wendet das Programm die Elementeigenschaften auf den Bereich an, anschließend die zusätzlichen Einschränkungen aus Suchbedingungen. Im Abschnitt Suchbedingungen können folgende Arten von Beschränkungen festgelegt werden:
  1. Der Suchbereich kann auf ein Rechteck (Variable Rect), auf eine Region (d. h. ein zusammenhängendes Array von Rechtecken – Variable Region) oder auf ein Array von Rechtecken, das im Allgemeinen nicht zusammenhängend sein muss (Variable RectArray), begrenzt werden. Dieser Beschränkungstyp wird mit der Funktion RestrictSearchArea durch Angabe eines Parameters des entsprechenden Typs festgelegt. Beliebige Ausdrücke, die einen Wert des erforderlichen Typs zurückgeben, können als Parameter angegeben werden.
  2. Der Suchbereich kann auf eine Halbebene begrenzt werden, die links, rechts, oberhalb oder unterhalb eines bestimmten Punkts liegt. Solche Beschränkungen werden mit den Funktionen Leftof, Rightof, Above und Below festgelegt.
  3. Mitunter möchten Sie Grenzen für ein Element festlegen. So kann beispielsweise im Voraus bekannt sein, dass die linke Begrenzung eines Elements stets im linken Bereich des Bildes liegt, während sich die rechte Begrenzung nach rechts unbegrenzt erstrecken kann. Die FlexiLayout-Sprache ermöglicht es, solche Beschränkungen bereits bei der Berechnung des Suchbereichs festzulegen und dadurch den Bereich möglicher Hypothesen für ein Element einzugrenzen. Solche Beschränkungen werden mithilfe der Funktionen LeftBound, RightBound, topBound und BottomBound sowie der Operatoren > und < festgelegt. Die Funktionen LeftBound und RightBound dienen dem Zugriff auf die linken bzw. rechten Grenzen des Suchbereichs, und die Funktionen topBound und BottomBound dem Zugriff auf die oberen bzw. unteren Grenzen.
  4. Sie können den Suchbereich einschränken, indem Sie ein Rechteck, ein Array von Rechtecken, eine Hypothese usw. daraus ausschließen. Dies kann mit den Funktionen Exclude, ExcludeRect und ExcludeSet erfolgen.
Sie können in Suchbedingungen eine beliebige Anzahl der oben genannten Suchbeschränkungen angeben. Jede Beschränkung erzeugt eine Region im Bild. Alle durch die Beschränkungen erzeugten Regionen werden miteinander geschnitten. Außerdem wird der berechnete Suchbereich des Elements mit dem Suchbereich des Gruppenelements geschnitten, dem dieses Element angehört.