7 #ifndef PXR_USD_SDF_PATH_EXPRESSION_H
8 #define PXR_USD_SDF_PATH_EXPRESSION_H
80 template <
class HashState>
82 h.Append(er.path, er.name);
87 return std::tie(l.path, l.name) == std::tie(r.path, r.name);
96 auto lt = std::tie(l.path, l.name);
97 auto rt = std::tie(r.path, r.name);
126 std::string
const &parseContext = {});
188 MakeAtom(PathPattern &&
pattern);
192 MakeAtom(PathPattern
const &
pattern) {
193 return MakeAtom(PathPattern(pattern));
199 return MakeAtom(PathPattern(path));
205 return MakeAtom(PathPattern(path));
252 void WalkWithOpStack(
253 TfFunctionRef<
void (std::vector<std::pair<Op, int>>
const &)> logic,
260 ReplacePrefix(
SdfPath const &oldPrefix,
261 SdfPath const &newPrefix)
const & {
269 ReplacePrefix(
SdfPath const &oldPrefix,
276 bool IsAbsolute()
const;
281 MakeAbsolute(
SdfPath const &anchor)
const & {
289 MakeAbsolute(
SdfPath const &anchor) &&;
293 bool ContainsExpressionReferences()
const {
294 return !_refs.empty();
301 bool ContainsWeakerExpressionReference()
const;
348 bool IsComplete()
const {
349 return !ContainsExpressionReferences() && IsAbsolute();
355 std::string GetText()
const;
359 bool IsEmpty()
const {
364 explicit operator bool()
const {
370 std::string
const &GetParseError()
const & {
375 template <
class HashState>
377 h.Append(expr._ops, expr._refs, expr._patterns, expr._parseError);
381 friend std::ostream &
386 return std::tie(l._ops, l._refs, l._patterns, l._parseError) ==
387 std::tie(r._ops, r._refs, r._patterns, r._parseError);
396 auto lt = std::tie(l._ops, l._refs, l._patterns, l._parseError);
397 auto rt = std::tie(r._ops, r._refs, r._patterns, r._parseError);
401 std::vector<Op> _ops;
402 std::vector<ExpressionReference> _refs;
403 std::vector<PathPattern> _patterns;
407 std::string _parseError;
413 #endif // PXR_USD_SDF_PATH_EXPRESSION_H
void TfHashAppend(HashState &h, const T &ptr)
GLsizei const GLchar *const * path
void swap(T &lhs, T &rhs)
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
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#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)