TuttleOFX  1
HistogramKeyerDefinitions.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_HISTOGRAMKEYER_DEFINITIONS_HPP_
00002 #define _TUTTLE_PLUGIN_HISTOGRAMKEYER_DEFINITIONS_HPP_
00003 
00004 #include <tuttle/plugin/global.hpp>
00005 
00006 #include <ofxPixels.h>
00007 
00008 #include <boost/scoped_ptr.hpp>
00009 
00010 namespace tuttle {
00011 namespace plugin {
00012 namespace histogramKeyer {
00013 
00014 const static std::size_t nbCurves = 6;
00015 const static std::size_t nbCurvesRGB = 3;
00016 const static std::size_t nbCurvesHSL = 3;
00017 const static std::size_t curveFromSelection = 40;
00018 
00019 //Curves params
00020 const static std::string kParamRGBColorSelection = "colorRGBSelection";
00021 const static std::string kParamHSLColorSelection = "colorHSLSelection";
00022 const static std::string kParamColorSelectionRed = "red";
00023 const static std::string kParamColorSelectionGreen = "green";
00024 const static std::string kParamColorSelectionBlue = "blue";
00025 const static std::string kParamColorSelectionHue = "hue";
00026 const static std::string kParamColorSelectionSaturation = "saturation";
00027 const static std::string kParamColorSelectionLightness = "lightness";
00028 
00029 //Groups
00030 const static std::string kGroupRGB = "RGB channels";
00031 const static std::string kGroupRGBLabel = "Red Green Blue";
00032 const static std::string kGroupHSL = "HSL channels";
00033 const static std::string kGroupHSLLabel = "Hue Saturation Lightness";
00034 const static std::string kGroupAdvanced = "Adv";
00035 const static std::string kGroupAdvancedLabel = "Advanced";
00036 const static std::string kGroupSelection = "Selec";
00037 const static std::string kGroupSelectionLabel = "Selection settings";
00038 const static std::string kGroupHistogramOverlay = "HOverlay";
00039 const static std::string kGroupHistogramOverlayLabel = "Histogram overlay";
00040 
00041 //Histogram display settings
00042 const static std::string kHistoDisplayListParamLabel = "Histogram adjustment ";
00043 const static std::string kHistoDisplayListParamOpt1 = "by channel";
00044 const static std::string kHistoDisplayListParamOpt2 = "global";
00045 
00046 //Histogram check box
00047 const static std::string kBoolRed = "Red";
00048 const static std::string kBoolGreen = "Green";
00049 const static std::string kBoolBlue = "Blue";
00050 const static std::string kBoolHue = "Hue";
00051 const static std::string kBoolSaturation = "Saturation";
00052 const static std::string kBoolLightness = "Lightness";
00053 
00054 //Display selection check box
00055 const static std::string kBoolSelection = "Display selection";
00056 
00057 //Curve clamp value check box
00058 const static std::string kBoolClampValues = "Clamp curves values";
00059 
00060 //Reverse mask check box
00061 const static std::string kBoolReverseMask = "Reverse mask";
00062 
00063 //Refresh overlay button
00064 const static std::string kButtonResetSelection = "Reset Selection";
00065 const static std::string kButtonResetSelectionLabel = "Reset selection";
00066 
00067 //Clear buttons
00068 const static std::string kButtonResetRGB = "Reset RGB";
00069 const static std::string kButtonResetHSL = "Reset HSL";
00070 const static std::string kButtonResetAll = "Reset All";
00071 
00072 const static std::string kButtonResetRGBLabel = "Reset";
00073 const static std::string kButtonResetHSLLabel = "Reset";
00074 const static std::string kButtonResetAllLabel = "Reset all curves";
00075 
00076 //Selection to curves buttons
00077 const static std::string kButtonSelectionToCurveRGB = "SelectionToCurveRGB";
00078 const static std::string kButtonSelectionToCurveHSL = "SelectionToCurveHSL";
00079 
00080 const static std::string kButtonSelectionToCurveRGBLabel = "From selection";
00081 const static std::string kButtonSelectionToCurveHSLLabel = "From selection";
00082 
00083 //Append current selection to curve
00084 const static std::string kButtonAppendSelectionToCurveRGB = "AppendSelectionToCurveRGB";
00085 const static std::string kButtonAppendSelectionToCurveHSL = "AppendSelectionToCurveHSL";
00086 
00087 const static std::string kButtonAppendSelectionToCurveRGBLabel = "Append from selection";
00088 const static std::string kButtonAppendSelectionToCurveHSLLabel = "Append from selection";
00089 
00090 //Refresh overlay button
00091 const static std::string kButtonRefreshOverlay = "RefreshOverlay";
00092 const static std::string kButtonRefreshOverlayLabel = "Refresh overlay";
00093 
00094 //nbStep range
00095 const static std::string knbStepRange = "numberOfStep";
00096 const static std::string knbStepRangeLabel = "Number of steps ";
00097 
00098 //Curve from selection precision
00099 const static std::string kprecisionCurveFromSelection = "PrecisionCurvesFromSelection";
00100 const static std::string kprecisionCurveFromSelectionLabel = "Curves from selection precision";
00101 //selection multiplier
00102 const static std::string kselectionMultiplier = "SelectionMultiplier";
00103 const static std::string kselectionMultiplierLabel = "Selection multiplier ";
00104 
00105 //Hue indicator
00106 const static int kPrecisionHueIndicator = 360;
00107 
00108 //Output settings
00109 const static std::string kOutputListParamLabel = "Output settings ";
00110 const static std::string kOutputListParamOpt1 = "alpha channel";
00111 const static std::string kOutputListParamOpt2 = "black & white";
00112 
00113 //Selection mode
00114 const static std::string kSelectionModeListParamLabel = "Selection mode";
00115 const static std::string kSelectionModeListParamOpt1 = "unique";
00116 const static std::string kSelectionModeListParamOpt2 = "additive";
00117 const static std::string kSelectionModeListParamOpt3 = "subtractive";
00118 
00119 //Global display check box
00120 const static std::string kGlobalDisplay = "global display";
00121 
00122 typedef OfxRGBColourF Color;
00123 
00124 //Histograms color (struct)
00125 struct HistogramColor
00126 {
00127          OfxRGBColourF _colorBorder; // border color
00128          OfxRGBColourF _colorFill;   // filling color
00129 };
00130 
00131 //Histograms colors
00132 static const OfxRGBColourF redFilling={1.0f,0.2f,0.2f};
00133 static const OfxRGBColourF greenFilling={0.2f,1.0f,0.2f};
00134 static const OfxRGBColourF blueFilling={0.2f,0.2f,1.0f};
00135 
00136 static const OfxRGBColourF redBorder = {0.8f,0.0f,0.0f};
00137 static const OfxRGBColourF greenBorder = {0.0f,0.8f,0.0f};
00138 static const OfxRGBColourF blueBorder = {0.0f,0.0f,0.8f};
00139 
00140 static const HistogramColor redHisto = {redBorder,redFilling};
00141 static const HistogramColor greenHisto = {greenBorder,greenFilling};
00142 static const HistogramColor blueHisto = {blueBorder,blueFilling};
00143 
00144 //Average bar color
00145 static const OfxRGBColourF averageFilling={0.2f,0.2f,1.0f};
00146 static const OfxRGBColourF averageBorder={1.0f,0.84f,0.0f};
00147 static const HistogramColor averageHisto = {averageBorder,averageFilling};
00148 
00149 
00150 
00151 static const std::string kMultiplierLabel = "Multiplier";
00152 //Channel multiplier (RGB)
00153 static const std::string kMultiplierRed = "Red multiplier";
00154 static const std::string kMultiplierGreen = "Green multiplier";
00155 static const std::string kMultiplierBlue = "Blue multiplier";
00156 //Channel mutiliplier(HSL)
00157 static const std::string kMultiplierHue = "Hue multiplier";
00158 static const std::string kMultiplierSaturation = "Saturation multiplier";
00159 static const std::string kMultiplierLightness = "Lightness multiplier";
00160 
00161 
00162 ///@todo: remove when Nuke overlay option works 
00163 //Translation (separate HSL from RGB)
00164 const static float kTranslationHSL = 200.0f;
00165 //Translation (separate HSL from RGB)
00166 const static float kTranslationRGB = 200.0f;
00167 
00168 
00169 }
00170 }
00171 }
00172 
00173 #endif