24 #ifndef PXR_USD_USD_PRIM_FLAGS_H
25 #define PXR_USD_USD_PRIM_FLAGS_H
124 return !(*
this == other);
230 template <
class PrimPtr>
231 bool _Eval(
const PrimPtr &prim,
bool isInstanceProxy)
const {
239 return ((primFlags &
_mask) == (
_values & _mask)) ^ _negate;
244 template <
class PrimPtr>
247 bool isInstanceProxy) {
248 return pred._Eval(prim, isInstanceProxy);
254 template <
class PrimPtr>
257 const SdfPath &proxyPrimPath) {
267 lhs._negate == rhs._negate;
273 return !(lhs == rhs);
373 return (tmp && lhs) && rhs;
494 extern unspecified UsdPrimIsActive;
496 extern unspecified UsdPrimIsLoaded;
498 extern unspecified UsdPrimIsModel;
500 extern unspecified UsdPrimIsGroup;
502 extern unspecified UsdPrimIsAbstract;
504 extern unspecified UsdPrimIsDefined;
506 extern unspecified UsdPrimIsInstance;
508 extern unspecified UsdPrimHasDefiningSpecifier;
594 #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()
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()
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
GU_API ComputeHierarchyResult traverse(const GU_Detail *gdp, GA_OffsetArray &roots, GA_OffsetArray &nodes, GA_OffsetArray &parents, UT_Map< GA_Offset, GA_OffsetArray > *children=nullptr)
std::bitset< Usd_PrimNumFlags > Usd_PrimFlagBits
Usd_PrimFlagsDisjunction operator||(Usd_Term lhs, Usd_Term rhs)
Usd_PrimFlagsPredicate(Usd_Term term)
friend class Usd_PrimFlagsConjunction