35 #ifndef IECORENUKE_PARAMETERISEDHOLDER_H
36 #define IECORENUKE_PARAMETERISEDHOLDER_H
49 #include "IECore/Parameter.h"
50 #include "IECore/Parameterised.h"
52 #include "IECoreNuke/ParameterHandler.h"
53 #include "IECoreNuke/ObjectKnob.h"
58 template<
typename BaseType>
59 class ParameterisedHolder :
public BaseType
64 ParameterisedHolder( Node *node );
65 virtual ~ParameterisedHolder();
70 virtual int minimum_inputs()
const;
72 virtual int maximum_inputs()
const;
73 virtual bool test_input(
int input, DD::Image::Op *op )
const;
75 virtual void knobs( DD::Image::Knob_Callback f );
77 virtual int knob_changed( DD::Image::Knob *knob );
79 virtual void _validate(
bool forReal );
87 IECore::ConstRunTimeTypedPtr parameterised();
93 void setParameterValuesFromInputs();
94 void setParameterValues();
99 void buildParameterKnobHandles( DD::Image::ViewerContext *ctx )
const;
105 ObjectKnob *m_classSpecifierKnob;
106 DD::Image::Knob *m_versionChooserKnob;
107 DD::Image::Knob *m_classReloadKnob;
108 DD::Image::Knob *m_classDividerKnob;
109 void updateVersionChooser();
113 IECore::RunTimeTypedPtr m_parameterised;
114 IECore::ConstObjectPtr m_currentClassSpecification;
117 IECore::RunTimeTypedPtr loadClass(
bool refreshLoader );
120 void updateParameterised(
bool reload );
124 ParameterHandlerPtr m_parameterHandler;
125 size_t m_numParameterKnobs;
127 static void parameterKnobs(
void *that, DD::Image::Knob_Callback f );
132 DD::Image::Knob *m_getParameterisedKnob;
133 static IECore::RunTimeTypedPtr getParameterisedResult();
135 DD::Image::Knob *m_modifiedParametersKnob;
136 static void setModifiedParametersInput( IECore::RunTimeTypedPtr parameterised );
138 friend void bindFnParameterisedHolder();
142 typedef ParameterisedHolder<DD::Image::Op> ParameterisedHolderOp;
146 #endif // IECORENUKE_PARAMETERISEDHOLDER_H
Definition: ParameterisedInterface.h:50
The IECoreNuke namespace holds all the functionality of libIECoreNuke.
Definition: BoolParameterHandler.h:40
Definition: ParameterisedHolder.h:41