7#ifndef PXR_EXEC_VDF_ISOLATED_SUBNETWORK_H
8#define PXR_EXEC_VDF_ISOLATED_SUBNETWORK_H
14#include "pxr/exec/vdf/api.h"
17#include "pxr/base/tf/functionRef.h"
18#include "pxr/base/tf/pxrTslRobinMap/robin_map.h"
19#include "pxr/base/tf/pxrTslRobinMap/robin_set.h"
23PXR_NAMESPACE_OPEN_SCOPE
172 void _TraverseBranch(
182 std::vector<VdfNode *> _nodes;
191 _unisolatedOutputConnections;
195 bool _removedIsolatedObjects =
false;
198PXR_NAMESPACE_CLOSE_SCOPE
This class provides a non-owning reference to a type-erased callable object with a specified signatur...
A class that fully represents a connection between two VdfNodes.
A VdfIsolatedSubnetwork builds a collection of VdfNodes and VdfConnections that are disconnected from...
const ConnectionSet & GetIsolatedConnections() const
Returns the set of isolated nodes.
VDF_API bool AddIsolatedBranch(VdfNode *node, EditFilter canDelete)
Isolates all nodes and connections reachable via input connections from node that are not connected v...
VDF_API void RemoveIsolatedObjectsFromNetwork()
Removes all isolated objects from the network.
const std::vector< VdfNode * > & GetIsolatedNodes() const
Returns the set of isolated nodes.
static VDF_API std::unique_ptr< VdfIsolatedSubnetwork > IsolateBranch(VdfConnection *connection, EditFilter canDelete)
Isolates all nodes and connections reachable via input connections from connection that are not conne...
VDF_API bool AddIsolatedBranch(VdfConnection *connection, EditFilter canDelete)
Isolates all nodes and connections reachable via input connections from connection that are not conne...
pxr_tsl::robin_set< VdfConnection *, TfHash > ConnectionSet
A set of isolated connections.
static VDF_API std::unique_ptr< VdfIsolatedSubnetwork > New(VdfNetwork *network)
Creates an empty isolated subnetwork.
static VDF_API std::unique_ptr< VdfIsolatedSubnetwork > IsolateBranch(VdfNode *node, EditFilter canDelete)
Isolates all nodes and connections reachable via input connections from node that are not connected v...
TfFunctionRef< bool(const VdfNode *)> EditFilter
A function that returns true if the given node is allowed to be isolated and deleted.
A VdfNetwork is a collection of VdfNodes and their connections.
This is the base class for all nodes in a VdfNetwork.
Implementation of a hash map using open-addressing and the robin hood hashing algorithm with backward...