void OCIOFileTransform::knobs(DD::Image::Knob_Callback f) { File_knob(f, &src, "src", "src"); const char * srchelp = "Specify the src file, on disk, to use for this transform. " "This can be any file format that OpenColorIO supports: " ".3dl, .cc, .ccc, .csp, .cub, .cube, .lut (houdini), .mga, .m3d, .spi1d, .spi3d, .spimtx, .vf"; DD::Image::Tooltip(f, srchelp); String_knob(f, &cccid, "cccid"); const char * srchelp2 = "If the source file is an ASC CDL CCC (color correction collection), " "this specifys the id to lookup. OpenColorIO::Contexts (envvars) are obeyed."; DD::Image::Tooltip(f, srchelp2); DD::Image::PyScript_knob(f, "import ocionuke.cdl; ocionuke.cdl.select_cccid_for_filetransform()", "select_cccid", "select cccid"); Enumeration_knob(f, &dirindex, dirs, "direction", "direction"); DD::Image::Tooltip(f, "Specify the transform direction."); Enumeration_knob(f, &interpindex, interp, "interpolation", "interpolation"); DD::Image::Tooltip(f, "Specify the interpolation method. For files that are not LUTs (mtx, etc) this is ignored."); DD::Image::Divider(f); DD::Image::Input_ChannelSet_knob(f, &layersToProcess, 0, "layer", "layer"); DD::Image::SetFlags(f, DD::Image::Knob::NO_CHECKMARKS | DD::Image::Knob::NO_ALPHA_PULLDOWN); DD::Image::Tooltip(f, "Set which layer to process. This should be a layer with rgb data."); }
void OCIOCDLTransform::knobs(DD::Image::Knob_Callback f) { // ASC CDL grade numbers DD::Image::Color_knob(f, m_slope, DD::Image::IRange(0, 4.0), "slope"); DD::Image::Color_knob(f, m_offset, DD::Image::IRange(-0.2, 0.2), "offset"); DD::Image::Color_knob(f, m_power, DD::Image::IRange(0.0, 4.0), "power"); DD::Image::Float_knob(f, &m_saturation, DD::Image::IRange(0, 4.0), "saturation"); Enumeration_knob(f, &m_dirindex, dirs, "direction", "direction"); DD::Image::Tooltip(f, "Specify the transform direction."); DD::Image::Divider(f); // Cache ID DD::Image::String_knob(f, &m_cccid, "cccid", "cccid"); DD::Image::SetFlags(f, DD::Image::Knob::ENDLINE); // Import/export buttons DD::Image::PyScript_knob(f, "import ocionuke.cdl; ocionuke.cdl.export_as_cc()", "export_cc", "export grade as .cc"); DD::Image::Tooltip(f, "Export this grade as a ColorCorrection XML file, which can be loaded with the OCIOFileTransform, or using a FileTransform in an OCIO config"); DD::Image::PyScript_knob(f, "import ocionuke.cdl; ocionuke.cdl.import_cc_from_xml()", "import_cc", "import from .cc"); DD::Image::Tooltip(f, "Import grade from a ColorCorrection XML file"); DD::Image::Divider(f); // Layer selection DD::Image::Input_ChannelSet_knob(f, &layersToProcess, 0, "layer", "layer"); DD::Image::SetFlags(f, DD::Image::Knob::NO_CHECKMARKS | DD::Image::Knob::NO_ALPHA_PULLDOWN); DD::Image::Tooltip(f, "Set which layer to process. This should be a layer with rgb data."); }
void OCIOLookTransform::knobs(DD::Image::Knob_Callback f) { DD::Image::Enumeration_knob(f, &m_inputColorSpaceIndex, &m_inputColorSpaceCstrNames[0], "in_colorspace", "in"); DD::Image::Tooltip(f, "Input data is taken to be in this colorspace."); DD::Image::Enumeration_knob(f, &m_lookIndex, &m_lookCstrNames[0], "look", "look"); DD::Image::Tooltip(f, "Specify the look to apply, as predefined in the OpenColorIO configuration."); DD::Image::Spacer(f, 8); Enumeration_knob(f, &m_dirIndex, directions, "direction", "direction"); DD::Image::Tooltip(f, "Specify the look transform direction. in/out colorspace handling is not affected."); DD::Image::ClearFlags(f, DD::Image::Knob::STARTLINE ); DD::Image::Enumeration_knob(f, &m_outputColorSpaceIndex, &m_outputColorSpaceCstrNames[0], "out_colorspace", "out"); DD::Image::Tooltip(f, "Image data is converted to this colorspace for output."); DD::Image::Bool_knob(f, &m_ignoreErrors, "ignore_errors", "ignore errors"); DD::Image::Tooltip(f, "If enabled, looks that cannot find the specified correction" " are treated as a normal ColorSpace conversion instead of triggering a render error."); DD::Image::SetFlags(f, DD::Image::Knob::STARTLINE ); DD::Image::BeginClosedGroup(f, "Context"); { DD::Image::String_knob(f, &m_contextKey1, "key1"); DD::Image::Spacer(f, 10); DD::Image::String_knob(f, &m_contextValue1, "value1"); DD::Image::ClearFlags(f, DD::Image::Knob::STARTLINE); DD::Image::String_knob(f, &m_contextKey2, "key2"); DD::Image::Spacer(f, 10); DD::Image::String_knob(f, &m_contextValue2, "value2"); DD::Image::ClearFlags(f, DD::Image::Knob::STARTLINE); DD::Image::String_knob(f, &m_contextKey3, "key3"); DD::Image::Spacer(f, 10); DD::Image::String_knob(f, &m_contextValue3, "value3"); DD::Image::ClearFlags(f, DD::Image::Knob::STARTLINE); DD::Image::String_knob(f, &m_contextKey4, "key4"); DD::Image::Spacer(f, 10); DD::Image::String_knob(f, &m_contextValue4, "value4"); DD::Image::ClearFlags(f, DD::Image::Knob::STARTLINE); } DD::Image::EndGroup(f); DD::Image::Divider(f); DD::Image::Input_ChannelSet_knob(f, &m_layersToProcess, 0, "layer", "layer"); DD::Image::SetFlags(f, DD::Image::Knob::NO_CHECKMARKS | DD::Image::Knob::NO_ALPHA_PULLDOWN); DD::Image::Tooltip(f, "Set which layer to process. This should be a layer with rgb data."); }
void OCIOFileTransform::knobs(DD::Image::Knob_Callback f) { File_knob(f, &m_file, "file", "file"); DD::Image::Tooltip(f, "Specify the file, on disk, to use for this transform. See the node help for the list of supported formats."); // Reload button, and hidden "version" knob to invalidate cache on reload Button(f, "reload", "reload"); DD::Image::Tooltip(f, "Reloads specified files"); Int_knob(f, &m_reload_version, "version"); DD::Image::SetFlags(f, DD::Image::Knob::HIDDEN); String_knob(f, &m_cccid, "cccid"); const char * srchelp2 = "If the source file is an ASC CDL CCC (color correction collection), " "this specifys the id to lookup. OpenColorIO::Contexts (envvars) are obeyed."; DD::Image::Tooltip(f, srchelp2); DD::Image::PyScript_knob(f, "import ocionuke.cdl; ocionuke.cdl.select_cccid_for_filetransform(fileknob='file', cccidknob = 'cccid')", "select_cccid", "select cccid"); Enumeration_knob(f, &m_dirindex, dirs, "direction", "direction"); DD::Image::Tooltip(f, "Specify the transform direction."); Enumeration_knob(f, &m_interpindex, interp, "interpolation", "interpolation"); DD::Image::Tooltip(f, "Specify the interpolation method. For files that are not LUTs (mtx, etc) this is ignored."); }
void OCIOLookTransform::knobs(DD::Image::Knob_Callback f) { #ifdef OCIO_CASCADE DD::Image::CascadingEnumeration_knob(f, &m_inputColorSpaceIndex, &m_inputColorSpaceCstrNames[0], "in_colorspace", "in"); #else DD::Image::Enumeration_knob(f, &m_inputColorSpaceIndex, &m_inputColorSpaceCstrNames[0], "in_colorspace", "in"); #endif DD::Image::Tooltip(f, "Input data is taken to be in this colorspace."); DD::Image::Enumeration_knob(f, &m_lookIndex, &m_lookCstrNames[0], "look", "look"); DD::Image::Tooltip(f, "Specify the look to apply, as predefined in the OpenColorIO configuration."); DD::Image::Spacer(f, 8); Enumeration_knob(f, &m_dirIndex, directions, "direction", "direction"); DD::Image::Tooltip(f, "Specify the look transform direction. in/out colorspace handling is not affected."); DD::Image::ClearFlags(f, DD::Image::Knob::STARTLINE ); #ifdef OCIO_CASCADE DD::Image::CascadingEnumeration_knob(f, &m_outputColorSpaceIndex, &m_outputColorSpaceCstrNames[0], "out_colorspace", "out"); #else DD::Image::Enumeration_knob(f, &m_outputColorSpaceIndex, &m_outputColorSpaceCstrNames[0], "out_colorspace", "out"); #endif DD::Image::Tooltip(f, "Image data is converted to this colorspace for output."); DD::Image::Bool_knob(f, &m_ignoreErrors, "ignore_errors", "ignore errors"); DD::Image::Tooltip(f, "If enabled, looks that cannot find the specified correction" " are treated as a normal ColorSpace conversion instead of triggering a render error."); DD::Image::SetFlags(f, DD::Image::Knob::STARTLINE ); }
void OCIOLogConvert::knobs(DD::Image::Knob_Callback f) { Enumeration_knob(f, &modeindex, modes, "operation", "operation"); DD::Image::SetFlags(f, DD::Image::Knob::ALWAYS_SAVE); }