Nuke binary plugins 14.1.5
 
Loading...
Searching...
No Matches
DD::Image::SourceGeomOp::SourceEngine Class Referenceabstract

The type for missing parent prims we create. More...

#include <SourceGeomOp.h>

Inheritance diagram for DD::Image::SourceGeomOp::SourceEngine:
DD::Image::GeomOpEngine

Protected Member Functions

 SourceEngine (Op *parent)
 
SourceGeomOpsourceGeomOp () 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
 
OpfirstOp () 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
 
GeomOpgeomOpAt (double frame, int32_t view=-1) const
 
GeomOpgeomOpAtContext (const OutputContext &context) const
 Same as geomOpAt() but takes OutputContext.
 
GeomOpSet geomOpsFor (const std::set< int32_t > &views, const fdk::TimeValueSet &times) 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 >
getValue (const KnobBinding &knob) const
 Convenience method to get a value from a KnobBinding, if it's valid.
 
template<typename T >
getValue (const char *knobName) const
 Convenience method to get a value from a named Knob, if it exists.
 
template<typename 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 >
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 >
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 >
getValue (const T &defaultValue, const KnobBinding &knob) const
 getValue() variant for uniform (non-animating) Knobs, or if the default uiContext() is desired.
 
OpinputOpAt (uint32_t node_input, double frame, const OutputContext &ctx)
 
OpinputOpAt (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 InputBindinginputBinding (uint32_t node_input)
 
GeomEngine * inputEngine (uint32_t node_input) override
 
GeomEngine * inputEngine0 () override
 
GeomEngine * inputEngine1 () override
 
OpinputBaseOp (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().
 

Detailed Description

The type for missing parent prims we create.

The plugin author must at least implement the createPrims() method.

Member Function Documentation

◆ processScenegraph()

◆ editComposedStage()

void SourceGeomOp::SourceEngine::editComposedStage ( usg::GeomSceneContext &  context)
overrideprotected

Updates the shader attribs for the output frame and view.

◆ createPrims()

virtual void DD::Image::SourceGeomOp::SourceEngine::createPrims ( usg::GeomSceneContext &  context,
const usg::Path &  path 
)
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.
www.foundry.com