Technical Overview¶
OmniUsdResolver¶
This is the main entry point into the resolver. It derives from (and implements) ArResolver. It is exposed through “plugInfo.json”.
The resolver mostly delegates actual resolution to the Omniverse Client Library.
OmniUsdWrapperFileFormat¶
This is used to implement the “wrapper” file format which allows for reading/writing normal USD layers to/from Omniverse.
See also Wrapper File Format
OmniUsdLiveFileFormat¶
This is used to implement “live” layers, but the vast majority of the code actually lives in OmniUsdLiveData
See also Live Layers Overview
OmniUsdLiveRegistry¶
This stores a list of all currently active OmniUsdLiveData objects. This is used during omniClientLiveProcess to iterate over every object to call SendDeltas. It is also used during a layer reload which hapened because a remote client called layer->Clear(). We trigger a layer->Reload() in that case to generate the appropriate notices, but we need OmniUsdLiveFileFormat to re-use the same undelying OmniUsdLiveData.
OmniUsdLiveData¶
This class contains the vast majority of the live layer code. It is responsible for:
Storing the actual layer data in-memory (using OmniUsdLiveTree).
Communication with Nucleus (through Client Library Live Functions).
Building and sending deltas.
Reading and applying deltas.
Generating notices.
See also Live Layer Data
OmniUsdLiveTree¶
This class stores the actual layer data, including both nodes and field values.
OmniUsdValueHelper¶
This class is responsible for packing and unpacking VtValues.
See also Value Format
ChildrenHelper¶
This class is used to help generate a reorder command from a children list, and also for building a children list from a reorder command.
See also Children Order