18 #ifndef __XUSD_AutoCollection_h__
19 #define __XUSD_AutoCollection_h__
59 template <
class AutoCollection>
64 : myCollectionName(cname)
70 const char *cname)
const override
72 return (myCollectionName == cname);
83 if (collectionname == myCollectionName)
84 return new AutoCollection(collectionname, orderedargs, namedargs,
85 lock, demands, nodeid, timecode);
108 virtual bool randomAccess()
const = 0;
140 {
return myMayBeTimeVaryingSubPattern; }
143 {
return myTokenParsingError; }
170 bool respect_instance_proxy_demands,
172 bool *timevaryingflag,
174 *instance_ids =
nullptr);
176 static bool parsePatternSingleResult(
const UT_StringRef &str,
181 bool respect_instance_proxy_demands,
183 bool *timevaryingflag);
185 static bool canCreateAutoCollection(
const char *token);
191 static void registerPlugins();
209 static void registerPropertyPlugins();
235 virtual bool matchPrimitive(
const UsdPrim &prim,
262 virtual bool matchPrimitive(
const UsdPrim &prim,
virtual bool matchRandomAccessPrimitive(const SdfPath &path, bool *prune_branch, UT_Array< int64 > *instance_ids=nullptr) const
bool randomAccess() const override
#define SYS_VISIBILITY_EXPORT
const UT_StringHolder & getTokenParsingError() const
HUSD_TimeCode myHusdTimeCode
#define PXR_NAMESPACE_OPEN_SCOPE
GLsizei const GLchar *const * path
virtual ~XUSD_AutoCollectionFactory()
UsdTimeCode myUsdTimeCode
bool randomAccess() const override
virtual XUSD_AutoCollection * create(const UT_StringHolder &collectionname, const UT_StringArray &orderedargs, const UT_StringMap< UT_StringHolder > &namedargs, HUSD_AutoAnyLock &lock, HUSD_PrimTraversalDemands demands, int nodeid, const HUSD_TimeCode &timecode) const =0
virtual bool getMayBeTimeVarying() const
HUSD_PrimTraversalDemands
bool myMayBeTimeVaryingSubPattern
virtual void matchPrimitives(XUSD_PathSet &matches, UT_StringMap< UT_Array< int64 >> *instance_ids) const
UT_StringArray myOrderedArgs
UT_StringHolder myTokenParsingError
XUSD_AutoCollection * create(const UT_StringHolder &collectionname, const UT_StringArray &orderedargs, const UT_StringMap< UT_StringHolder > &namedargs, HUSD_AutoAnyLock &lock, HUSD_PrimTraversalDemands demands, int nodeid, const HUSD_TimeCode &timecode) const override
UT_StringMap< UT_StringHolder > myNamedArgs
HUSD_AutoAnyLock & myLock
HUSD_PrimTraversalDemands myDemands
bool canCreateAutoCollection(const char *cname) const override
~XUSD_SimpleAutoCollectionFactory() override
#define PXR_NAMESPACE_CLOSE_SCOPE
SYS_VISIBILITY_EXPORT void newAutoCollection(void *unused)
virtual bool canCreateAutoCollection(const char *token) const =0
XUSD_AutoCollectionFactory()
XUSD_SimpleAutoCollectionFactory(const char *cname)