Calculations than are to be used as paint mode transformation can be made based on combining color indexes or by doing calculations in RGB or HSB spaces. You may define settings for any of these calculation types. The current selected one (tab) is then actually used.

When applying the formula paint mode Pro Motion passes pixel data of the underlying image and the used brush shape to the corresponding formula.

The formula engine that is used provides the following set of mathematical operators:

Operator | Meaning | Priority |
---|---|---|

= | assignement* | -1 |

and | logical and | 1 |

or | logical or | 1 |

xor | logical xor | 1 |

<= | less or equal | 2 |

>= | greater or equal | 2 |

!= | not equal | 2 |

== | equal | 2 |

> | greater than | 2 |

< | less than | 2 |

+ | addition | 3 |

- | subtraction | 3 |

* | multiplication | 4 |

/ | division | 4 |

^ | raise x to the power of y | 5 |

mod | modulus | 0 |

The smaller the priority the later the operator is applied to it's operands. For example x * 3 - 2 will calculate "x * 3" before substracting 2. To have other priorities you must use braces, like x * (3-2).

Additionaly the follwing functions are supported:

Name | # of Arguments | Explanation |
---|---|---|

sin | 1 | sine function |

cos | 1 | cosine function |

tan | 1 | tangens function |

asin | 1 | arcus sine function |

acos | 1 | arcus cosine function |

atan | 1 | arcus tangens function |

sinh | 1 | hyperbolic sine function |

cosh | 1 | hyperbolic cosine |

tanh | 1 | hyperbolic tangens function |

asinh | 1 | hyperbolic arcus sine function |

acosh | 1 | hyperbolic arcus tangens function |

atanh | 1 | hyperbolic arcur tangens function |

log2 | 1 | logarithm to the base 2 |

log10 | 1 | logarithm to the base 10 |

log | 1 | logarithm to the base 10 |

ln | 1 | logarithm to base e (2.71828...) |

exp | 1 | e raised to the power of x |

sqrt | 1 | square root of a value |

sign | 1 | sign function -1 if x<0; 1 if x>0 |

rint | 1 | round to nearest integer |

abs | 1 | absolute value |

if | 3 | if ... then ... else ... |

min | variable | min of all arguments |

max | variable | max of all arguments |

sum | variable | sum of all arguments |

avg | variable | mean value of all arguments |

The arguments must be passed in braces, e.g. sin(x) or if( x > 2, 7, 6 ). The number of arguments may be variable, for example when using the sum function.

Predefined variables to create calculations with are always listed at the respective color space section.

The formula parser that is included is the open source "muparser" created by Ingo Berg which can be found at http://muparser.beltoforion.de/