7 #ifndef PXR_USD_USD_PRIM_FLAGS_H
8 #define PXR_USD_USD_PRIM_FLAGS_H
107 return !(*
this == other);
213 template <
class PrimPtr>
214 bool _Eval(
const PrimPtr &prim,
bool isInstanceProxy)
const {
222 return ((primFlags &
_mask) == (
_values & _mask)) ^ _negate;
227 template <
class PrimPtr>
230 bool isInstanceProxy) {
231 return pred._Eval(prim, isInstanceProxy);
237 template <
class PrimPtr>
240 const SdfPath &proxyPrimPath) {
250 lhs._negate == rhs._negate;
256 return !(lhs == rhs);
356 return (tmp && lhs) && rhs;
577 #endif // PXR_USD_USD_PRIM_FLAGS_H
bool operator!=(Usd_Term other) const
Usd_Term(Usd_PrimFlags flag, bool negated)
Usd_PrimFlagsDisjunction & operator|=(Usd_Term term)
Add an additional term to this disjunction.
bool _IsContradiction() const
void _MakeContradiction()
friend Usd_PrimFlagsConjunction operator&&(Usd_Term lhs, Usd_Term rhs)
Combine two terms to make a conjunction.
bool _IsTautology() const
Usd_PrimFlagsConjunction operator&&(Usd_Term lhs, Usd_Term rhs)
Usd_PrimFlagsConjunction(Usd_Term term)
Construct with a term.
friend size_t hash_value(const Usd_PrimFlagsPredicate &p)
Usd_PrimFlagsPredicate & _Negate()
Usd_PrimFlagsConjunction()
Default constructed conjunction is a tautology.
Usd_PrimFlagsPredicate _GetNegated() const
Usd_PrimFlagsPredicate & TraverseInstanceProxies(bool traverse)
friend class Usd_PrimFlagsDisjunction
Usd_PrimFlagsPredicate(Usd_PrimFlags flag)
static Usd_PrimFlagsPredicate Tautology()
constexpr auto set(type rhs) -> int
bool Usd_IsInstanceProxy(const PrimDataPtr &p, const SdfPath &proxyPrimPath)
bool IncludeInstanceProxiesInTraversal() const
friend bool Usd_EvalPredicate(const Usd_PrimFlagsPredicate &pred, const PrimPtr &prim, const SdfPath &proxyPrimPath)
Usd_PrimFlagsPredicate UsdTraverseInstanceProxies(Usd_PrimFlagsPredicate predicate)
friend bool Usd_EvalPredicate(const Usd_PrimFlagsPredicate &pred, const PrimPtr &prim, bool isInstanceProxy)
friend Usd_PrimFlagsDisjunction operator||(Usd_Term lhs, Usd_Term rhs)
Combine two terms to make a disjunction.
Usd_PrimFlagsDisjunction()
void traverse(T &func, const char *path, bool sort_contents=false, bool directories_first=true)
Usd_Term operator!(Usd_PrimFlags flag)
static Usd_PrimFlagsPredicate Contradiction()
static size_t Combine(Args &&...args)
Produce a hash code by combining the hash codes of several objects.
USD_API const Usd_PrimFlagsConjunction UsdPrimDefaultPredicate
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Usd_Term(Usd_PrimFlags flag)
USD_API const Usd_PrimFlagsPredicate UsdPrimAllPrimsPredicate
Usd_PrimFlagsDisjunction(Usd_Term term)
friend bool operator==(const Usd_PrimFlagsPredicate &lhs, const Usd_PrimFlagsPredicate &rhs)
#define PXR_NAMESPACE_CLOSE_SCOPE
friend bool operator!=(const Usd_PrimFlagsPredicate &lhs, const Usd_PrimFlagsPredicate &rhs)
Usd_Term operator!() const
Usd_PrimFlagsConjunction & operator&=(Usd_Term term)
Add an additional term to this conjunction.
bool operator==(Usd_Term other) const
USD_API bool operator()(const class UsdPrim &prim) const
std::bitset< Usd_PrimNumFlags > Usd_PrimFlagBits
Usd_PrimFlagsDisjunction operator||(Usd_Term lhs, Usd_Term rhs)
Usd_PrimFlagsPredicate(Usd_Term term)
friend class Usd_PrimFlagsConjunction