Loading...
Searching...
No Matches
discoveryPlugin.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
8#ifndef PXR_USD_SDR_DISCOVERY_PLUGIN_H
9#define PXR_USD_SDR_DISCOVERY_PLUGIN_H
10
17
18#include "pxr/pxr.h"
19#include "pxr/usd/sdr/api.h"
21#include "pxr/base/tf/type.h"
23#include "pxr/usd/sdr/declare.h"
26
27PXR_NAMESPACE_OPEN_SCOPE
28
32#define SDR_REGISTER_DISCOVERY_PLUGIN(DiscoveryPluginClass) \
33TF_REGISTRY_FUNCTION(TfType) \
34{ \
35 TfType::Define<DiscoveryPluginClass, TfType::Bases<SdrDiscoveryPlugin>>() \
36 .SetFactory<SdrDiscoveryPluginFactory<DiscoveryPluginClass>>(); \
37}
38
40
45public:
46 SDR_API
47 virtual ~SdrDiscoveryPluginContext() = default;
48};
49
50TF_DECLARE_WEAK_AND_REF_PTRS(SdrDiscoveryPlugin);
51
52class SdrDiscoveryPlugin : public NdrDiscoveryPlugin {
53public:
54 using Context = SdrDiscoveryPluginContext;
55
56 SDR_API
57 SdrDiscoveryPlugin();
58 SDR_API
59 virtual ~SdrDiscoveryPlugin();
60
66 SDR_API
67 NdrNodeDiscoveryResultVec DiscoverNodes(
68 const NdrDiscoveryPluginContext&) override final;
69
72 SDR_API
73 virtual SdrShaderNodeDiscoveryResultVec DiscoverShaderNodes(
74 const Context&) = 0;
75};
76
77
80using SdrDiscoveryPluginFactoryBase = NdrDiscoveryPluginFactoryBase;
81
82template <class T>
83using SdrDiscoveryPluginFactory = NdrDiscoveryPluginFactory<T>;
84
86
87PXR_NAMESPACE_CLOSE_SCOPE
88
89#endif // PXR_USD_SDR_DISCOVERY_PLUGIN_H
A context for discovery.
Interface for discovery plugins.
virtual NDR_API NdrNodeDiscoveryResultVec DiscoverNodes(const Context &)=0
Finds and returns all nodes that the implementing plugin should be aware of.
A context for discovery.
Standard pointer typedefs.
#define TF_DECLARE_WEAK_AND_REF_PTRS(type)
Define standard weak, ref, and vector pointer types.
Definition: declarePtrs.h:72