# Adjustments

An adjustment is specified by a **mode**, a **direction** and a **delta**. For each reference point and corresponding shift vector, the adjustment is computed and applied. The resulting shift vector is again cached in the warping library. This way of implementation allows incremental adjustments.

**Mode** defines the way of the distortion. Following modes are available:

<div class="contents" id="bkmrk-parallelogram-trapez"><div class="contents"><div class="textblock">- Parallelogram
- Trapezoid
- Pin balance
- Pincushion
- Shift
- Size
- Rotation (around bitmap image center point)

</div></div></div>**Direction** specifies the direction in which the distortion is applied. Following directions are available:

<div class="contents" id="bkmrk-up-down-left-right"><div class="contents"><div class="textblock">- Up
- Down
- Left
- Right

</div></div></div>**Delta** specifies the amount of distortion that is applied. Delta is an unsigned integer value in range 0..255 (1 byte). The delta is added to the existing offset of the corresponding reference points.

#### Predefined Adjustments

Based on mode and direction, the following transformations are possible:

<div class="contents" id="bkmrk-modedirection-trapez"><div class="contents"><div class="textblock"><table border="1" cellpadding="5" cellspacing="0" width="600"><tbody><tr bgcolor="#d4d4d4"><td class="align-center" style="background-color: rgb(255, 255, 255); width: 119.797px; vertical-align: top;">**Mode**  
**Direction**</td><td class="align-center" style="background-color: rgb(255, 255, 255); width: 119.797px; vertical-align: top;">**Trapezoid**</td><td class="align-center" style="background-color: rgb(255, 255, 255); width: 119.797px; vertical-align: top;">**Parallelogram**</td><td class="align-center" style="background-color: rgb(255, 255, 255); width: 119.797px; vertical-align: top;">**Pincushion**</td><td class="align-center" style="background-color: rgb(255, 255, 255); width: 119.812px; vertical-align: top;">**Pin balance**</td></tr><tr><td align="center" style="width: 119.797px; vertical-align: top;" valign="middle">Up</td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2029"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954059.png" alt=""/></div>

</div></td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2033"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954316.png" alt=""/></div>

</div></td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2037"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954403.png" alt=""/></div>

</div></td><td style="width: 119.812px; vertical-align: top;"><div class="image"><div drawio-diagram="2041"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954492.png" alt=""/></div>

</div></td></tr><tr><td align="center" style="width: 119.797px; vertical-align: top;" valign="middle">Down</td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2030"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954095.png" alt=""/></div>

</div></td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2034"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954336.png" alt=""/></div>

</div></td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2038"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954419.png" alt=""/></div>

</div></td><td style="width: 119.812px; vertical-align: top;"><div class="image"><div drawio-diagram="2042"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954511.png" alt=""/></div>

</div></td></tr><tr><td align="center" style="width: 119.797px; vertical-align: top;" valign="middle">Left</td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2031"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954115.png" alt=""/></div>

</div></td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2035"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954356.png" alt=""/></div>

</div></td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2039"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954442.png" alt=""/></div>

</div></td><td style="width: 119.812px; vertical-align: top;"><div class="image"><div drawio-diagram="2043"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954527.png" alt=""/></div>

</div></td></tr><tr><td align="center" style="width: 119.797px; vertical-align: top;" valign="middle">Right</td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2032"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954131.png" alt=""/></div>

</div></td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2036"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954376.png" alt=""/></div>

</div></td><td style="width: 119.797px; vertical-align: top;"><div class="image"><div drawio-diagram="2040"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954457.png" alt=""/></div>

</div></td><td style="width: 119.812px; vertical-align: top;"><div class="image"><div drawio-diagram="2044"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954547.png" alt=""/></div>

</div></td></tr></tbody></table>

</div></div></div><div class="contents" id="bkmrk-modedirection-size-r"><div class="contents"><div class="textblock"><table border="1" cellpadding="5" cellspacing="0" width="600"><tbody><tr bgcolor="#d4d4d4"><th style="background-color: rgb(255, 255, 255); width: 149.75px;">**Mode**  
**Direction**</th><th style="background-color: rgb(255, 255, 255); width: 149.75px;">**Size**</th><th style="background-color: rgb(255, 255, 255); width: 149.75px;">**Rotation**</th><th style="background-color: rgb(255, 255, 255); width: 149.75px;">**Shift**</th></tr><tr><td align="center" class="align-center" style="vertical-align: top; width: 149.75px;" valign="middle">Up</td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2045"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954601.png" alt=""/></div>

</div></td><td class="align-center" style="width: 149.75px; vertical-align: middle;">  
</td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2051"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955044.png" alt=""/></div>

</div></td></tr><tr><td align="center" class="align-center" style="vertical-align: top; width: 149.75px;" valign="middle">Down</td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2046"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954905.png" alt=""/></div>

</div></td><td class="align-center" style="width: 149.75px; vertical-align: middle;">  
</td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2052"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955092.png" alt=""/></div>

</div></td></tr><tr><td align="center" class="align-center" style="vertical-align: top; width: 149.75px;" valign="middle">Left</td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2047"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954925.png" alt=""/></div>

</div></td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2049"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954990.png" alt=""/></div>

</div></td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2053"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955117.png" alt=""/></div>

</div></td></tr><tr><td align="center" class="align-center" style="vertical-align: top; width: 149.75px;" valign="middle">Right</td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2048"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676954948.png" alt=""/></div>

</div></td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2050"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955009.png" alt=""/></div>

</div></td><td class="align-center" style="width: 149.75px; vertical-align: middle;"><div class="image"><div drawio-diagram="2054"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955136.png" alt=""/></div>

</div></td></tr></tbody></table>

</div></div></div>#### Formulas for adjustments

The following formulas describe the mathematically necessary adjustments of the reference points. If the requested adjustment exceeds the limit, no calculation shall be done and the previous status will be kept.

##### Trapezoid mode

<div class="contents" id="bkmrk--0"><div class="contents"><div class="textblock"><div drawio-diagram="2055"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955237.png" alt=""/></div>

</div></div></div>##### Parallelogram mode

<div class="contents" id="bkmrk--1"><div class="contents"><div class="textblock"><div drawio-diagram="2056"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955457.png" alt=""/></div>

</div></div></div>##### Pinbalance mode

<div class="contents" id="bkmrk--2"><div class="contents"><div class="textblock"><div drawio-diagram="2057"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955477.png" alt=""/></div>

</div></div></div>##### Pincushion mode

<div class="contents" id="bkmrk--3"><div class="contents"><div class="textblock"><div drawio-diagram="2058"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955492.png" alt=""/></div>

</div></div></div>##### Size mode

<div class="contents" id="bkmrk--4"><div class="contents"><div class="textblock"><div drawio-diagram="2062"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955650.png" alt=""/></div>

</div></div></div>##### Rotation mode

<div class="contents" id="bkmrk--5"><div class="contents"><div class="textblock"><div drawio-diagram="2060"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955526.png" alt=""/></div>

</div></div></div>##### Shift mode

<div class="contents" id="bkmrk-numofrefpointsx---nu"><div class="textblock"><div drawio-diagram="2061"><img src="https://doc316en.candera.eu/uploads/images/drawio/2023-02/drawing-7-1676955542.png" alt=""/></div>

<dl class="note"><dd><p class="callout info">NumOfRefPointsX - number of reference points in horizontal direction  
NumOfRefPointsY - number of reference points in vertical direction  
x\[i\]\[j\] - x-coordinate of reference point, a 2-dimensional array of floating point variables  
y\[i\]\[j\] - y-coordinate of reference point, a 2-dimensional array of floating point variables</p>

</dd></dl>---

</div></div>