35 #ifndef IECORENUKE_CURVELOOKUP_H
36 #define IECORENUKE_CURVELOOKUP_H
38 #include "DDImage/Description.h"
39 #if ( DD_IMAGE_VERSION_MAJOR >= 5 && DD_IMAGE_VERSION_MINOR > 0 ) || DD_IMAGE_VERSION_MAJOR >= 6
40 #define IECORENUKE_NO_ANIMATION
43 #ifdef IECORENUKE_NO_ANIMATION
44 #include "DDImage/LookupCurves.h"
46 #include "DDImage/Animation.h"
49 #include "DDImage/Knobs.h"
70 CurveLookup(
const std::string &name,
const std::string &label,
const std::string &toolTip =
"" );
76 int addCurve(
const std::string &name,
const std::string &defaultCurve =
"y C 0 1" );
78 void knob( DD::Image::Knob_Callback f );
81 void validate( T xMin = 0, T xMax = 1,
unsigned numSamples=100 );
83 void append( DD::Image::Hash &hash )
const;
85 void append(
unsigned curveIndex, DD::Image::Hash &hash )
const;
89 void validate(
unsigned curveIndex, T xMin = 0, T xMax = 1,
unsigned numSamples=100 );
92 inline T
evaluate(
unsigned curveIndex, T x )
const;
100 unsigned numCurves()
const;
104 std::string m_toolTip;
106 #ifdef IECORENUKE_NO_ANIMATION
107 std::vector<std::string> *m_namesAndDefaultsStrings;
108 std::vector<DD::Image::CurveDescription> *m_curveDescriptions;
109 DD::Image::LookupCurves *m_curves;
111 std::vector<std::string> m_namesAndDefaultsStrings;
112 std::vector<const char *> m_namesAndDefaultsPtrs;
113 std::vector<const DD::Image::Animation *> m_curves;
118 std::vector<T> values;
124 std::vector<Lookup> m_lookups;
130 #include "IECoreNuke/CurveLookup.inl"
132 #endif // IECORENUKE_CURVELOOKUP_H
void validate(T xMin=0, T xMax=1, unsigned numSamples=100)
int addCurve(const std::string &name, const std::string &defaultCurve="y C 0 1")
void knob(DD::Image::Knob_Callback f)
Call this in the knobs() method for a node, to build the interface for the curves.
Definition: CurveLookup.h:63
The IECoreNuke namespace holds all the functionality of libIECoreNuke.
Definition: BoolParameterHandler.h:40
T evaluate(unsigned curveIndex, T x) const
void append(DD::Image::Hash &hash) const
Append all the curves to the specified Hash.