The type for missing parent prims we create. More...
#include <SourceGeomOp.h>
Protected Member Functions | |
SourceEngine (Op *parent) | |
SourceGeomOp * | sourceGeomOp () const |
void | processScenegraph (usg::GeomSceneContext &context) override |
void | editComposedStage (usg::GeomSceneContext &context) override |
virtual void | createPrims (usg::GeomSceneContext &context, const usg::Path &path)=0 |
Returns the parent prim created by the engine (if any). You can access this in createPrims(). | |
usg::Prim & | parentPrim () |
Protected Member Functions inherited from DD::Image::GeomOpEngine | |
GeomOpEngine (Op *parent) | |
virtual usg::Path | importShaderOp (bool create_mode, usg::GeomSceneContext &scene_context, const std::vector< Op * > &source_ops, uint32_t material_group_index, const usg::Path &material_library_path) |
virtual usg::Path | importLightOp (bool create_mode, usg::GeomSceneContext &scene_context, const std::vector< LightOp * > &source_light_ops, const usg::Path &light_prim_path, const usg::Path &material_library_path=usg::Path()) |
virtual void | assignMaterialBinding (usg::GeomSceneContext &context, bool create_mode, const usg::Path &material_path, const usg::PathArray &primPaths) |
Protected Attributes | |
usg::GeomStateTarget | materialTopologyTarget |
'material-topology' - affects the define-geometry target | |
usg::GeomStateTarget | materialPropertyTarget |
'material-property' - affects the edit-stage target | |
usg::GeomStateTarget | modifyXformTarget |
'modify-xform' - affects the modify-values target | |
usg::Token | _parentPrimType |
The type of prim to create for the main prim's parent (default Xform) | |
usg::Prim | _parentPrim |
The parent prim created by the engine (if any) | |
usg::Path | _evaluatedPrimPath |
Evaluated output path of prim in stage. | |
Protected Attributes inherited from DD::Image::GeomOpEngine | |
Op * | _firstOp |
Op that's guaranteed to exist and offer access to Nuke Node. | |
GeomOpSet | _memberGeomOps |
All GeomOps sharing this engine - NOT the current active engine set! | |
fdk::Hash | _lastVersionsHash |
The last combined GeomOp versions hashes. | |
fdk::Hash | _lastRequestHash |
The last combined GeomOp hashes passed to the most recent buildStage() | |
usg::ShaderDescGroupPtrMap | _shaderDescGroups |
Groups of locally-created ShaderDescs. | |
Additional Inherited Members | |
Public Types inherited from DD::Image::GeomOpEngine | |
using | Builder = std::function< GeomOpEngine *(Op *)> |
'parent' is automatically provided when the first GeomOpEngine request is made. | |
using | OpInput = std::pair< Op *, OutputContext > |
Combination of input Op and its OutputContext when cached in map. | |
using | OpInputTimeMap = std::map< double, OpInput > |
using | OpInputTimeMapList = std::vector< OpInputTimeMap > |
using | OpInputTimeWarpMap = std::map< double, double > |
using | InputBindingList = std::vector< InputBinding > |
Public Member Functions inherited from DD::Image::GeomOpEngine | |
std::string | name () const override |
Op * | firstOp () const |
void | addMemberGeomOp (GeomOp *geop) |
Add to the node's GeomOp member set. | |
void | removeMemberGeomOp (GeomOp *geop) |
Remove from the node's GeomOp member set. | |
const GeomOpSet & | memberGeomOps () const |
GeomOp * | geomOpAt (double frame, int32_t view=-1) const |
GeomOp * | geomOpAtContext (const OutputContext &context) const |
Same as geomOpAt() but takes OutputContext. | |
GeomOpSet | geomOpsFor (const std::set< int32_t > &views, const fdk::TimeValueSet ×) const |
Find all the GeomOps matching the views and times. | |
KnobBinding | knob (const char *knob_name) const |
Return a read handle to the named Knob from the engine. | |
template<typename T > | |
T | getValue (const KnobBinding &knob) const |
Convenience method to get a value from a KnobBinding, if it's valid. | |
template<typename T > | |
T | getValue (const char *knobName) const |
Convenience method to get a value from a named Knob, if it exists. | |
template<typename T > | |
T | getValue (const T &defaultValue, const char *knobName, double frame, int view=-1) const |
Convenience method to get a value from a named Knob, if it exists, otherwise return defaultValue. | |
template<typename T > | |
T | getValue (const T &defaultValue, const char *knobName) const |
getValue() variant for uniform (non-animating) Knobs, or if the default uiContext() is desired. | |
template<typename T > | |
void | getValue (T &v, const char *knobName, double frame, int view=-1) const |
template<typename T > | |
void | getValue (T &v, const char *knobName) const |
getValue(&T) variant for uniform (non-animating) Knobs, or if the default uiContext() is desired. | |
template<typename T > | |
T | getValue (const T &defaultValue, const KnobBinding &knob, double frame, int view=-1) const |
Convenience method to get a value from a KnobBinding, if it's valid, otherwise return defaultValue. | |
template<typename T > | |
T | getValue (const T &defaultValue, const KnobBinding &knob) const |
getValue() variant for uniform (non-animating) Knobs, or if the default uiContext() is desired. | |
Op * | inputOpAt (uint32_t node_input, double frame, const OutputContext &ctx) |
Op * | inputOpAt (uint32_t node_input, double frame, int32_t view=-1) |
size_t | nInputs () const override |
size_t | nInputOps () const |
Returns the sum of all InputBinding op_split_counts. | |
const InputBinding & | inputBinding (uint32_t node_input) |
GeomEngine * | inputEngine (uint32_t node_input) override |
GeomEngine * | inputEngine0 () override |
GeomEngine * | inputEngine1 () override |
Op * | inputBaseOp (uint32_t node_input) |
void | printInputBindings (std::ostream &, const char *prefix="") const |
Prints the contents of the current InputBindings. | |
void | mergeFromInputs (usg::GeomSceneContext &context, const std::vector< int32_t > &inputs) override |
void | mergeFromInputs (usg::GeomSceneContext &context, int input, int count) |
void | processScenegraph (usg::GeomSceneContext &context) override |
This just sets the nuke:node data on the edit layer so we can go back from the Layer to the Node that created it. | |
void | updateGeomEngineState (const usg::ArgSet &request_args, const GeomOpSet &geops, fdk::TimeValueSet &active_times) |
const fdk::Hash & | lastRequestHash () const |
void | setRequestHash (const fdk::Hash &hash) |
Assign the value of the request hash, usually done in GeomOp::buildStage(). | |
The type for missing parent prims we create.
The plugin author must at least implement the createPrims() method.
|
overrideprotected |
Initializes the scene state then calls the subclass createPrims().
References _evaluatedPrimPath, _parentPrim, _parentPrimType, DD::Image::GeomOpEngine::assignMaterialBinding(), createPrims(), DD::Image::Op::error(), DD::Image::GeomOpEngine::firstOp(), DD::Image::GeomOpEngine::importShaderOp(), DD::Image::GeomOpEngine::inputOpAt(), DD::Image::Op::iop(), DD::Image::GeomOpEngine::knob(), DD::Image::SourceGeomOp::materialInput(), DD::Image::GeomOpEngine::mergeFromInputs(), DD::Image::SourceGeomOp::mergeInput(), DD::Image::GeomOpEngine::name(), and DD::Image::Op::nodeFullPath().
|
overrideprotected |
Updates the shader attribs for the output frame and view.
|
protectedpure virtual |
Returns the parent prim created by the engine (if any). You can access this in createPrims().
Subclasses implement this to create primitives. context is the scene context path is the suggested path for the new prims. If an Xform or Scope parent prim was created this will be the path of that prim and and subclasses must append a new path component for prims they create.
Referenced by processScenegraph().
©2024 The Foundry Visionmongers, Ltd. All Rights Reserved. |