#include <OpState.h>
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 Hash & | opHash () 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 Hash & | editVersionHash () const |
| Edit version hash from graphState. Note - may be different than op->editVersionHash()! | |
| const Hash & | topologyHash () 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. | |
| Iop * | iop () const |
| DeepOnlyOp * | deepOnlyOp () const |
| ParticleOp * | particleOp () const |
| AxisOp * | axisOp () const |
| LightOp * | lightOp () const |
| CameraOp * | cameraOp () const |
| SceneOpI * | sceneOpI () const |
| AxisSceneOp * | axisSceneOp () const |
| CameraSceneOp * | cameraSceneOp () const |
| LightSceneOp * | lightSceneOp () const |
| GeometryProviderI * | geometryProvider () const |
| GeomOp * | geomOp () const |
Public Attributes | |
| Op * | op |
| 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) | |
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.
|
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.
| 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().
| 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().
| 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. |