Geometry of the search area
Imagine, for the sake of convenience, that no search constraints are specified on the Search Constraints and the Relations tabs for the element and its parent Group elements. In this case, before the program applies the constraints from the Advanced pre-search relations section, the search area of the element will coincide with the rectangle of the page. If there are no additional constraints on the Advanced tab, the program will look for the element on the entire page.
Applying constraints of type 1, 2, and 4 described in Search Constraints above will create a search area consisting of an array of rectangles. The program will take the search area to consist of one rectangle circumscribing the entire array, from which a specified set of rectangles (excluded rectangles) must be excluded.
Applying the search constraints of type 3 described in Search Constraints above will create a range of allowed coordinates for each boundary of the hypotheses – left, right, top, and bottom. Each of the boundaries is characterized by a range of coordinates on the corresponding axis, e.g. [x1, x2] or [y1, y2]. Here x1 and x2 are of type XCoordinate, and y1 and y2 are of type YCoordinate. The section of the axis must meet the following condition: x1 <= x2 for the X-coordinates, and y1 <= y2 for the Y-coordinates.
If several constraints are consecutively applied to a boundary, each constraint will change the range of allowed coordinates for the boundary.
Let the Advanced pre-search relations section contain the following constraints:
- LeftBound > 5mm;
- LeftBound < 15mm;
- LeftBound < 10mm;
Let the search area coincide with the rectangle of the page, i.e. [PageRect.Left, PageRect.top, PageRect.Right, PageRect.Bottom], before the above constraints are applied. Then the ranges of the coordinates of the element boundaries will be:
Let the search area not be specified prior to executing these constraints. Then, in the case of a one-page FlexiLayout (the minimum and maximum allowed number of pages in a document is 1), the search area coincides with the rectangle of the page [PageRect.Left, PageRect.Top, PageRect.Right, PageRect.Bottom]. In the case of a multi-page FlexiLayout, the search area has the maximum size of [-INF, -INF, INF, INF]. The coordinate ranges of the element boundaries will be as follows:
Boundary | Range for one-page FlexiLayout | Range for multi-page FlexiLayout |
LeftBound | [PageRect.Left, PageRect.Right] | [-INF, INF] |
TopBound | [PageRect.Top, PageRect.Bottom] | [-INF, INF] |
RightBound | [PageRect.Left, PageRect.Right] | [-INF, INF] |
BottomBound | [PageRect.Top, PageRect.Bottom] | [-INF, INF] |
When the constraint LeftBound > 5mm is executed, only the left boundary changes. The range of its possible values becomes the segment [5mm, PageRect.Right] for one-page FlexiLayouts and the segment [5mm, INF] for multi-page FlexiLayouts.
After the LeftBound > 5mm constraint is applied, only the left boundary will change – its allowed coordinates will be [5mm, PageRect.Right].
After the LeftBound < 15mm constraint is applied, the range of allowed coordinates of the left boundary will be [5mm, 15mm].
After the LeftBound < 10mm constraint is applied, the range of allowed coordinates of the left boundary will be [5mm, 10mm].
Similarly you can set constraints for other boundaries of the element.
The specified boundaries of the search area from a so-called fuzzy rectangle.
12.04.2024 18:16:02