メインコンテンツへスキップ
要素の検索領域は、Where to search セクションで設定した要素プロパティと、Search Conditions セクションで設定した条件によって形成されます。プロパティと条件を適用する前は、検索領域はページの矩形と一致しています。最初に、プログラムは領域に要素プロパティを適用し、続いて Search Conditions セクションで設定した追加の制約を適用します。 Search Conditions セクションでは、次の種類の制約を設定できます。
  1. 検索領域を矩形(Rect 変数)、リージョン(すなわち連続する矩形の配列 — Region 変数)、または一般には連続である必要のない矩形の配列(RectArray 変数)に限定できます。この種の制約は RestrictSearchArea 関数を使い、対応する型のパラメータを指定して設定します。必要な型の値を返す任意の式をパラメータとして指定できます。
  2. 検索領域を、特定の点の左側、右側、上側、または下側に位置する半平面に限定できます。このような制約は Leftof、Rightof、Above、Below 関数で設定します。
  3. 要素の境界に対して制約を設定したい場合があります。たとえば、要素の左境界が常に画像の左側にあり、右境界は右方向に無限に延びうると事前に分かっている場合です。FlexiLayout 言語では、検索領域の計算段階でこのような制約を設定でき、要素に関する仮説の範囲を狭められます。このような制約は、LeftBoundRightBoundtopBoundBottomBound 関数と演算子 >< を用いて設定します。LeftBoundRightBound は検索領域の左境界・右境界へ、topBoundBottomBound はそれぞれ上境界・下境界へアクセスするために使用します。
  4. 矩形、矩形の配列、仮説などを検索領域から除外することで検索制約を設定できます。これは ExcludeExcludeRectExcludeSet 関数で実行できます。
Search Conditions セクションでは、上記の検索制約を任意の数だけ指定できます。各制約は画像上にリージョンを作成し、作成されたすべてのリージョンは交差(積集合)されます。 さらに、当該要素の計算済み検索領域は、その要素が属する Group 要素の検索領域とも交差されます。