7#ifndef PXR_USD_USD_ATTRIBUTE_H
8#define PXR_USD_USD_ATTRIBUTE_H
11#include "pxr/usd/usd/api.h"
13#include "pxr/usd/usd/property.h"
16#include "pxr/usd/sdf/abstractData.h"
17#include "pxr/usd/sdf/path.h"
20#include "pxr/base/vt/value.h"
27PXR_NAMESPACE_OPEN_SCOPE
34typedef std::vector<UsdAttribute> UsdAttributeVector;
273 std::vector<double>* times)
const;
295 std::vector<double> *times);
318 const std::vector<UsdAttribute> &attrs,
320 std::vector<double> *times);
363 bool* hasTimeSamples)
const;
467 template <
typename T>
469 static_assert(!std::is_const<T>::value,
"");
470 static_assert(SdfValueTypeTraits<T>::IsValueType,
"");
471 return _Get(value, time);
510 template <
typename T>
512 static_assert(!std::is_pointer<T>::value,
"");
513 static_assert(SdfValueTypeTraits<T>::IsValueType ||
514 std::is_same<T, SdfValueBlock>::value ||
515 std::is_same<T, SdfAnimationBlock>::value,
"");
516 return _Set(value, time);
880 friend class Usd_PrimData;
881 friend struct UsdPrim_AttrConnectionFinder;
886 :
UsdProperty(UsdTypeAttribute, prim, proxyPrimPath, attrName) {}
889 const Usd_PrimDataHandle &prim,
892 :
UsdProperty(objType, prim, proxyPrimPath, propName) {}
894 SdfAttributeSpecHandle
901 SdfAttributeSpecHandle _CreateSpec()
const;
906 template <
typename T>
909 template <
typename T>
913 _GetPathForAuthoring(
const SdfPath &path, std::string* whyNot)
const;
916PXR_NAMESPACE_CLOSE_SCOPE
A basic mathematical interval class.
A path value used to locate objects in layers or scenegraphs.
Represents a value type name, i.e.
Token for efficient comparison, assignment, and hashing of known strings.
A mathematical description of a curved function from time to value.
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
USD_API bool GetTimeSamples(std::vector< double > *times) const
Populates a vector with authored sample times.
USD_API TfToken GetRoleName() const
Return the roleName for this attribute's typeName.
USD_API bool Set(const char *value, UsdTimeCode time=UsdTimeCode::Default()) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
USD_API bool GetBracketingTimeSamples(double desiredTime, double *lower, double *upper, bool *hasTimeSamples) const
Populate lower and upper with the next greater and lesser value relative to the desiredTime.
USD_API UsdResolveInfo GetResolveInfo(UsdTimeCode time) const
Perform value resolution to determine the source of the resolved value of this attribute at the reque...
USD_API bool ClearLimits() const
Clear the authored limits dictionary for the attribute, at the current edit target.
USD_API int64_t GetArraySizeConstraint() const
Return the array size constraint value for this attribute.
USD_API bool ClearDefault() const
Shorthand for ClearAtTime(UsdTimeCode::Default()).
USD_API bool Clear() const
Clears the authored default value, all time samples and spline for this attribute at the current Edit...
USD_API bool GetTimeSamplesInInterval(const GfInterval &interval, std::vector< double > *times) const
Populates a vector with authored sample times in interval.
USD_API bool SetTypeName(const SdfValueTypeName &typeName) const
Set the value for typeName at the current EditTarget, return true on success, false if the value can ...
USD_API bool HasSpline() const
Returns true if this attribute has a spline as the strongest value source.
USD_API bool HasAuthoredValueOpinion() const
USD_API bool SetVariability(SdfVariability variability) const
Set the value for variability at the current EditTarget, return true on success, false if the value c...
USD_API bool Set(const VtValue &value, UsdTimeCode time=UsdTimeCode::Default()) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
USD_API UsdResolveInfo GetResolveInfo() const
Perform value resolution to determine the source of the resolved value of this attribute at any non-d...
static USD_API bool GetUnionedTimeSamples(const std::vector< UsdAttribute > &attrs, std::vector< double > *times)
Populates the given vector, times with the union of all the authored sample times on all of the given...
USD_API TfToken GetColorSpace() const
Gets the color space in which the attribute is authored if it has been explicitly set.
static USD_API bool GetUnionedTimeSamplesInInterval(const std::vector< UsdAttribute > &attrs, const GfInterval &interval, std::vector< double > *times)
Populates the given vector, times with the union of all the authored sample times in the GfInterval,...
USD_API bool ClearArraySizeConstraint() const
Clear the authored array size constraint value for this attribute at the current edit target.
USD_API bool RemoveConnection(const SdfPath &source) const
Removes target from the list of targets.
USD_API bool HasAuthoredArraySizeConstraint() const
Return whether an array size constraint value is authored on this attribute.
USD_API bool SetConnections(const SdfPathVector &sources) const
Make the authoring layer's opinion of the connection list explicit, and set exactly to sources.
USD_API bool ClearConnections() const
Remove all opinions about the connections list from the current edit target.
USD_API TsSpline GetSpline() const
Returns a copy of the resolved spline if the spline is the strongest value source.
USD_API SdfVariability GetVariability() const
An attribute's variability expresses whether it is intended to have time-samples or splines (SdfVaria...
USD_API bool HasValue() const
Return true if this attribute has an authored default value, authored time samples or a fallback valu...
USD_API bool AddConnection(const SdfPath &source, UsdListPosition position=UsdListPositionBackOfPrependList) const
Adds source to the list of connections, in the position specified by position.
bool Set(const T &value, UsdTimeCode time=UsdTimeCode::Default()) const
Set the value of this attribute in the current UsdEditTarget to value at UsdTimeCode time,...
USD_API SdfValueTypeName GetTypeName() const
Return the "scene description" value type name for this attribute.
USD_API bool HasAuthoredConnections() const
Return true if this attribute has any authored opinions regarding connections.
USD_API bool SetLimits(const VtDictionary &limits) const
Set the limits dictionary for the attribute to limits, at the current edit target.
USD_API bool ClearColorSpace() const
Clears authored color space value on the attribute.
USD_API void Block() const
Remove all time samples or spline on an attribute and author a block default value.
USD_API bool ClearAtTime(UsdTimeCode time) const
Clear the authored value for this attribute at the given time, at the current EditTarget and return t...
bool Get(T *value, UsdTimeCode time=UsdTimeCode::Default()) const
Perform value resolution to fetch the value of this attribute at the requested UsdTimeCode time,...
USD_API UsdAttributeLimits GetHardLimits() const
Return a UsdAttributeLimits object configured to edit the attribute's hard limits sub-dictionary.
USD_API bool Get(VtValue *value, UsdTimeCode time=UsdTimeCode::Default()) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
USD_API bool SetSpline(const TsSpline &spline)
Set the spline using the current edit target.
USD_API bool SetArraySizeConstraint(int64_t constraint) const
Set the array size constraint value for this attribute.
USD_API bool HasColorSpace() const
Returns whether color space is authored on the attribute.
USD_API bool HasFallbackValue() const
Return true if this attribute has a fallback value provided by a registered schema.
USD_API bool GetConnections(SdfPathVector *sources) const
Compose this attribute's connections and fill sources with the result.
USD_API void SetColorSpace(const TfToken &colorSpace) const
Sets the color space of the attribute to colorSpace.
USD_API UsdAttributeLimits GetLimits(const TfToken &key) const
Return a UsdAttributeLimits object configured to edit the attribute's limits sub-dictionary given by ...
USD_API size_t GetNumTimeSamples() const
Returns the number of time samples that have been authored.
USD_API bool ValueMightBeTimeVarying() const
Return true if it is possible, but not certain, that this attribute's value changes over time,...
USD_API VtDictionary GetLimits() const
Return the composed limits dictionary for the attribute.
USD_API void BlockAnimation() const
Remove any timeSamples or spline on an attribute and authors an AnimationBlock default value.
USD_API bool HasAuthoredValue() const
Return true if this attribute has either an authored default value or authored time samples.
USD_API bool HasAuthoredLimits() const
Return whether a limits dictionary is authored for the attribute.
USD_API UsdAttributeLimits GetSoftLimits() const
Return a UsdAttributeLimits object configured to edit the attribute's soft limits sub-dictionary.
UsdAttribute()
Construct an invalid attribute.
Provides API for retrieving and authoring values within a particular sub-dictionary of the limits dic...
Object for efficiently making repeated queries for attribute values.
Base class for Usd scenegraph objects, providing common API.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Base class for UsdAttribute and UsdRelationship scenegraph objects.
Container for information about the source of an attribute's value, i.e.
The base class for all schema types in Usd.
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
static constexpr UsdTimeCode Default()
Produce a UsdTimeCode representing the sentinel value for 'default'.
A map with string keys and VtValue values.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
UsdListPosition
Specifies a position to add items to lists.
@ UsdListPositionBackOfPrependList
The position at the back of the prepend list.
SdfVariability
An enum that identifies variability types for attributes.
UsdObjType
Enum values to represent the various Usd object types.