24#ifndef PXR_USD_USD_ATTRIBUTE_QUERY_H
25#define PXR_USD_USD_ATTRIBUTE_QUERY_H
28#include "pxr/usd/usd/api.h"
29#include "pxr/usd/usd/attribute.h"
33#include "pxr/usd/usd/resolveTarget.h"
34#include "pxr/usd/usd/timeCode.h"
40PXR_NAMESPACE_OPEN_SCOPE
134 explicit operator bool()
const {
158 template <
typename T>
160 static_assert(SdfValueTypeTraits<T>::IsValueType,
161 "T must be an SdfValueType.");
162 return _Get(value, time);
184 std::vector<double>* times)
const;
200 const std::vector<UsdAttributeQuery> &attrQueries,
201 std::vector<double> *times);
216 const std::vector<UsdAttributeQuery> &attrQueries,
218 std::vector<double> *times);
234 bool* hasTimeSamples)
const;
284 template <
typename T>
291 std::unique_ptr<UsdResolveTarget> _resolveTarget;
294PXR_NAMESPACE_CLOSE_SCOPE
A basic mathematical interval class.
Token for efficient comparison, assignment, and hashing of known strings.
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Object for efficiently making repeated queries for attribute values.
USD_API UsdAttributeQuery()
Construct an invalid query object.
USD_API bool GetTimeSamples(std::vector< double > *times) const
Populates a vector with authored sample times.
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 UsdAttributeQuery(const UsdAttributeQuery &other)
Copy constructor.
USD_API UsdAttributeQuery(UsdAttributeQuery &&other)=default
Move constructor.
USD_API UsdAttributeQuery(const UsdAttribute &attr, const UsdResolveTarget &resolveTarget)
Construct a new query for the attribute attr with the given resolve target resolveTarget.
USD_API bool GetTimeSamplesInInterval(const GfInterval &interval, std::vector< double > *times) const
Populates a vector with authored sample times in interval.
static USD_API bool GetUnionedTimeSamples(const std::vector< UsdAttributeQuery > &attrQueries, 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 UsdAttributeQuery & operator=(UsdAttributeQuery &&other)=default
Move assignment.
USD_API UsdAttributeQuery(const UsdPrim &prim, const TfToken &attrName)
Construct a new query for the attribute named attrName under the prim prim.
USD_API bool HasAuthoredValueOpinion() const
USD_API const UsdAttribute & GetAttribute() const
Return the attribute associated with this query.
USD_API bool HasValue() const
Return true if the attribute associated with this query has an authored default value,...
bool Get(T *value, UsdTimeCode time=UsdTimeCode::Default()) const
Perform value resolution to fetch the value of the attribute associated with this query at the reques...
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...
static USD_API std::vector< UsdAttributeQuery > CreateQueries(const UsdPrim &prim, const TfTokenVector &attrNames)
Construct new queries for the attributes named in attrNames under the prim prim.
USD_API bool HasFallbackValue() const
Return true if the attribute associated with this query has a fallback value provided by a registered...
USD_API UsdAttributeQuery & operator=(const UsdAttributeQuery &other)
Copy assignment.
USD_API UsdAttributeQuery(const UsdAttribute &attr)
Construct a new query for the attribute attr.
bool IsValid() const
Return true if this query is valid (i.e.
static USD_API bool GetUnionedTimeSamplesInInterval(const std::vector< UsdAttributeQuery > &attrQueries, 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 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 bool HasAuthoredValue() const
Return true if this attribute has either an authored default value or authored time samples.
bool IsValid() const
Return true if this is a valid object, false otherwise.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Container for information about the source of an attribute's value, i.e.
Defines a subrange of nodes and layers within a prim's prim index to consider when performing value r...
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'.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.