Custom Node Types
Many common scene graph operations can be performed with standard Katana node types, but there are various means of customizing recipes with specialized operations.
At the lowest level, Ops (in-built and custom) can be added to a recipe using the GenericOp node type, with Op Args specified using a manually-defined parameter interface. This is a useful tool for ad hoc operations, and can also be used in saved and programmatic recipes, but it is often desirable to package recipe units as a dedicated node type.
A typical node can contribute one or more Ops to a recipe programmatically, based on its parameters and inputs, and customize its parameter user interface. Custom nodes can be defined using NodeTypeBuilder.
Where recipe components call for the use of multiple nodes, Macros are static reusable sections of node graph, but SuperTools provide a more powerful, dynamic means of contributing arbitrary node graph, with a custom top-level user interface.
NodeTypeBuilder
NodeTypeBuilder
NodeTypeBuilder.OpChainInterface
NodeTypeBuilder.OpChainInterface.FAIL
NodeTypeBuilder.OpChainInterface.NO_OP
NodeTypeBuilder.OpChainInterface.SKIP
NodeTypeBuilder.OpChainInterface.__init__()
NodeTypeBuilder.OpChainInterface.addInputRequest()
NodeTypeBuilder.OpChainInterface.addRequiredInput()
NodeTypeBuilder.OpChainInterface.appendOp()
NodeTypeBuilder.OpChainInterface.setExplicitInputRequestsEnabled()
NodeTypeBuilder.OpChainInterface.setExplicitInputRequirementsEnabled()
NodeTypeBuilder.OpChainInterface.setMinRequiredInputs()
NodeTypeBuilder.SetGenericAssignPolicyRegistrationCallback()
NodeTypeBuilder.__init__()
NodeTypeBuilder.addInteractiveTransformCallbacks()
NodeTypeBuilder.addMakeInteractiveParameter()
NodeTypeBuilder.addTimingParameters()
NodeTypeBuilder.addTransformParameters()
NodeTypeBuilder.build()
NodeTypeBuilder.setAddParameterHintsFnc()
NodeTypeBuilder.setAppendToParametersOpChainFnc()
NodeTypeBuilder.setBuildOpChainFnc()
NodeTypeBuilder.setBuildParametersFnc()
NodeTypeBuilder.setCustomMethod()
NodeTypeBuilder.setGenericAssignRoots()
NodeTypeBuilder.setGetInputPortAndGraphStateFnc()
NodeTypeBuilder.setGetScenegraphLocationFnc()
NodeTypeBuilder.setHintsForNode()
NodeTypeBuilder.setHintsForParameter()
NodeTypeBuilder.setInputPortNames()
NodeTypeBuilder.setIsHiddenFromMenus()
NodeTypeBuilder.setNodeTypeVersion()
NodeTypeBuilder.setNodeTypeVersionUpdateFnc()
NodeTypeBuilder.setOutputPortNames()
NodeTypeBuilder.setParametersTemplateAttr()
- Op Chain Interfaces
BaseOpChainInterface
BaseOpChainInterface.__init__()
BaseOpChainInterface.addOpSystemArgs()
BaseOpChainInterface.buildAttrFromParam()
BaseOpChainInterface.buildAttrListForEnableableParameters()
BaseOpChainInterface.getExclusiveToNameAndAttribute()
BaseOpChainInterface.getFrameTime()
BaseOpChainInterface.getGraphState()
BaseOpChainInterface.getModifiedFrameTime()
BaseOpChainInterface.getNumSamples()
BaseOpChainInterface.getOutputPortName()
BaseOpChainInterface.getShutterClose()
BaseOpChainInterface.getShutterOpen()
BaseOpChainInterface.getTransformAsAttribute()
OpChainInterface
OpChainInterface.FAIL
OpChainInterface.NO_OP
OpChainInterface.SKIP
OpChainInterface.__init__()
OpChainInterface.addInputRequest()
OpChainInterface.addRequiredInput()
OpChainInterface.appendOp()
OpChainInterface.setExplicitInputRequestsEnabled()
OpChainInterface.setExplicitInputRequirementsEnabled()
OpChainInterface.setMinRequiredInputs()
ParametersOpChainInterface
- Migration Guide: Modifying Graph State
- Supporting Local Graph State in Parameter Evaluation
- SuperTools
- How To Write a SuperTool
- SuperTool API
- How To Write a Package SuperTool
PackageSuperToolAPI
- Top-level Functions
- Modules
- Base Node
BaseNode
BaseNode.VERSION
BaseNode.__init__()
BaseNode.adoptLocationForEditing()
BaseNode.adoptLocationsForEditing()
BaseNode.canAdoptLocationForEditing()
BaseNode.canAdoptLocationsForEditing()
BaseNode.getAPIVersion()
BaseNode.getDefaultRootLocation()
BaseNode.getItemListAttributeName()
BaseNode.getLocationAttributes()
BaseNode.getPackageForPath()
BaseNode.getRegisteredDisplayPackageClasses()
BaseNode.getRegisteredPackageClasses()
BaseNode.getRootLocation()
BaseNode.getRootPackage()
BaseNode.getShowIncomingScene()
BaseNode.getSuperToolName()
BaseNode.getSyncSelection()
BaseNode.getVersion()
BaseNode.isLocationAdopted()
BaseNode.setRootLocation()
BaseNode.setShowIncomingScene()
BaseNode.setSyncSelection()
BaseNode.setVersion()
BaseNode.superToolRegistered()
BaseNode.upgrade()
RegisterTagAdoptedNodeType()
- Base Editor
BaseEditor
BaseEditor.AddPackageRegistry
BaseEditor.PackageMenuActionsRegistry
BaseEditor.SEPARATOR
BaseEditor.TAB_AREA_UPDATE_INTERVAL
BaseEditor.__init__()
BaseEditor.addTab()
BaseEditor.canSelectionBeExported()
BaseEditor.getAddPackageMenuActions()
BaseEditor.getAttribute()
BaseEditor.getChildrenUnder()
BaseEditor.getDefaultAddMenuGroupName()
BaseEditor.getDefaultSceneGraphViewTerminalOpUpdates()
BaseEditor.getDefaultSceneGraphViewTerminalOps()
BaseEditor.getKeyboardShortcuts()
BaseEditor.getLayoutOrientation()
BaseEditor.getMainNode()
BaseEditor.getMainPanelWidget()
BaseEditor.getMenuActions()
BaseEditor.getPackageForPath()
BaseEditor.getSceneGraphView()
BaseEditor.getSceneGraphViewTerminalOpUpdates()
BaseEditor.getSceneGraphViewTerminalOps()
BaseEditor.getSelectedItems()
BaseEditor.getSelectedPackages()
BaseEditor.getSuperToolName()
BaseEditor.getTabNames()
BaseEditor.getTabWidget()
BaseEditor.getTopLevelPackage()
BaseEditor.hideEvent()
BaseEditor.onSelectionChanged()
BaseEditor.populateContextMenu()
BaseEditor.registerAddPackageKeyboardShortcut()
BaseEditor.registerKeyboardShortcuts()
BaseEditor.registerPackageKeyboardShortcuts()
BaseEditor.removeTab()
BaseEditor.setColumnToUpdateOnStateChange()
BaseEditor.setupSceneGraphViewColumns()
BaseEditor.setupTabWidget()
BaseEditor.showEvent()
BaseEditor.staticMetaObject
GafferThreeInteractionDelegate
- Packages
- Packages
Package
Package.__init__()
Package.adoptPackage()
Package.canAdoptPackage()
Package.canBeAdoptedByPackage()
Package.canBeCreatedByPackageClass()
Package.canBeDeleted()
Package.canBeDuplicated()
Package.canBeRenamed()
Package.canCreateChildPackage()
Package.canCreatePackageClass()
Package.canDuplicate()
Package.canReorderChildPackage()
Package.create()
Package.createChildPackage()
Package.createPackage()
Package.createPackageGroupNode()
Package.createPostMergeStackNode()
Package.createStandardPackageNodes()
Package.delete()
Package.duplicate()
Package.getAdoptableLocationTypes()
Package.getChildPackage()
Package.getChildPackages()
Package.getCreateNode()
Package.getEditPackageClass()
Package.getExtraNodeDependencies()
Package.getLocationPath()
Package.getMainNode()
Package.getMainNodeFromNode()
Package.getName()
Package.getOrCreateNodeByType()
Package.getOverrideNodeAndParameter()
Package.getPackageClassFromNode()
Package.getPackageFromNode()
Package.getPackageNode()
Package.getParentPackage()
Package.getPostMergePackageStack()
Package.initializeExtraNodeDependencies()
Package.isNodeOfType()
Package.reorderChildPackage()
Package.setEditPackageClass()
Package.setName()
Package.supportsLocking()
Package.walkUpPackageHierarchy()
EditPackage
GroupPackage
GroupEditPackage
DummyGroupPackage
DummyGroupPackage.DEFAULT_NAME
DummyGroupPackage.DISPLAY_ICON
DummyGroupPackage.__init__()
DummyGroupPackage.canAdoptPackage()
DummyGroupPackage.canCreateChildPackage()
DummyGroupPackage.childRemoved()
DummyGroupPackage.create()
DummyGroupPackage.createChildPackage()
DummyGroupPackage.createForLocation()
DummyGroupPackage.createParentPackageHierarchy()
DummyGroupPackage.delete()
DummyGroupPackage.getChildPackageCreateNode()
DummyGroupPackage.getChildPackages()
DummyGroupPackage.getLocationPath()
DummyGroupPackage.getMainNode()
DummyGroupPackage.getParentPackage()
RootPackage
- Mix-ins
Mixin
CallbackMixin
DisableableMixin
GroupMixin
GroupMixin.adoptPackage()
GroupMixin.canAdoptPackage()
GroupMixin.canCreateChildPackage()
GroupMixin.canReorderChildPackage()
GroupMixin.childRemoved()
GroupMixin.createChildPackage()
GroupMixin.getChildPackage()
GroupMixin.getChildPackageCreateNode()
GroupMixin.getChildPackages()
GroupMixin.getLocationTypes()
GroupMixin.reorderChildPackage()
LinkingMixin
LinkingMixin.LINKING_ILLUMINATION_EFFECT
LinkingMixin.LINKING_ILLUMINATION_NODE_NAME
LinkingMixin.LINKING_ILLUMINATION_NODE_REF
LinkingMixin.LINKING_SHADOW_EFFECT
LinkingMixin.LINKING_SHADOW_NODE_NAME
LinkingMixin.LINKING_SHADOW_NODE_REF
LinkingMixin.getIlluminationLinkingNode()
LinkingMixin.getLinkingNodes()
LinkingMixin.getShadowLinkingNode()
LockingMixin
LookFileReferenceEditMixin
MaterialMixin
MuteAndSoloMixin
MuteAndSoloMixin.MUTEANDSOLO_NODE_REFERENCE
MuteAndSoloMixin.NODE_NAME
MuteAndSoloMixin.SOLOLISTEDIT_NODE_REFERENCE
MuteAndSoloMixin.delete()
MuteAndSoloMixin.getExtraNodeDependencies()
MuteAndSoloMixin.getMuteSoloAndSoloListEditNode()
MuteAndSoloMixin.getOverrideNodeAndParameter()
MuteAndSoloMixin.initializeExtraNodeDependencies()
MuteAndSoloMixin.isMuteOverrideEnabled()
MuteAndSoloMixin.isMuted()
MuteAndSoloMixin.isSoloOverrideEnabled()
MuteAndSoloMixin.isSoloed()
MuteAndSoloMixin.setMuted()
MuteAndSoloMixin.setSoloed()
MuteAndSoloEditMixin
- Module Functions
- Packages
- Node Utilities
AddNodeRef()
AddPackageTypeAndPath()
AppendNode()
AppendNodes()
DeleteDeepParameter()
GetDownstreamNodes()
GetDownstreamPorts()
GetEditPackageForLocationPath()
GetEditPackageLocationPaths()
GetEditPackages()
GetPackageLocationParameterPath()
GetPackageTypeParameterPath()
GetRefNode()
GetSceneGraphPathExpression()
GetSuperToolGroupName()
GetUpstreamPort()
IsNodeGuardedFromDeletion()
NodeDeletionGuard()
PositionMergeInputs()
PrependNode()
RemoveNodeRef()
SetOrCreateDeepArrayParameter()
SetOrCreateDeepScalarParameter()
SetOrCreateDeepVectorParameter()
SetPackageNodeName()
TransferNodeConnections()
UpdateChildPackagePaths()
UpdateEditPackagePaths()
WireInlineNodes()
- Base Node