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"
15
17#include "pxr/exec/exec/request.h"
18#include "pxr/exec/exec/system.h"
19
20#include <memory>
21#include <vector>
22
23PXR_NAMESPACE_OPEN_SCOPE
24
26
28class ExecUsdRequest;
29class ExecUsdValueKey;
30class UsdTimeCode;
31
45{
46public:
47 EXECUSD_API
48 explicit ExecUsdSystem(const UsdStageConstRefPtr &stage);
49
50 // Systems are non-copyable and non-movable to simplify management of
51 // back-pointers.
52 //
53 ExecUsdSystem(const ExecUsdSystem &) = delete;
54 ExecUsdSystem& operator=(const ExecUsdSystem &) = delete;
55
56 EXECUSD_API
58
73 EXECUSD_API
75
103 EXECUSD_API
105 std::vector<ExecUsdValueKey> &&valueKeys,
106 ExecRequestComputedValueInvalidationCallback &&valueCallback =
107 ExecRequestComputedValueInvalidationCallback(),
108 ExecRequestTimeChangeInvalidationCallback &&timeCallback =
109 ExecRequestTimeChangeInvalidationCallback());
110
118 EXECUSD_API
119 void PrepareRequest(const ExecUsdRequest &request);
120
128 EXECUSD_API
130
131private:
132 // This object to subscribes to scene changes on the UsdStage and delivers
133 // those changes to the base ExecSystem.
134 class _NoticeListener;
135 std::unique_ptr<_NoticeListener> _noticeListener;
136};
137
138PXR_NAMESPACE_CLOSE_SCOPE
139
140#endif
Base implementation of a system to procedurally compute values based on scene description and computa...
Definition: system.h:44
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:45
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 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:136
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