HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
providerResolution.h
Go to the documentation of this file.
1 //
2 // Copyright 2025 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef PXR_EXEC_PROVIDER_RESOLUTION_H
8 #define PXR_EXEC_PROVIDER_RESOLUTION_H
9 
10 /// \file
11 
12 #include "pxr/pxr.h"
13 
14 #include "pxr/exec/exec/types.h"
15 
16 #include "pxr/usd/sdf/path.h"
17 
19 
20 /// Data used to find computation providers during exec compilation.
21 ///
22 /// The provider resolution process starts from the **origin object**, the
23 /// scene object that owns the consuming computation, and searches to find
24 /// **computation providers**, the scene objects that own the computations
25 /// that are evaluated to yield input values.
26 ///
28 
29  /// A path that describes the first part of provider resolution.
30  ///
31  /// This path is relative to the origin object.
32  ///
34 
35  /// An enum that indicates the part of provider resolution that is
36  /// implemented by exec compilation logic.
37  ///
38  /// This part of the traversal can search through the scene, apply
39  /// predicates, and can branch out, potentially finding multiple providers.
40  ///
41  enum class DynamicTraversal {
42  /// The localTraversal path directly indicates the computation provider.
43  Local,
44 
45  /// Find providers by traversing relationship targets, applying any
46  /// relationship forwarding, to the targeted objects.
48 
49  /// Find providers by traversing attribute connections to the objects
50  /// they target.
52 
53  /// Find providers by traversing incoming attribute connections to the
54  /// attributes that own them.
56 
57  /// Find the provider by traversing upward in namespace
59  };
60 
61  /// An enum value that indicates the type of dynamic traversal used during
62  /// provider resolution.
63  ///
65 };
66 
68 
69 #endif
#define PXR_NAMESPACE_OPEN_SCOPE
Definition: pxr.h:73
DynamicTraversal dynamicTraversal
The localTraversal path directly indicates the computation provider.
Definition: path.h:280
Find the provider by traversing upward in namespace.
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74