HDK
|
#include "pxr/pxr.h"
#include "pxr/usd/usd/api.h"
#include "pxr/base/arch/hints.h"
#include "pxr/base/tf/bitUtils.h"
#include "pxr/base/tf/hash.h"
#include <bitset>
Go to the source code of this file.
Classes | |
struct | Usd_Term |
class | Usd_PrimFlagsPredicate |
class | Usd_PrimFlagsConjunction |
class | Usd_PrimFlagsDisjunction |
Typedefs | |
typedef std::bitset < Usd_PrimNumFlags > | Usd_PrimFlagBits |
Functions | |
Usd_Term | operator! (Usd_PrimFlags flag) |
Usd_PrimFlagsConjunction | operator&& (Usd_Term lhs, Usd_Term rhs) |
Usd_PrimFlagsConjunction | operator&& (const Usd_PrimFlagsConjunction &conjunction, Usd_Term rhs) |
Usd_PrimFlagsConjunction | operator&& (Usd_Term lhs, const Usd_PrimFlagsConjunction &conjunction) |
Usd_PrimFlagsConjunction | operator&& (Usd_PrimFlags lhs, Usd_PrimFlags rhs) |
Usd_PrimFlagsDisjunction | operator|| (Usd_Term lhs, Usd_Term rhs) |
Usd_PrimFlagsDisjunction | operator|| (const Usd_PrimFlagsDisjunction &disjunction, Usd_Term rhs) |
Usd_PrimFlagsDisjunction | operator|| (Usd_Term lhs, const Usd_PrimFlagsDisjunction &disjunction) |
Usd_PrimFlagsDisjunction | operator|| (Usd_PrimFlags lhs, Usd_PrimFlags rhs) |
Usd_PrimFlagsPredicate | UsdTraverseInstanceProxies (Usd_PrimFlagsPredicate predicate) |
Usd_PrimFlagsPredicate | UsdTraverseInstanceProxies () |
Variables | |
USD_API const Usd_PrimFlagsConjunction | UsdPrimDefaultPredicate |
USD_API const Usd_PrimFlagsPredicate | UsdPrimAllPrimsPredicate |
Provides terms for UsdPrim flags that can be combined to form either a conjunction (via &&) or a disjunction (via ||). The result is a predicate functor object that tests those flags on the passed prim. Currently UsdPrim::GetFilteredChildren(), UsdPrim::GetNextFilteredSibling(), UsdPrim::GetFilteredDescendants(), and UsdPrimRange() accept these predicates to filter out unwanted prims.
For example:
For performance, these predicates are implemented by a bitwise test, so arbitrary boolean expressions cannot be represented. The set of boolean expressions that can be represented are conjunctions with possibly negated terms (or disjunctions, by De Morgan's law). Here are some examples of valid expressions:
Here are some examples of invalid expressions:
The following variables provide the clauses that can be combined and negated to produce predicates:
Definition in file primFlags.h.
typedef std::bitset<Usd_PrimNumFlags> Usd_PrimFlagBits |
Definition at line 111 of file primFlags.h.
enum Usd_PrimFlags |
Definition at line 88 of file primFlags.h.
|
inline |
Definition at line 131 of file primFlags.h.
|
inline |
Definition at line 369 of file primFlags.h.
|
inline |
Definition at line 377 of file primFlags.h.
|
inline |
Definition at line 382 of file primFlags.h.
|
inline |
Definition at line 387 of file primFlags.h.
|
inline |
Definition at line 472 of file primFlags.h.
|
inline |
Definition at line 477 of file primFlags.h.
|
inline |
Definition at line 482 of file primFlags.h.
|
inline |
Definition at line 487 of file primFlags.h.
|
inline |
This function is used to allow the prim traversal functions listed under Prim predicate flags to traverse beneath instance prims and return descendants that pass the specified predicate
as instance proxy prims. For example:
Users may also call Usd_PrimFlagsPredicate::TraverseInstanceProxies to enable traversal beneath instance prims. This function is equivalent to:
However, this function may be more convenient, especially when calling a prim traversal function with a default-constructed tautology predicate.
Definition at line 577 of file primFlags.h.
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Convenience method equivalent to calling UsdTraverseInstanceProxies with the UsdPrimDefaultPredicate that is used by default for prim traversals.
Definition at line 587 of file primFlags.h.
USD_API const Usd_PrimFlagsPredicate UsdPrimAllPrimsPredicate |
USD_API const Usd_PrimFlagsConjunction UsdPrimDefaultPredicate |