File loaders are built over the top of the basic parsing framework defined in the {@link org.j3d.loaders} package and subpackages.
The behaviour of the loader is is dependent on whether or not a fileformat and particular file contain layers. Most formats do not contain any concept of composited scenes, but a few do. Aviatrix3D also has the capability to render composited scenes, so we allow model loaders to expose this capability as well.
When the user requests that layers are loaded, and some are found in the requested file, then no root model is defined and {@link AV3DModel#getModelRoot()} will return null. All content is accessed through the {@link AV3DModel#getLayers()} method. Layers are returned in the order of front-most to rear-most. Layers that are defined, but contain no content will still have valid layer object instances. With all layers, unless the file format contains a specific size, the {@link org.j3d.aviatrix3d.Viewport} will have zero size. It is up to the calling application to ensure that viewports are correctly sized before adding them to the scene.
When no layer loading is requested, or the loaded file does not contain any layers, then the {@link AV3DModel#getLayers()} method will return an empty list and {@link AV3DModel#getModelRoot()} will return a valid object representing the root of the loaded model.