attribute.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_ESF_ATTRIBUTE_H
8 #define PXR_EXEC_ESF_ATTRIBUTE_H
9 
11 
12 #include "pxr/pxr.h"
13 
14 #include "pxr/exec/esf/api.h"
17 #include "pxr/exec/esf/property.h"
18 
19 #include "pxr/usd/sdf/path.h"
20 #include "pxr/usd/sdf/valueTypeName.h"
21 
22 PXR_NAMESPACE_OPEN_SCOPE
23 
24 class EsfJournal;
25 
35 class ESF_API_TYPE EsfAttributeInterface : public EsfPropertyInterface
36 {
37 public:
38  ESF_API ~EsfAttributeInterface() override;
39 
41  ESF_API SdfValueTypeName GetValueTypeName(EsfJournal *journal) const;
42 
46  ESF_API EsfAttributeQuery GetQuery() const;
47 
49  ESF_API SdfPathVector GetConnections(EsfJournal *journal) const;
50 
51 protected:
54 
55 private:
56  // These methods must be implemented by the scene adapter implementation.
57  virtual SdfValueTypeName _GetValueTypeName() const = 0;
58  virtual EsfAttributeQuery _GetQuery() const = 0;
59  virtual SdfPathVector _GetConnections() const = 0;
60 };
61 
69  : public EsfFixedSizePolymorphicHolder<EsfAttributeInterface, 48>
70 {
71 public:
73 };
74 
75 PXR_NAMESPACE_CLOSE_SCOPE
76 
77 #endif
Stores a collection of edit reasons associated with scene objects.
Definition: journal.h:37
Property abstraction for scene adapter implementations.
Definition: property.h:33
Represents a value type name, i.e.
Definition: valueTypeName.h:71
Stores polymorphic objects in a fixed-size buffer.
EsfAttributeInterface(const SdfPath &path)
This constructor may only be called by the scene adapter implementation.
Definition: attribute.h:53
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:280
Holds an implementation of EsfAttributeQueryInterface in a fixed-size buffer.
Holds an implementation of EsfAttributeInterface in a fixed-size buffer.
Definition: attribute.h:68
Attribute abstraction for scene adapter implementations.
Definition: attribute.h:35
EsfFixedSizePolymorphicHolder()=delete
The default constructor is deleted because instances must always contain a derived object.