HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
dependency.h File Reference
#include "pxr/pxr.h"
#include "pxr/usd/pcp/api.h"
#include "pxr/usd/pcp/mapFunction.h"
#include "pxr/usd/sdf/path.h"
#include <vector>
+ Include dependency graph for dependency.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PcpDependency
 Description of a dependency. More...
 

Typedefs

typedef unsigned int PcpDependencyFlags
 A typedef for a bitmask of flags from PcpDependencyType. More...
 
typedef std::vector
< PcpDependency
PcpDependencyVector
 

Enumerations

enum  PcpDependencyType {
  PcpDependencyTypeNone = 0, PcpDependencyTypeRoot = (1 << 0), PcpDependencyTypePurelyDirect = (1 << 1), PcpDependencyTypePartlyDirect = (1 << 2),
  PcpDependencyTypeAncestral = (1 << 3), PcpDependencyTypeVirtual = (1 << 4), PcpDependencyTypeNonVirtual = (1 << 5), PcpDependencyTypeDirect,
  PcpDependencyTypeAnyNonVirtual, PcpDependencyTypeAnyIncludingVirtual
}
 

Functions

PCP_API bool PcpNodeIntroducesDependency (const PcpNodeRef &n)
 
PCP_API PcpDependencyFlags PcpClassifyNodeDependency (const PcpNodeRef &n)
 
PCP_API std::string PcpDependencyFlagsToString (const PcpDependencyFlags flags)
 

Typedef Documentation

typedef unsigned int PcpDependencyFlags

A typedef for a bitmask of flags from PcpDependencyType.

Definition at line 104 of file dependency.h.

typedef std::vector<PcpDependency> PcpDependencyVector

Definition at line 127 of file dependency.h.

Enumeration Type Documentation

A classification of PcpPrimIndex->PcpSite dependencies by composition structure.

Enumerator
PcpDependencyTypeNone 

No type of dependency.

PcpDependencyTypeRoot 

The root dependency of a cache on its root site. This may be useful to either include, as when invalidating caches in response to scene edits, or to exclude, as when scanning dependency arcs to compensate for a namespace edit.

PcpDependencyTypePurelyDirect 

Purely direct dependencies involve only arcs introduced directly at this level of namespace.

PcpDependencyTypePartlyDirect 

Partly direct dependencies involve at least one arc introduced directly at this level of namespace; they may also involve ancestral arcs along the chain as well.

PcpDependencyTypeAncestral 

Ancestral dependencies involve only arcs from ancestral levels of namespace, and no direct arcs.

PcpDependencyTypeVirtual 

Virtual dependencies do not contribute scene description, yet represent sites whose scene description (or ancestral scene description) informed the structure of the cache.

One case of this is when a reference or payload arc does not specify a prim, and the target layerStack does not provide defaultPrim metadata either. In that case a virtual dependency to the root of that layer stack will represent the latent dependency on that site's metadata.

Another case of this is "spooky ancestral" dependencies from relocates. These are referred to as "spooky" dependencies because they can be seen as a form of action-at-a-distance. They only occur as a result of relocation arcs.

PcpDependencyTypeNonVirtual 
PcpDependencyTypeDirect 

Combined mask value representing both pure and partly direct deps.

PcpDependencyTypeAnyNonVirtual 

Combined mask value representing any kind of dependency, except virtual ones.

PcpDependencyTypeAnyIncludingVirtual 

Combined mask value representing any kind of dependency.

Definition at line 43 of file dependency.h.

Function Documentation

PCP_API PcpDependencyFlags PcpClassifyNodeDependency ( const PcpNodeRef n)

Classify the dependency represented by a node, by analyzing its structural role in its PcpPrimIndex. Returns a bitmask of flags from PcpDependencyType.

PCP_API std::string PcpDependencyFlagsToString ( const PcpDependencyFlags  flags)
PCP_API bool PcpNodeIntroducesDependency ( const PcpNodeRef n)

Returns true if this node introduces a dependency in its PcpPrimIndex, false otherwise. This is equivalent to PcpClassifyNodeDependency(n) != PcpDependencyTypeNone, but is faster.