24 #ifndef _GUSD_USD_XFORMCACHE_H_
25 #define _GUSD_USD_XFORMCACHE_H_
29 #include "gusd/defaultArray.h"
31 #include "gusd/USD_DataCache.h"
32 #include "gusd/USD_Utils.h"
35 #include "pxr/usd/usdGeom/xformable.h"
37 PXR_NAMESPACE_OPEN_SCOPE
52 bool GetLocalTransformation(
const UsdPrim& prim,
56 bool GetLocalToWorldTransform(
const UsdPrim& prim,
62 const UT_Array<UsdPrim>& prims,
68 const UT_Array<UsdPrim>& prims,
74 bool GetConstraintTransforms(
76 const UT_Array<UsdPrim>& prims,
83 bool GetConstraintTransforms(
84 const UT_Array<TfToken>& constraints,
85 const UT_Array<UsdPrim>& prims,
89 struct XformInfo :
public UT_CappedItem
93 FLAGS_LOCAL_MAYBE_TIMEVARYING=0x1,
94 FLAGS_WORLD_MAYBE_TIMEVARYING=0x2,
95 FLAGS_HAS_PARENT_XFORM=0x4
99 : UT_CappedItem(), query(xf), _flags(0) {}
101 virtual ~XformInfo() {}
103 virtual int64 getMemoryUsage()
const {
return sizeof(*this); }
105 void ComputeFlags(
const UsdPrim& prim,
108 SYS_FORCE_INLINE
bool LocalXformIsMaybeTimeVarying()
const
109 {
return _flags&FLAGS_LOCAL_MAYBE_TIMEVARYING; }
111 SYS_FORCE_INLINE
bool WorldXformIsMaybeTimeVarying()
const
112 {
return _flags&FLAGS_WORLD_MAYBE_TIMEVARYING; }
114 SYS_FORCE_INLINE
bool HasParentXform()
const
115 {
return _flags&FLAGS_HAS_PARENT_XFORM; }
121 typedef UT_IntrusivePtr<const XformInfo> XformInfoHandle;
125 XformInfoHandle GetXformInfo(
const UsdPrim& prim);
128 virtual void Clear()
override;
131 virtual int64 Clear(
const UT_StringSet& paths)
override;
134 bool _GetLocalTransformation(
const UsdPrim& prim,
137 const XformInfoHandle& info);
145 PXR_NAMESPACE_CLOSE_SCOPE
Token for efficient comparison, assignment, and hashing of known strings.
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Variant of UT_CappedCache that improves on item construction.