7#ifndef PXR_EXEC_ESF_ATTRIBUTE_QUERY_H
8#define PXR_EXEC_ESF_ATTRIBUTE_QUERY_H
14#include "pxr/exec/esf/api.h"
17#include "pxr/base/ts/spline.h"
18#include "pxr/base/vt/value.h"
19#include "pxr/usd/sdf/path.h"
20#include "pxr/usd/usd/timeCode.h"
24PXR_NAMESPACE_OPEN_SCOPE
67 return _Get(value, time);
84 return _ValueMightBeTimeVarying();
96 return _IsTimeVarying(from, to);
105 virtual bool _IsValid()
const = 0;
106 virtual SdfPath _GetPath()
const = 0;
107 virtual void _Initialize() = 0;
109 virtual std::optional<TsSpline> _GetSpline()
const = 0;
110 virtual bool _ValueMightBeTimeVarying()
const = 0;
128PXR_NAMESPACE_CLOSE_SCOPE
Holds an implementation of EsfAttributeQueryInterface in a fixed-size buffer.
Attribute query abstraction for scene adapter implementations.
bool IsTimeVarying(UsdTimeCode from, UsdTimeCode to) const
Returns true if the resolved value of the attribute is different on time from and time to.
SdfPath GetPath() const
Returns the path of the attribute that is being queried.
void Initialize()
Reinitialize the query object from the attribute it was initially constructed with.
std::optional< TsSpline > GetSpline() const
Gets the authored spline if the strongest opinion is a spline.
EsfAttributeQueryInterface()=default
This constructor may only be called by the scene adapter implementation.
bool ValueMightBeTimeVarying() const
Returns true if the attribute value might be varying over time, and false if the value is definitely ...
bool IsValid() const
Returns true if the query object is valid.
bool Get(VtValue *value, UsdTimeCode time) const
Gets the resolved value of the attribute at a given time.
Enables a base class to be used with EsfFixedSizePolymorphicHolder.
Stores polymorphic objects in a fixed-size buffer.
EsfFixedSizePolymorphicHolder()=delete
The default constructor is deleted because instances must always contain a derived object.
A path value used to locate objects in layers or scenegraphs.
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Provides a container which may hold any type, and provides introspection and iteration over array typ...