/** @brief describe a double param */ void describeDoubleParam(OFX::ImageEffectDescriptor &desc, const std::string &name, DoubleTypeEnum doubleType, double min, double max, PageParamDescriptor *page) { DoubleParamDescriptor *param = desc.defineDoubleParam(name); param->setLabels(name, name, name); param->setScriptName(name); param->setHint("A double parameter"); param->setDefault(0); param->setRange(min, max); param->setDisplayRange(min, max); param->setDoubleType(doubleType); page->addChild(*param); }
// make a double scale param DoubleParamDescriptor *defineScaleParam(OFX::ImageEffectDescriptor &desc, const std::string &name, const std::string &label, const std::string &hint, GroupParamDescriptor *parent) { DoubleParamDescriptor *param = desc.defineDoubleParam(name); param->setLabels(label, label, label); param->setScriptName(name); param->setHint(hint); param->setDefault(1); param->setRange(0, 10); param->setIncrement(0.1); param->setDisplayRange(0, 10); param->setDoubleType(eDoubleTypeScale); if(parent) param->setParent(*parent); return param; }
void NoiseExamplePluginFactory::describeInContext(OFX::ImageEffectDescriptor &desc, ContextEnum context) { ClipDescriptor *dstClip = desc.defineClip("Output"); dstClip->addSupportedComponent(ePixelComponentRGBA); dstClip->addSupportedComponent(ePixelComponentAlpha); dstClip->setSupportsTiles(true); dstClip->setFieldExtraction(eFieldExtractSingle); DoubleParamDescriptor *param = desc.defineDoubleParam("Noise"); param->setLabels("noise", "noise", "noise"); param->setScriptName("noise"); param->setHint("How much noise to make."); param->setDefault(0.2); param->setRange(0, 10); param->setIncrement(0.1); param->setDisplayRange(0, 1); param->setAnimates(true); // can animate param->setDoubleType(eDoubleTypeScale); PageParamDescriptor *page = desc.definePageParam("Controls"); page->addChild(*param); }