7#ifndef PXR_USD_USD_ATTRIBUTE_QUERY_H
8#define PXR_USD_USD_ATTRIBUTE_QUERY_H
11#include "pxr/usd/usd/api.h"
12#include "pxr/usd/usd/attribute.h"
16#include "pxr/usd/usd/resolveTarget.h"
17#include "pxr/usd/usd/timeCode.h"
23PXR_NAMESPACE_OPEN_SCOPE
117 explicit operator bool()
const {
141 template <
typename T>
143 static_assert(SdfValueTypeTraits<T>::IsValueType,
144 "T must be an SdfValueType.");
145 return _Get(value, time);
167 std::vector<double>* times)
const;
183 const std::vector<UsdAttributeQuery> &attrQueries,
184 std::vector<double> *times);
199 const std::vector<UsdAttributeQuery> &attrQueries,
201 std::vector<double> *times);
217 bool* hasTimeSamples)
const;
267 template <
typename T>
274 std::unique_ptr<UsdResolveTarget> _resolveTarget;
277PXR_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.