/** @brief describe a double param */ void describe2DDoubleParam(OFX::ImageEffectDescriptor &desc, const std::string &name, DoubleTypeEnum doubleType, double min, double max, PageParamDescriptor *page) { Double2DParamDescriptor *param = desc.defineDouble2DParam(name); param->setLabels(name, name, name); param->setScriptName(name); param->setHint("A 2D double parameter"); param->setDefault(0, 0); param->setRange(min, min, max, max); param->setDisplayRange(min, min, max, max); param->setDoubleType(doubleType); page->addChild(*param); }
void GenericTestExamplePluginFactory::describeInContext(OFX::ImageEffectDescriptor &desc, OFX::ContextEnum /*context*/) { ClipDescriptor *srcClip = desc.defineClip(kOfxImageEffectSimpleSourceClipName); srcClip->addSupportedComponent(ePixelComponentRGBA); srcClip->addSupportedComponent(ePixelComponentAlpha); srcClip->setTemporalClipAccess(false); srcClip->setSupportsTiles(true); srcClip->setIsMask(false); ClipDescriptor *dstClip = desc.defineClip(kOfxImageEffectOutputClipName); dstClip->addSupportedComponent(ePixelComponentRGBA); dstClip->addSupportedComponent(ePixelComponentAlpha); dstClip->setSupportsTiles(true); DoubleParamDescriptor *param1 = desc.defineDoubleParam("MinMaxTest"); param1->setLabels("Min/Max Test", "Min/Max Test", "Min/Max Test"); param1->setScriptName("minMaxTest"); param1->setHint("A double parameter to illustrate visual min/max."); param1->setDefault(50.0); param1->setRange(-1000, 1000); param1->setDisplayRange(-1000, 1000); param1->setDoubleType(eDoubleTypePlain); ChoiceParamDescriptor* param2 = desc.defineChoiceParam("enableTest"); param2->setLabels("Enabler", "Enabler", "Enabler"); param2->appendOption("Enable parameter", "Enable parameter"); param2->appendOption("Disable parameter", "Disable parameter"); DoubleParamDescriptor *param3 = desc.defineDoubleParam("enableDbl"); param3->setLabels("Enabled by Enabler", "Enabled by Enabler", "Enabled by Enabler"); BooleanParamDescriptor* bparam = desc.defineBooleanParam("Insignificant"); bparam->setLabels("Insignificant", "Insignificant", "Insignificant"); bparam->setHint("Shouldn't cause a re-render."); bparam->setEvaluateOnChange(false); BooleanParamDescriptor* bparam2 = desc.defineBooleanParam("secretTest"); bparam2->setLabels("SECRET!", "SECRET!", "SECRET!"); bparam2->setIsSecret(true); bparam2->setHint("Shouldn't be shown in the user interface."); BooleanParamDescriptor* bparam3 = desc.defineBooleanParam("nonPersistent"); bparam3->setLabels("Non-persistent", "Non-persistent", "Non-persistent"); bparam3->setHint("Shouldn't be saved in the plugin description."); bparam3->setIsPersistent(false); DoubleParamDescriptor *param5 = desc.defineDoubleParam("animateDbl"); param5->setLabels("No Animation", "No Animation", "No Animation"); param5->setAnimates(false); DoubleParamDescriptor *param6 = desc.defineDoubleParam("angleTest"); param6->setLabels("Angle?", "Angle?", "Angle?"); param6->setRange(-180.0, 180.0); param6->setHint("An angle parameter."); param6->setDoubleType(eDoubleTypeAngle); PushButtonParamDescriptor* pb = desc.definePushButtonParam("pbButton"); pb->setLabels("Push Me", "Push Me", "Push Me"); PushButtonParamDescriptor* pb2 = desc.definePushButtonParam("analyseButton"); pb2->setLabels("Analyse", "Analyse", "Analyse"); DoubleParamDescriptor *param7 = desc.defineDoubleParam("analysisParam"); param7->setLabels("Analysis Slave", "Analysis Slave", "Analysis Slave"); Double2DParamDescriptor* widgetPos = desc.defineDouble2DParam("widgetPos"); widgetPos->setLabels("Widget Position", "Widget Position", "Widget Position"); widgetPos->setDoubleType(OFX::eDoubleTypeXYAbsolute); widgetPos->setDefaultCoordinateSystem(eCoordinatesNormalised); widgetPos->setDimensionLabels("X Position", "Y Position"); widgetPos->setDefault(0.5, 0.5); }