35 #ifndef IECORE_PARAMETERISEDPROCEDURAL_H
36 #define IECORE_PARAMETERISEDPROCEDURAL_H
38 #include "IECore/Export.h"
39 #include "IECore/VisibleRenderable.h"
40 #include "IECore/ParameterisedInterface.h"
45 IE_CORE_FORWARDDECLARE( CompoundObject )
47 class IECORE_API ParameterisedProcedural : public VisibleRenderable, public ParameterisedInterface
64 ParameterisedProcedural(
const std::string &description =
"" );
66 ~ParameterisedProcedural()
override;
68 IE_CORE_DECLAREABSTRACTOBJECT( ParameterisedProcedural, VisibleRenderable );
71 const std::string &description()
const;
74 void render( Renderer *renderer )
const override;
81 void render( Renderer *renderer,
bool inAttributeBlock,
bool withState,
bool withGeometry,
bool immediateGeometry )
const;
84 Imath::Box3f bound()
const override;
86 CompoundParameter *parameters()
override;
87 const CompoundParameter *parameters()
const override;
96 virtual void doRenderState( RendererPtr renderer, ConstCompoundObjectPtr args )
const;
99 virtual Imath::Box3f doBound( ConstCompoundObjectPtr args )
const = 0;
102 virtual void doRender( RendererPtr renderer, ConstCompoundObjectPtr args )
const = 0;
108 friend class Forwarder;
110 std::string m_description;
111 CompoundParameterPtr m_parameters;
113 static const unsigned int m_ioVersion;
117 IE_CORE_DECLAREPTR( ParameterisedProcedural );
121 #endif // IECORE_PARAMETERISEDPROCEDURAL_H
This namespace contains all components of the core library.
Definition: AddSmoothSkinningInfluencesOp.h:43