Nuke binary plugins 16.1.1
 
Loading...
Searching...
No Matches
DD::Image::OpGraphLocation Struct Reference

#include <OpState.h>

Inheritance diagram for DD::Image::OpGraphLocation:
DD::Image::Op::Input

Public Member Functions

 OpGraphLocation (Op *_op)
 graphState and node are copied from _op, if valid.
 
 OpGraphLocation (Op *_op, const OpState &_state, Node *_node=nullptr)
 If _node is null then it will be copied from _op, if valid.
 
bool isNodeGraphLocation () const
 Returns true when both op and node are valid.
 
bool isOrphanedOp () const
 
 operator bool () const
 Note that a valid OpGraphLocation must have a non-null Op, but can have a null Node.
 
bool operator== (const OpGraphLocation &b) const
 Only compares the Op* and its graph state.
 
bool operator!= (const OpGraphLocation &b) const
 
bool operator< (const OpGraphLocation &b) const
 
bool operator> (const OpGraphLocation &b) const
 
const HashopHash () const
 Hash from graphState. Note - may be different than op->hash()!
 
bool opHashAnimates () const
 Does the graphState opHash animate? Note - may be different than op->varyingOutputHash()!
 
bool varyingOutputHash () const
 
const HasheditVersionHash () const
 Edit version hash from graphState. Note - may be different than op->editVersionHash()!
 
const HashtopologyHash () const
 Hash of input graph structure unaffected by knob values.
 
const char * nodeName () const
 
std::string nodeIdentifierName () const
 
void applyTimeRemapping (const fdk::TimeValueSet &outTimes, fdk::TimeValueSet &inTimes) const
 
void applyTimeRemapping (const fdk::TimeValueList &outTimes, fdk::TimeValueSet &inTimes) const
 Same but with a time list source.
 
Iopiop () const
 
DeepOnlyOpdeepOnlyOp () const
 
ParticleOpparticleOp () const
 
AxisOpaxisOp () const
 
LightOplightOp () const
 
CameraOpcameraOp () const
 
SceneOpIsceneOpI () const
 
AxisSceneOpaxisSceneOp () const
 
CameraSceneOpcameraSceneOp () const
 
LightSceneOplightSceneOp () const
 
GeometryProviderIgeometryProvider () const
 
GeomOpgeomOp () const
 

Public Attributes

Opop
 The Op at this graph point (maybe not created by 'node')
 
OpState graphState
 State of op at this graph point (maybe not same as stored in 'op')
 
Node * node
 The Node at this graph point, if it exists (maybe not same as the 'op' node)
 

Detailed Description

For capturing the Op graph state at any arbitrary graph point, typically an Op input or output. It contains a pointer to an Op, the graph state for the Op at this point, and a Node if one exists in the graph at this point.

A valid OpGraphContext must have a non-null op pointer, while the node can be null. A null node will commonly occur when Ops are directly connected together without participating creator Nodes, or when connecting dangling input to default Ops (the default Op usually has no owner Node).

Note that if non-null node may not be the same Node that op was generated by since there may be additional non-OpNodes in between op's Node and this point in the graph. When this is the case graphState can be different than the one stored in op due to those additional Nodes modifying the graph info. The topology hash will also show differences in the node graph structure between two points.

Member Function Documentation

◆ isOrphanedOp()

bool DD::Image::OpGraphLocation::isOrphanedOp ( ) const
inline

Returns true if the location has a valid Op but no owner Node. Commonly occurs when Ops are directly connected together without participating creator Nodes, or when connecting dangling input to default Ops.

◆ nodeName()

const char * OpGraphLocation::nodeName ( ) const

Returns node's name if it exists, otherwise op's node name if it exists. Since node takes priority over op this name will always default to the location Node which may not be the Op's creator node.

Note this can be an empty string but will always be non-null.

References node, DD::Image::Op::nodeName(), and op.

Referenced by DD::Image::GeomOpEngine::importShaderOp().

◆ nodeIdentifierName()

std::string OpGraphLocation::nodeIdentifierName ( ) const

Same, but makes the node name unique if cloned by appending the clone index so the string can be used as an identifier. Since node takes priority over op this name will always default to the location Node which may not be the Op's creator node.

References DD::Image::Op::node(), node, and op.

Referenced by DD::Image::ShaderOp::createCoShaderInterfaceGraph(), DD::Image::ShaderOp::createIopInterfaceGraph(), DD::Image::MaterialOpI::getShaderNodeNameFromOp(), and DD::Image::ShaderOp::updateIopInterfaceGraphOverrides().

◆ applyTimeRemapping()

void OpGraphLocation::applyTimeRemapping ( const fdk::TimeValueSet &  outTimes,
fdk::TimeValueSet &  inTimes 
) const

If the location contains a Node apply its out->in time remapping function, otherwise outTimes are just copied to inTimes.

References node, op, and DD::Image::Op::outputContext().



©2026 The Foundry Visionmongers, Ltd. All Rights Reserved.
www.foundry.com