7 #ifndef PXR_USD_VALIDATION_USD_VALIDATION_CONTEXT_H 8 #define PXR_USD_VALIDATION_USD_VALIDATION_CONTEXT_H 13 #include "pxr/base/plug/plugin.h" 16 #include "pxr/usd/usd/primRange.h" 17 #include "pxr/usdValidation/usdValidation/api.h" 18 #include "pxr/usdValidation/usdValidation/error.h" 24 PXR_NAMESPACE_OPEN_SCOPE
28 class Usd_PrimFlagsPredicate;
93 bool includeAllAncestors =
true);
110 bool includeAllAncestors =
true);
127 const UsdValidationValidatorMetadataVector &metadata,
128 bool includeAllAncestors =
true);
150 const std::vector<const UsdValidationValidator *> &validators);
159 const std::vector<const UsdValidationValidatorSuite *> &suites);
178 UsdValidationErrorVector
Validate(
const SdfLayerHandle &layer)
const;
203 const UsdStagePtr &stage,
204 const Usd_PrimFlagsPredicate &predicate,
218 const UsdStagePtr &stage,
219 const Usd_PrimFlagsPredicate &predicate)
const;
234 UsdValidationErrorVector
Validate(
const UsdStagePtr &stage)
const;
249 const UsdStagePtr &stage,
265 const UsdStagePtr &stage,
266 const Usd_PrimFlagsPredicate &predicate,
267 const std::vector<UsdTimeCode> &timeCodes)
const;
285 const UsdStagePtr &stage,
286 const std::vector<UsdTimeCode> &timeCodes)
const;
306 const std::vector<UsdPrim> &prims,
344 const std::vector<UsdPrim> &prims,
345 const std::vector<UsdTimeCode> &timeCodes)
const;
362 const std::vector<UsdTimeCode> &timeCodes)
const;
367 void _InitializeFromValidatorMetadata(
368 const UsdValidationValidatorMetadataVector &metadata,
369 bool includeAllAncestors);
375 void _DistributeValidators(
376 const std::vector<const UsdValidationValidator *> &validators);
381 enum class _TimeDependencyState {
388 void _ValidateLayer(
WorkDispatcher &dispatcher,
const SdfLayerHandle &layer,
389 UsdValidationErrorVector *errors,
390 std::mutex *errorsMutex)
const;
406 const UsdStagePtr &stage,
407 UsdValidationErrorVector *errors,
408 std::mutex *errorsMutex,
409 const Usd_PrimFlagsPredicate &predicate,
411 std::vector<UsdTimeCode>> ×)
const;
415 template <
typename T>
418 UsdValidationErrorVector *errors, std::mutex *errorsMutex,
420 _TimeDependencyState timeDependencyState =
421 _TimeDependencyState::All)
const;
431 template <
typename T>
432 void _RunValidatePrims(
433 const T &prims, UsdValidationErrorVector *errors,
434 std::mutex *errorsMutex,
436 std::vector<UsdTimeCode>> ×)
const;
439 using _SchemaTypeValidatorPair
440 = std::pair<TfToken, std::vector<const UsdValidationValidator *>>;
441 using _SchemaTypeValidatorPairVector
442 = std::vector<_SchemaTypeValidatorPair>;
448 std::vector<const UsdValidationValidator *> _layerValidators;
449 std::vector<const UsdValidationValidator *> _stageValidators;
450 std::vector<const UsdValidationValidator *> _primValidators;
460 _SchemaTypeValidatorPairVector _schemaTypeValidators;
463 PXR_NAMESPACE_CLOSE_SCOPE
465 #endif // PXR_USD_VALIDATION_USD_VALIDATION_CONTEXT_H
A class which describes the interval at which validation is to be performed.
Definitions of basic string utilities in tf.
USDVALIDATION_API UsdValidationContext(const TfTokenVector &keywords, bool includeAllAncestors=true)
Create a UsdValidationContext by collecting validators using the specified keywords.
USDVALIDATION_API UsdValidationErrorVector Validate(const SdfLayerHandle &layer) const
Run validation on the given valid layer by executing the selected validators for this UsdValidationCo...
std::vector< TfToken > TfTokenVector
Convenience types.
An forward-iterable range that traverses a subtree of prims rooted at a given prim in depth-first ord...
TfType represents a dynamic runtime type.
UsdValidationContext provides an interface for managing and running validators on USD layers,...
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...