Loading...
Searching...
No Matches
system.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_EXEC_USD_SYSTEM_H
8#define PXR_EXEC_EXEC_USD_SYSTEM_H
9
11
12#include "pxr/pxr.h"
13
14#include "pxr/exec/execUsd/api.h"
16
18#include "pxr/exec/exec/request.h"
19#include "pxr/exec/exec/system.h"
20
21#include <memory>
22#include <vector>
23
24PXR_NAMESPACE_OPEN_SCOPE
25
27
29class ExecUsdRequest;
30class ExecUsdValueKey;
31class UsdTimeCode;
32
46{
47public:
48 EXECUSD_API
49 explicit ExecUsdSystem(const UsdStageConstRefPtr &stage);
50
51 // Systems are non-copyable and non-movable to simplify management of
52 // back-pointers.
53 //
54 ExecUsdSystem(const ExecUsdSystem &) = delete;
55 ExecUsdSystem& operator=(const ExecUsdSystem &) = delete;
56
57 EXECUSD_API
59
74 EXECUSD_API
76
104 EXECUSD_API
106 std::vector<ExecUsdValueKey> &&valueKeys,
107 ExecRequestComputedValueInvalidationCallback &&valueCallback =
108 ExecRequestComputedValueInvalidationCallback(),
109 ExecRequestTimeChangeInvalidationCallback &&timeCallback =
110 ExecRequestTimeChangeInvalidationCallback());
111
119 EXECUSD_API
120 void PrepareRequest(const ExecUsdRequest &request);
121
129 EXECUSD_API
131
151 EXECUSD_API
153 const ExecUsdRequest &request,
154 ExecUsdValueOverrideVector &&valueOverrides);
155
156private:
157 // This object to subscribes to scene changes on the UsdStage and delivers
158 // those changes to the base ExecSystem.
159 class _NoticeListener;
160 std::unique_ptr<_NoticeListener> _noticeListener;
161};
162
163PXR_NAMESPACE_CLOSE_SCOPE
164
165#endif
Base implementation of a system to procedurally compute values based on scene description and computa...
Definition: system.h:46
Provides a view of values computed by ExecUsdSystem::Compute().
Definition: cacheView.h:28
A batch of values to compute together.
Definition: request.h:32
The implementation of a system to procedurally compute values based on USD scene description and comp...
Definition: system.h:46
EXECUSD_API void PrepareRequest(const ExecUsdRequest &request)
Prepares a given request for execution.
EXECUSD_API void ChangeTime(UsdTimeCode time)
Changes the time at which values are computed.
EXECUSD_API ExecUsdCacheView Compute(const ExecUsdRequest &request)
Executes the given request and returns a cache view for extracting the computed values.
EXECUSD_API ExecUsdCacheView ComputeWithOverrides(const ExecUsdRequest &request, ExecUsdValueOverrideVector &&valueOverrides)
Executes the given request in the presence of valueOverrides, and returns a cache view for extracting...
EXECUSD_API ExecUsdRequest BuildRequest(std::vector< ExecUsdValueKey > &&valueKeys, ExecRequestComputedValueInvalidationCallback &&valueCallback=ExecRequestComputedValueInvalidationCallback(), ExecRequestTimeChangeInvalidationCallback &&timeCallback=ExecRequestTimeChangeInvalidationCallback())
Builds a request for the given valueKeys.
Specifies a computed value.
Definition: valueKey.h:56
The outermost container for scene description, which owns and presents composed prims as a scenegraph...
Definition: stage.h:135
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:72
Standard pointer typedefs.
#define TF_DECLARE_REF_PTRS(type)
Define standard ref pointer types.
Definition: declarePtrs.h:58