void TrackMarker::initializeKnobs() { KnobItemsTablePtr model = getModel(); EffectInstancePtr effect; if (model) { effect = model->getNode()->getEffectInstance(); } KnobIntPtr defPatternSizeKnob, defSearchSizeKnob; KnobChoicePtr defMotionModelKnob; defPatternSizeKnob = toKnobInt(effect->getKnobByName(kTrackerUIParamDefaultMarkerPatternWinSize)); defSearchSizeKnob = toKnobInt(effect->getKnobByName(kTrackerUIParamDefaultMarkerSearchWinSize)); defMotionModelKnob = toKnobChoice(effect->getKnobByName(kTrackerUIParamDefaultMotionModel)); double patternHalfSize = defPatternSizeKnob ? defPatternSizeKnob->getValue() / 2. : 21; double searchHalfSize = defSearchSizeKnob ? defSearchSizeKnob->getValue() / 2. : 71; int defMotionModel_i = defMotionModelKnob ? defMotionModelKnob->getValue() : 0; KnobDoublePtr swbbtmLeft = createKnob<KnobDouble>(kTrackerParamSearchWndBtmLeft, 2); swbbtmLeft->setLabel(tr(kTrackerParamSearchWndBtmLeftLabel)); swbbtmLeft->setDefaultValue(-searchHalfSize, DimIdx(0)); swbbtmLeft->setDefaultValue(-searchHalfSize, DimIdx(1)); swbbtmLeft->setHintToolTip( tr(kTrackerParamSearchWndBtmLeftHint) ); _imp->searchWindowBtmLeft = swbbtmLeft; KnobDoublePtr swbtRight = createKnob<KnobDouble>(kTrackerParamSearchWndTopRight, 2); swbtRight->setLabel(tr(kTrackerParamSearchWndTopRightLabel)); swbtRight->setDefaultValue(searchHalfSize, DimIdx(0)); swbtRight->setDefaultValue(searchHalfSize, DimIdx(1)); swbtRight->setHintToolTip( tr(kTrackerParamSearchWndTopRightHint) ); _imp->searchWindowTopRight = swbtRight; KnobDoublePtr ptLeft = createKnob<KnobDouble>(kTrackerParamPatternTopLeft, 2); ptLeft->setLabel(tr(kTrackerParamPatternTopLeftLabel)); ptLeft->setDefaultValue(-patternHalfSize, DimIdx(0)); ptLeft->setDefaultValue(patternHalfSize, DimIdx(1)); ptLeft->setHintToolTip( tr(kTrackerParamPatternTopLeftHint) ); _imp->patternTopLeft = ptLeft; KnobDoublePtr ptRight = createKnob<KnobDouble>(kTrackerParamPatternTopRight, 2); ptRight->setLabel(tr(kTrackerParamPatternTopRightLabel)); ptRight->setDefaultValue(patternHalfSize, DimIdx(0)); ptRight->setDefaultValue(patternHalfSize, DimIdx(1)); ptRight->setHintToolTip( tr(kTrackerParamPatternTopRightHint) ); _imp->patternTopRight = ptRight; KnobDoublePtr pBRight = createKnob<KnobDouble>(kTrackerParamPatternBtmRight, 2); pBRight->setLabel(tr(kTrackerParamPatternBtmRightLabel)); pBRight->setDefaultValue(patternHalfSize, DimIdx(0)); pBRight->setDefaultValue(-patternHalfSize, DimIdx(1)); pBRight->setHintToolTip( tr(kTrackerParamPatternBtmRightHint) ); _imp->patternBtmRight = pBRight; KnobDoublePtr pBLeft = createKnob<KnobDouble>(kTrackerParamPatternBtmLeft, 2); pBLeft->setLabel(tr(kTrackerParamPatternBtmLeftLabel)); pBLeft->setDefaultValue(-patternHalfSize, DimIdx(0)); pBLeft->setDefaultValue(-patternHalfSize, DimIdx(1)); pBLeft->setHintToolTip( tr(kTrackerParamPatternBtmLeftHint) ); _imp->patternBtmLeft = pBLeft; KnobDoublePtr centerKnob = createKnob<KnobDouble>(kTrackerParamCenter, 2); centerKnob->setLabel(tr(kTrackerParamCenterLabel)); centerKnob->setHintToolTip( tr(kTrackerParamCenterHint) ); _imp->center = centerKnob; KnobDoublePtr offsetKnob = createKnob<KnobDouble>(kTrackerParamOffset, 2); offsetKnob->setLabel(tr(kTrackerParamOffsetLabel)); offsetKnob->setHintToolTip( tr(kTrackerParamOffsetHint) ); _imp->offset = offsetKnob; #ifdef NATRON_TRACK_MARKER_USE_WEIGHT KnobDoublePtr weightKnob = createKnob<KnobDouble>(kTrackerParamTrackWeight, 1); weightKnob->setLabel(tr(kTrackerParamTrackWeightLabel)); weightKnob->setHintToolTip( tr(kTrackerParamTrackWeightHint) ); weightKnob->setDefaultValue(1.); weightKnob->setAnimationEnabled(false); weightKnob->setRange(0., 1.); _imp->weight = weightKnob; #endif KnobChoicePtr mmodelKnob = createKnob<KnobChoice>(kTrackerParamMotionModel, 1); mmodelKnob->setHintToolTip( tr(kTrackerParamMotionModelHint) ); mmodelKnob->setLabel(tr(kTrackerParamMotionModelLabel)); { std::vector<ChoiceOption> choices, helps; std::map<int, std::string> icons; TrackerNodePrivate::getMotionModelsAndHelps(true, &choices, &icons); mmodelKnob->populateChoices(choices); mmodelKnob->setIcons(icons); } mmodelKnob->setDefaultValue(defMotionModel_i); _imp->motionModel = mmodelKnob; KnobDoublePtr errKnob = createKnob<KnobDouble>(kTrackerParamError, 1); errKnob->setLabel(tr(kTrackerParamErrorLabel)); _imp->error = errKnob; KnobBoolPtr enableKnob = createKnob<KnobBool>(kTrackerParamEnabled, 1); enableKnob->setLabel(tr(kTrackerParamEnabledLabel)); enableKnob->setHintToolTip( tr(kTrackerParamEnabledHint) ); enableKnob->setAnimationEnabled(true); enableKnob->setDefaultValue(true); _imp->enabled = enableKnob; addColumn(kKnobTableItemColumnLabel, DimIdx(0)); addColumn(kTrackerParamEnabled, DimIdx(0)); addColumn(kTrackerParamMotionModel, DimIdx(0)); addColumn(kTrackerParamCenter, DimIdx(0)); addColumn(kTrackerParamCenter, DimIdx(1)); addColumn(kTrackerParamOffset, DimIdx(0)); addColumn(kTrackerParamOffset, DimIdx(1)); addColumn(kTrackerParamError, DimIdx(0)); } // TrackMarker::initializeKnobs
void RotoShapeRenderNode::initializeKnobs() { assert(!isRenderClone()); KnobPagePtr page = createKnob<KnobPage>("controlsPage"); page->setLabel(tr("Controls")); { KnobChoicePtr param = createKnob<KnobChoice>(kRotoShapeRenderNodeParamType); param->setLabel(tr(kRotoShapeRenderNodeParamTypeLabel)); { std::vector<ChoiceOption> options; options.push_back(ChoiceOption(kRotoShapeRenderNodeParamTypeSolid, "", "")); options.push_back(ChoiceOption(kRotoShapeRenderNodeParamTypeSmear, "", "")); param->populateChoices(options); } param->setIsMetadataSlave(true); page->addKnob(param); _imp->renderType = param; } { KnobChoicePtr param = createKnob<KnobChoice>(kRotoOutputRodType); param->setLabel(tr(kRotoOutputRodTypeLabel)); param->setHintToolTip(tr(kRotoOutputRodTypeHint)); std::vector<ChoiceOption> options; options.push_back(ChoiceOption(kRotoOutputRodTypeDefaultID, kRotoOutputRodTypeDefaultLabel, tr(kRotoOutputRodTypeDefaultHint).toStdString())); options.push_back(ChoiceOption(kRotoOutputRodTypeFormatID, kRotoOutputRodTypeFormatLabel, tr(kRotoOutputRodTypeFormatHint).toStdString())); options.push_back(ChoiceOption(kRotoOutputRodTypeProjectID, kRotoOutputRodTypeProjectLabel, tr(kRotoOutputRodTypeProjectHint).toStdString())); param->populateChoices(options); param->setAddNewLine(false); param->setIsPersistent(false); page->addKnob(param); _imp->outputRoDTypeKnob = param; } { KnobChoicePtr param = createKnob<KnobChoice>(kRotoFormatParam); param->setLabel(tr(kRotoFormatParamLabel)); param->setHintToolTip(tr(kRotoFormatParamHint)); page->addKnob(param); param->setIsPersistent(false); _imp->outputFormatKnob = param; } { KnobIntPtr param = createKnob<KnobInt>(kRotoFormatSize, 2); param->setSecret(true); page->addKnob(param); param->setIsPersistent(false); _imp->outputFormatSizeKnob = param; } { KnobDoublePtr param = createKnob<KnobDouble>(kRotoFormatPar); param->setSecret(true); page->addKnob(param); param->setIsPersistent(false); _imp->outputFormatParKnob = param; } { KnobBoolPtr param = createKnob<KnobBool>(kRotoClipToFormatParam); param->setLabel(tr(kRotoClipToFormatParamLabel)); param->setHintToolTip(tr(kRotoClipToFormatParamHint)); param->setDefaultValue(false); page->addKnob(param); _imp->clipToFormatKnob = param; } }