7 #ifndef PXR_USD_SDF_PATH_EXPRESSION_H
8 #define PXR_USD_SDF_PATH_EXPRESSION_H
82 template <
class HashState>
84 h.Append(er.path, er.name);
89 return std::tie(l.path, l.name) == std::tie(r.path, r.name);
98 auto lt = std::tie(l.path, l.name);
99 auto rt = std::tie(r.path, r.name);
128 std::string
const &parseContext = {});
190 MakeAtom(PathPattern &&
pattern);
194 MakeAtom(PathPattern
const &
pattern) {
195 return MakeAtom(PathPattern(pattern));
201 return MakeAtom(PathPattern(path));
207 return MakeAtom(PathPattern(path));
254 void WalkWithOpStack(
255 TfFunctionRef<
void (std::vector<std::pair<Op, int>>
const &)> logic,
262 ReplacePrefix(
SdfPath const &oldPrefix,
263 SdfPath const &newPrefix)
const & {
271 ReplacePrefix(
SdfPath const &oldPrefix,
278 bool IsAbsolute()
const;
283 MakeAbsolute(
SdfPath const &anchor)
const & {
291 MakeAbsolute(
SdfPath const &anchor) &&;
295 bool ContainsExpressionReferences()
const {
296 return !_refs.empty();
303 bool ContainsWeakerExpressionReference()
const;
349 bool IsComplete()
const {
350 return !ContainsExpressionReferences() && IsAbsolute();
356 std::string GetText()
const;
360 bool IsEmpty()
const {
365 explicit operator bool()
const {
371 std::string
const &GetParseError()
const & {
376 template <
class HashState>
378 h.Append(expr._ops, expr._refs, expr._patterns, expr._parseError);
382 friend std::ostream &
387 return std::tie(l._ops, l._refs, l._patterns, l._parseError) ==
388 std::tie(r._ops, r._refs, r._patterns, r._parseError);
397 auto lt = std::tie(l._ops, l._refs, l._patterns, l._parseError);
398 auto rt = std::tie(r._ops, r._refs, r._patterns, r._parseError);
402 std::vector<Op> _ops;
403 std::vector<ExpressionReference> _refs;
404 std::vector<PathPattern> _patterns;
408 std::string _parseError;
417 #endif // PXR_USD_SDF_PATH_EXPRESSION_H
void TfHashAppend(HashState &h, const T &ptr)
#define PXR_NAMESPACE_OPEN_SCOPE
GLsizei const GLchar *const * path
void swap(T &lhs, T &rhs)
VT_VALUE_TYPE_CAN_COMPOSE(SdfPathExpression)
std::ostream & operator<<(std::ostream &ostr, const DataType &a)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
GLuint const GLchar * name
GLfloat GLfloat GLfloat GLfloat h
#define PXR_NAMESPACE_CLOSE_SCOPE
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate and *a name There is also one special expression _ which means *the weaker expression when composing expressions together See * ComposeOver() and ResolveReferences() for more information.**These building blocks may be joined as mentioned above
bool operator!=(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
VT_VALUE_TYPE_CAN_TRANSFORM(SdfPathExpression)