| 282 | } |
| 283 | |
| 284 | void setValues(const OfxRGBColourF& keyColor, |
| 285 | KeyerModeEnum keyerMode, |
| 286 | LuminanceMathEnum luminanceMath, |
| 287 | double softnessLower, |
| 288 | double toleranceLower, |
| 289 | double center, |
| 290 | double toleranceUpper, |
| 291 | double softnessUpper, |
| 292 | double despill, |
| 293 | double despillAngle, |
| 294 | OutputModeEnum outputMode, |
| 295 | SourceAlphaEnum sourceAlpha) |
| 296 | { |
| 297 | _keyColor = keyColor; |
| 298 | _keyerMode = keyerMode; |
| 299 | _luminanceMath = luminanceMath; |
| 300 | _softnessLower = softnessLower; |
| 301 | _toleranceLower = toleranceLower; |
| 302 | _center = center; |
| 303 | if (_keyerMode == eKeyerModeScreen) { |
| 304 | _toleranceUpper = 1.; |
| 305 | _softnessUpper = 1.; |
| 306 | _despill = despill; |
| 307 | _despillClosing = std::tan( (90 - 0.5 * despillAngle) * M_PI / 180. ); |
| 308 | } else { |
| 309 | _toleranceUpper = toleranceUpper; |
| 310 | _softnessUpper = softnessUpper; |
| 311 | _despill = (_keyerMode == eKeyerModeNone) ? despill : 0.; |
| 312 | _despillClosing = (_keyerMode == eKeyerModeNone) ? std::tan( (90 - 0.5 * despillAngle) * M_PI / 180. ) : 0.; |
| 313 | } |
| 314 | _outputMode = outputMode; |
| 315 | _sourceAlpha = sourceAlpha; |
| 316 | } |
| 317 | |
| 318 | double key_bg(double Kfg) |
| 319 | { |