| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| void TFxUtil::setParam(const TFxP &fx, std::string paramName, double value) { |
| TDoubleParamP param = TParamP(fx->getParams()->getParam(paramName)); |
| assert(param); |
| param->setDefaultValue(value); |
| } |
| |
| |
| |
| void TFxUtil::setParam(const TFxP &fx, std::string paramName, TPixel32 color) { |
| TPixelParamP param = TParamP(fx->getParams()->getParam(paramName)); |
| assert(param); |
| param->setDefaultValue(color); |
| } |
| |
| |
| |
| TFxP TFxUtil::makeColorCard(TPixel32 color) { |
| TFxP fx = TFx::create("colorCardFx"); |
| assert(fx); |
| setParam(fx, "color", color); |
| return fx; |
| } |
| |
| |
| |
| TFxP TFxUtil::makeCheckboard() { |
| return makeCheckboard(TPixel32(255, 200, 200), TPixel32(180, 190, 190), 50); |
| } |
| |
| |
| DVAPI TFxP TFxUtil::makeCheckboard(TPixel32 c1, TPixel32 c2, double size) { |
| TFxP fx = TFx::create("checkBoardFx"); |
| assert(fx); |
| setParam(fx, "color1", c1); |
| setParam(fx, "color2", c2); |
| setParam(fx, "size", size); |
| return fx; |
| } |
| |
| |
| |
| TFxP TFxUtil::makeOver(const TFxP &dn, const TFxP &up) { |
| if (!dn) |
| return up; |
| else if (!up) |
| return dn; |
| |
| assert(up && dn); |
| |
| TFxP overFx = TFx::create("overFx"); |
| if (!overFx) { |
| assert(overFx); |
| return 0; |
| } |
| |
| if (!overFx->connect("Source1", up.getPointer()) || |
| !overFx->connect("Source2", dn.getPointer())) |
| assert(!"Could not connect ports!"); |
| |
| return overFx; |
| } |
| |
| |
| |
| TFxP TFxUtil::makeDarken(const TFxP &dn, const TFxP &up) { |
| if (!dn) |
| return up; |
| else if (!up) |
| return dn; |
| assert(dn); |
| assert(up); |
| |
| |
| |
| TFxP darkenFx = TFx::create("STD_inoDarkenFx"); |
| assert(darkenFx); |
| if (!darkenFx) return 0; |
| darkenFx->connect("Back", dn.getPointer()); |
| darkenFx->connect("Fore", up.getPointer()); |
| return darkenFx; |
| } |
| |
| |
| |
| TFxP TFxUtil::makeAffine(const TFxP &arg, const TAffine &aff) { |
| if (aff == TAffine()) return arg; |
| if (!arg) return TFxP(); |
| |
| NaAffineFx *affFx = new NaAffineFx(); |
| assert(affFx); |
| TFxP fx = affFx; |
| affFx->setAffine(aff); |
| if (!affFx->connect("source", arg.getPointer())) |
| assert(!"Could not connect ports!"); |
| return fx; |
| } |
| |
| |
| |
| TFxP TFxUtil::makeBlur(const TFxP &arg, double blurValue) { |
| TFxP fx = TFx::create("STD_blurFx"); |
| assert(fx); |
| setParam(fx, "value", blurValue); |
| if (!fx->connect("Source", arg.getPointer())) |
| assert(!"Could not connect ports!"); |
| return fx; |
| } |
| |
| |
| |
| TFxP TFxUtil::makeColumnColorFilter(const TFxP &arg, TPixel32 colorScale) { |
| ColumnColorFilterFx *colorFilterfx = new ColumnColorFilterFx(); |
| assert(colorFilterfx); |
| colorFilterfx->setColorFilter(colorScale); |
| if (!colorFilterfx->connect("source", arg.getPointer())) |
| assert(!"Could not connect ports!"); |
| return colorFilterfx; |
| } |
| |
| |
| |
| int TFxUtil::getKeyframeStatus(const TFxP &fx, int frame) { |
| bool keyframed = false, notKeyframed = false; |
| for (int i = 0; i < fx->getParams()->getParamCount(); i++) { |
| TParamP param = fx->getParams()->getParam(i); |
| if (param->isAnimatable()) { |
| if (param->isKeyframe(frame)) |
| keyframed = true; |
| else |
| notKeyframed = true; |
| } |
| } |
| if (keyframed == false) |
| return TFxUtil::NO_KEYFRAMES; |
| else if (notKeyframed == false) |
| return TFxUtil::ALL_KEYFRAMES; |
| else |
| return TFxUtil::SOME_KEYFRAMES; |
| } |
| |
| |
| |
| void TFxUtil::deleteKeyframes(const TFxP &fx, int frame) { |
| for (int i = 0; i < fx->getParams()->getParamCount(); i++) |
| fx->getParams()->getParam(i)->deleteKeyframe(frame); |
| } |
| |
| |
| |
| void TFxUtil::setKeyframe(const TFxP &dstFx, int dstFrame, const TFxP &srcFx, |
| int srcFrame, bool changedOnly) { |
| if (dstFx->getFxType() != srcFx->getFxType()) return; |
| assert(dstFx->getParams()->getParamCount() == |
| srcFx->getParams()->getParamCount()); |
| for (int i = 0; i < dstFx->getParams()->getParamCount(); i++) { |
| TParamP dstParam = dstFx->getParams()->getParam(i); |
| TParamP srcParam = srcFx->getParams()->getParam(i); |
| dstParam->assignKeyframe(dstFrame, srcParam, srcFrame, changedOnly); |
| } |
| } |
| |