-
Notifications
You must be signed in to change notification settings - Fork 202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unauthored attrs changes #2414
Merged
Merged
Unauthored attrs changes #2414
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
724267c
LOOKDEVX-642 | Initial commit for unauthored attribute support.
feldstj 41df474
LOOKDEVX-642 | Some more unauthored attribute changes.
feldstj addab49
LOOKDEVX-642 | Some more unauthored attribute changes.
feldstj 8ec8d8d
LOOKDEVX-642 | Fixed build issue.
feldstj dbfd087
LOOKDEVX-642 | Some more unauthored attribute changes.
feldstj 5204830
LOOKDEVX-642 | Some unauthored attribute test related changes.
feldstj 0337f7f
LOOKDEVX-642 | Merged attribute handle classes.
feldstj e6fb201
Merge branch 'dev' into feldstj/unauthored_attrs
feldstj cb23500
LOOKDEVX-642 | Unauthored attribute changes.
feldstj 42a95ea
LOOKDEVX-642 | Some minor cleanup.
feldstj ff2994e
LOOKDEVX-642 | Some more code cleanup.
feldstj b787491
LOOKDEVX-642 | Axed the AttrHandle class and moved the relevent members
feldstj b5d0a3f
LOOKDEVX-642 | Applied code review feedback.
feldstj 452125f
LOOKDEVX-642 | Merge branch 'dev' into unauthored_attrs_changes
feldstj ace6d19
LOOKDEVX-642 | Applied code review feedback and fixed some tests.
feldstj d6754e9
LOOKDEVX-642 | Applied code review feedback.
feldstj 99f545f
LOOKDEVX-642 | Applied code review feedback.
feldstj f21a718
Merge branch 'dev' into unauthored_attrs_changes
feldstj d8c3833
LOOKDEVX-642 | Attempt to fix preflight.
feldstj 2207c28
LOOKDEVX-642 | Second attempt at fixing preflight.
feldstj 89d6159
LOOKDEVX-642 | Third attempt at fixing preflight.
feldstj 0ad7dd2
LOOKDEVX-642 | Forth attempt at fixing preflight.
feldstj 3c42920
LOOKDEVX-642 | Applied code review feedback.
feldstj 1297807
Fix macOS build
hodoulp ae7a0f3
LOOKDEVX-642 | Clang-format fix.
feldstj 5bb12a8
LOOKDEVX-642 | Fifth attempt at fixing preflight.
feldstj ba0000c
LOOKDEVX-642 | Minor cleanup.
feldstj File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,10 +17,14 @@ | |
|
||
#include <mayaUsd/ufe/UsdSceneItem.h> | ||
|
||
#include <pxr/usd/sdf/types.h> | ||
#include <pxr/usd/usd/attribute.h> | ||
#include <pxr/usd/usd/prim.h> | ||
|
||
#include <ufe/attribute.h> | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
#include <ufe/attributeDef.h> | ||
#endif | ||
|
||
// Ufe::Attribute overrides (minus the type method) | ||
#ifdef UFE_V3_FEATURES_AVAILABLE | ||
|
@@ -71,8 +75,20 @@ namespace ufe { | |
class UsdAttribute | ||
{ | ||
public: | ||
UsdAttribute(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
~UsdAttribute(); | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
UsdAttribute(const PXR_NS::UsdPrim& prim, const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
UsdAttribute(const PXR_NS::UsdAttribute& usdAttr); | ||
~UsdAttribute() = default; | ||
|
||
inline bool isAuthored() const { return isValid() && fUsdAttr.IsAuthored(); } | ||
inline bool isValid() const { return fUsdAttr.IsValid(); } | ||
std::string isEditAllowedMsg() const; | ||
inline bool isEditAllowed() const { return isEditAllowedMsg().empty(); } | ||
std::string typeName() const; | ||
std::string defaultValue() const; | ||
bool get(PXR_NS::VtValue& value, PXR_NS::UsdTimeCode time) const; | ||
bool set(const PXR_NS::VtValue& value, PXR_NS::UsdTimeCode time); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should all these new methods be protected by UFE_V4_FEATURES_AVAILABLE? |
||
|
||
// Ufe::Attribute override methods that we've mimic'd here. | ||
bool hasValue() const; | ||
|
@@ -88,7 +104,10 @@ class UsdAttribute | |
#endif | ||
|
||
protected: | ||
PXR_NS::UsdPrim fPrim; | ||
PXR_NS::UsdPrim fPrim; | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
const Ufe::AttributeDef::ConstPtr fAttrDef; | ||
#endif | ||
PXR_NS::UsdAttribute fUsdAttr; | ||
}; // UsdAttribute | ||
|
||
|
@@ -100,9 +119,24 @@ class UsdAttributeGeneric | |
public: | ||
typedef std::shared_ptr<UsdAttributeGeneric> Ptr; | ||
|
||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
UsdAttributeGeneric( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
UsdAttributeGeneric(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
|
||
//! Create a UsdAttributeGeneric. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeGeneric with a scene item, prim and attribute definition. | ||
static UsdAttributeGeneric::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeGeneric with a scene item and USD attribute | ||
static UsdAttributeGeneric::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
|
||
|
@@ -122,9 +156,24 @@ class UsdAttributeFilename | |
public: | ||
typedef std::shared_ptr<UsdAttributeFilename> Ptr; | ||
|
||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
UsdAttributeFilename( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
UsdAttributeFilename(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
|
||
//! Create a UsdAttributeFilename. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeFilename with a scene item, prim and attribute definition. | ||
static UsdAttributeFilename::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeFilename with a scene item and USD attribute | ||
static UsdAttributeFilename::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
|
||
|
@@ -146,9 +195,24 @@ class UsdAttributeEnumString | |
public: | ||
typedef std::shared_ptr<UsdAttributeEnumString> Ptr; | ||
|
||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
UsdAttributeEnumString( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
UsdAttributeEnumString(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
|
||
//! Create a UsdAttributeEnumString. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeEnumString with a scene item, prim and attribute definition. | ||
static UsdAttributeEnumString::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeEnumString with a scene item and USD attribute | ||
static UsdAttributeEnumString::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
|
||
|
@@ -169,6 +233,15 @@ class TypedUsdAttribute | |
, private UsdAttribute | ||
{ | ||
public: | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a TypedUsdAttribute with a scene item, prim and attribute definition. | ||
TypedUsdAttribute( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a TypedUsdAttribute with a scene item and USD attribute | ||
TypedUsdAttribute(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
|
||
// Ufe::Attribute overrides | ||
|
@@ -188,7 +261,15 @@ class UsdAttributeBool : public TypedUsdAttribute<bool> | |
|
||
using TypedUsdAttribute<bool>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeBool. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeBool with a scene item, prim and attribute definition. | ||
static UsdAttributeBool::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeBool with a scene item and USD attribute | ||
static UsdAttributeBool::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeBool | ||
|
@@ -201,7 +282,15 @@ class UsdAttributeInt : public TypedUsdAttribute<int> | |
|
||
using TypedUsdAttribute<int>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeInt. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeInt with a scene item, prim and attribute definition. | ||
static UsdAttributeInt::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeInt with a scene item and USD attribute | ||
static UsdAttributeInt::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeInt | ||
|
@@ -214,7 +303,15 @@ class UsdAttributeFloat : public TypedUsdAttribute<float> | |
|
||
using TypedUsdAttribute<float>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeFloat. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeFloat with a scene item, prim and attribute definition. | ||
static UsdAttributeFloat::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeFloat with a scene item and USD attribute | ||
static UsdAttributeFloat::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeFloat | ||
|
@@ -227,9 +324,18 @@ class UsdAttributeDouble : public TypedUsdAttribute<double> | |
|
||
using TypedUsdAttribute<double>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeDouble. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeDouble with a scene item, prim and attribute definition. | ||
static UsdAttributeDouble::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeDouble with a scene item and USD attribute | ||
static UsdAttributeDouble::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
|
||
}; // UsdAttributeDouble | ||
|
||
//! \brief Interface for USD string/token attributes. | ||
|
@@ -240,7 +346,15 @@ class UsdAttributeString : public TypedUsdAttribute<std::string> | |
|
||
using TypedUsdAttribute<std::string>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeString. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeString with a scene item, prim and attribute definition. | ||
static UsdAttributeString::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeString with a scene item and USD attribute | ||
static UsdAttributeString::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeString | ||
|
@@ -253,7 +367,15 @@ class UsdAttributeColorFloat3 : public TypedUsdAttribute<Ufe::Color3f> | |
|
||
using TypedUsdAttribute<Ufe::Color3f>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeColorFloat3. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeColorFloat3 with a scene item, prim and attribute definition. | ||
static UsdAttributeColorFloat3::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeColorFloat3 with a scene item and USD attribute | ||
static UsdAttributeColorFloat3::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeColorFloat3 | ||
|
@@ -267,7 +389,15 @@ class UsdAttributeColorFloat4 : public TypedUsdAttribute<Ufe::Color4f> | |
|
||
using TypedUsdAttribute<Ufe::Color4f>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeColorFloat4. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeColorFloat4 with a scene item, prim and attribute definition. | ||
static UsdAttributeColorFloat4::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeColorFloat4 with a scene item and USD attribute | ||
static UsdAttributeColorFloat4::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeColorFloat4 | ||
|
@@ -281,7 +411,15 @@ class UsdAttributeInt3 : public TypedUsdAttribute<Ufe::Vector3i> | |
|
||
using TypedUsdAttribute<Ufe::Vector3i>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeInt3. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeInt3 with a scene item, prim and attribute definition. | ||
static UsdAttributeInt3::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeInt3 with a scene item and USD attribute | ||
static UsdAttributeInt3::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeInt3 | ||
|
@@ -295,7 +433,15 @@ class UsdAttributeFloat2 : public TypedUsdAttribute<Ufe::Vector2f> | |
|
||
using TypedUsdAttribute<Ufe::Vector2f>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeFloat2. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeFloat2 with a scene item, prim and attribute definition. | ||
static UsdAttributeFloat2::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeFloat2 with a scene item and USD attribute | ||
static UsdAttributeFloat2::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeFloat2 | ||
|
@@ -309,7 +455,15 @@ class UsdAttributeFloat3 : public TypedUsdAttribute<Ufe::Vector3f> | |
|
||
using TypedUsdAttribute<Ufe::Vector3f>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeFloat3. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeFloat3 with a scene item, prim and attribute definition. | ||
static UsdAttributeFloat3::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeFloat3 with a scene item and USD attribute | ||
static UsdAttributeFloat3::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeFloat3 | ||
|
@@ -323,7 +477,15 @@ class UsdAttributeFloat4 : public TypedUsdAttribute<Ufe::Vector4f> | |
|
||
using TypedUsdAttribute<Ufe::Vector4f>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeFloat4. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeFloat4 with a scene item, prim and attribute definition. | ||
static UsdAttributeFloat4::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeFloat4 with a scene item and USD attribute | ||
static UsdAttributeFloat4::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeFloat4 | ||
|
@@ -337,7 +499,15 @@ class UsdAttributeDouble3 : public TypedUsdAttribute<Ufe::Vector3d> | |
|
||
using TypedUsdAttribute<Ufe::Vector3d>::TypedUsdAttribute; | ||
|
||
//! Create a UsdAttributeDouble3. | ||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeDouble3 with a scene item, prim and attribute definition. | ||
static UsdAttributeDouble3::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeDouble3 with a scene item and USD attribute | ||
static UsdAttributeDouble3::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; // UsdAttributeDouble3 | ||
|
@@ -351,6 +521,15 @@ class UsdAttributeMatrix3d : public TypedUsdAttribute<Ufe::Matrix3d> | |
|
||
using TypedUsdAttribute<Ufe::Matrix3d>::TypedUsdAttribute; | ||
|
||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeMatrix3d with a scene item, prim and attribute definition. | ||
static UsdAttributeMatrix3d::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeMatrix3d with a scene item and USD attribute | ||
static UsdAttributeMatrix3d::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; | ||
|
@@ -363,6 +542,15 @@ class UsdAttributeMatrix4d : public TypedUsdAttribute<Ufe::Matrix4d> | |
|
||
using TypedUsdAttribute<Ufe::Matrix4d>::TypedUsdAttribute; | ||
|
||
#ifdef UFE_V4_FEATURES_AVAILABLE | ||
//! Create a UsdAttributeMatrix4d with a scene item, prim and attribute definition. | ||
static UsdAttributeMatrix4d::Ptr create( | ||
const UsdSceneItem::Ptr& item, | ||
const PXR_NS::UsdPrim& prim, | ||
const Ufe::AttributeDef::ConstPtr& attrDef); | ||
#endif | ||
|
||
//! Create a UsdAttributeMatrix4d with a scene item and USD attribute | ||
static UsdAttributeMatrix4d::Ptr | ||
create(const UsdSceneItem::Ptr& item, const PXR_NS::UsdAttribute& usdAttr); | ||
}; | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should all the following methods be defined in
UFE_ATTRIBUTE_OVERRIDES
?