Source: AxisEngine.js

var scriptFiles = 
[
    'Tools/AxMath.js',
    'Tools/AxMem.js',
    'Tools/AxUtils.js',
    'Tools/AxList.js',
    'Tools/AxLinkedList.js',
    'Tools/AxDictionary.js',
    'Tools/AxStack.js',
    'Tools/AxString.js',
    'Tools/AxStrings.js',
    
    'Tools/Platform/AxReferenceParameter.js',
    'Tools/Platform/AxAnimationElement.js',
    'Tools/Platform/AxPlatformUtils.js',
    
    'Tools/Streams/AxStream.js',
    'Tools/Streams/AxMemoryStream.js',
    'Tools/Streams/AxSubStream.js',
    
    'Engine/Base/AxResourceType.js',
    'Engine/Base/AxEntity.js',
    'Engine/Base/AxEntityDispatcher.js',
    'Engine/Base/AxResource.js',
    'Engine/Base/AxModuleDispatcher.js',
    'Engine/Base/AxClassId.js',

    'Engine/Primitive/AxVector2.js',
    'Engine/Primitive/AxVector3.js',
    'Engine/Primitive/AxVector4.js',
    'Engine/Primitive/AxMatrix.js',
    'Engine/Primitive/AxShadingOperation.js',
    'Engine/Primitive/AxColorOperation.js',
    'Engine/Primitive/AxPCMFormat.js',
    'Engine/Primitive/AxPixelFormat.js',
    'Engine/Primitive/AxRenderState.js',
    'Engine/Primitive/AxVertex.js',
    'Engine/Primitive/AxBoundingVolume.js',
    'Engine/Primitive/AxIntersectionInfo.js',

    'Engine/Properties/AxParameterType.js',
    'Engine/Properties/AxParameter.js',
    'Engine/Properties/AxProperty.js',
    
    'Engine/Utilities/AxMaths.js',
    'Engine/Utilities/AxTimer.js',

    'Engine/Utilities/Geometry/AxBoxGeometry.js',
    'Engine/Utilities/Geometry/AxConvexHullGeometry.js',
    'Engine/Utilities/Geometry/AxCopyGeometry.js',
    'Engine/Utilities/Geometry/AxHeightMapGeometry.js',
    'Engine/Utilities/Geometry/AxIcosahedronGeometry.js',
    'Engine/Utilities/Geometry/AxMergeGeometry.js',
    'Engine/Utilities/Geometry/AxPlaneGeometry.js',
    'Engine/Utilities/Geometry/AxGeosphereGeometry.js',
    'Engine/Utilities/Geometry/AxSphereGeometry.js',
    'Engine/Utilities/Geometry/AxPrismGeometry.js',
    'Engine/Utilities/Geometry/AxTorusGeometry.js',

    'Engine/Utilities/Normals/AxNormalsGenerator.js',

    'Engine/Utilities/Tangents/AxTangentsGenerator.js',

    'Engine/Utilities/TexCoords/AxTransformTexCoords.js',
    'Engine/Utilities/TexCoords/AxPlanarTexCoords.js',
    'Engine/Utilities/TexCoords/AxSphericalTexCoords.js',
    
    'Engine/Utilities/Serialization/AxHierarchyStreamReader.js',
    'Engine/Utilities/Serialization/AxHierarchyStreamWriter.js',
    'Engine/Utilities/Serialization/AxSerializationUtils.js',

    'Engine/Utilities/SmoothingGroups/AxSmoothingGroupsPrimitiveTypes.js',
    'Engine/Utilities/SmoothingGroups/AxSmoothingGroups.js',

    'Engine/Entities/Mesh/AxMesh.js',

    'Engine/Entities/Camera/AxCamera.js',

    'Engine/Entities/Transform/AxTransformOperation.js',
    'Engine/Entities/Transform/AxTransformLayer.js',
    'Engine/Entities/Transform/AxTransform.js',

    'Engine/Entities/Textures/AxTexture2D.js',

    'Engine/Entities/EntitySet/AxEntitySet.js',

    'Engine/Entities/Light/AxLight.js',

    'Engine/Entities/Material/AxMaterialShadingLayer.js',
    'Engine/Entities/Material/AxMaterial.js',

    'Engine/Entities/Mechanisms/AxMechanism.js',
    'Engine/Entities/Mechanisms/AxPropertyChangeNotifiedMechanism.js',
    'Engine/Entities/Mechanisms/AxFloatValueMechanism.js',
    'Engine/Entities/Mechanisms/AxPolynomialMechanism.js',
    'Engine/Entities/Mechanisms/AxLinearMechanism.js',
    'Engine/Entities/Mechanisms/AxSineMechanism.js',
    'Engine/Entities/Mechanisms/AxLinearInterpolationMechanism.js',
    'Engine/Entities/Mechanisms/AxKeyFrameAnimationMechanism.js',
    'Engine/Entities/Mechanisms/AxTimelineAnimationMechanism.js',
    'Engine/Entities/Mechanisms/AxTimeRateMechanism.js',

    'Engine/Entities/Mechanisms/Geometry/AxPlaneGeometryMechanism.js',
    'Engine/Entities/Mechanisms/Geometry/AxBoxGeometryMechanism.js',
    'Engine/Entities/Mechanisms/Geometry/AxConeGeometryMechanism.js',
    'Engine/Entities/Mechanisms/Geometry/AxGeosphereGeometryMechanism.js',
    'Engine/Entities/Mechanisms/Geometry/AxSphereGeometryMechanism.js',
    'Engine/Entities/Mechanisms/Geometry/AxHeightmapGeometryMechanism.js',
    'Engine/Entities/Mechanisms/Geometry/AxTorusGeometryMechanism.js',

    'Engine/Entities/Mechanisms/KeyFrameAnimation/AxKeyFrame.js',
    'Engine/Entities/Mechanisms/KeyFrameAnimation/AxKeyFrameRotationAxis.js',
    'Engine/Entities/Mechanisms/KeyFrameAnimation/AxKeyFrameRotationEuler.js',
    'Engine/Entities/Mechanisms/KeyFrameAnimation/AxKeyFrameScaling.js',
    'Engine/Entities/Mechanisms/KeyFrameAnimation/AxKeyFramesTrack.js',
    'Engine/Entities/Mechanisms/KeyFrameAnimation/AxKeyFrameTranslation.js',

    'Engine/Entities/Settings/AxSettings.js',

    'Engine/Input/AxInput.js',
    'Engine/Input/AxInputControls.js',
    'Engine/Input/AxInputModel.js',

    'Engine/Input/Models/AxFlightInputModel.js',
    'Engine/Input/Models/AxOrbitInputModel.js',
    'Engine/Input/Models/AxRotationInputModel.js',
    'Engine/Input/Models/AxWalkInputModel.js',
    'Engine/Input/Models/AxPropertyLinkInputModel.js',

    'FileSystem/AxFileInfo.js',
    'FileSystem/AxFileSystem.js',

    'FileSystem/WebFileSystem/AxWebFileSystem.js',
    'FileSystem/WebFileSystem/AxWebFileSystemDispatcher.js',

    'Graphics/AxDeviceMesh.js',
    'Graphics/AxDeviceTexture2D.js',
    'Graphics/AxDeviceShader.js',
    'Graphics/AxGraphicsDevice.js',

    'Graphics/DeviceIndependent/AxDeviceIndependentMesh.js',

    'Graphics/WebGL/DynamicShading/AxDynamicShaderBlockDefinition.js',
    'Graphics/WebGL/DynamicShading/AxDynamicShaderWriter.js',

    'Graphics/WebGL/AxWebGLMesh.js',
    'Graphics/WebGL/AxWebGLTexture2D.js',
    'Graphics/WebGL/AxWebGLShader.js',
    'Graphics/WebGL/AxWebGLGraphicsDevice.js',
    'Graphics/WebGL/AxWebGLGraphicsDeviceDispatcher.js',
    
    'Input/AxInputDevice.js',

    'Input/HtmlCanvas/AxHtmlCanvasInputDevice.js',
    'Input/HtmlCanvas/AxHtmlCanvasInputDispatcher.js',
    'Input/HtmlGamepad/AxHtmlGamepadInputDevice.js',
    'Input/HtmlGamepad/AxHtmlGamepadInputDispatcher.js',

    'Media/AxMedia.js',

    'Media/Scene/AxScene.js',
    
    'Media/Scene/Native/AxNativeSceneId.js',
    'Media/Scene/Native/AxNativeSceneWriter.js',
    'Media/Scene/Native/AxNativeSceneReader.js',
    'Media/Scene/Native/AxNativeScene.js',
    'Media/Scene/Native/AxNativeSceneDispatcher.js',
    
    'Media/Image/AxImage.js',

    'Media/Image/WebImage/AxWebImage.js',
    'Media/Image/WebImage/AxWebImageDispatcher.js',
    'Media/Image/Native/AxNativeImage.js',
    'Media/Image/Native/AxNativeImageDispatcher.js',
    
    'Engine/AxTraceParameters.js',
    'Engine/AxTraceEvents.js',
    'Engine/AxRenderEvents.js',
    'Engine/AxScreenPickEvents.js',
    'Engine/AxRayIntersectionEvents.js',
    'Engine/AxStandardEntityDispatcher.js',
    'Engine/AxSerializationParameters.js',
    'Engine/Axis.js',

    'Tools/Platform/HTMLAxisViewportElement.js'
];

/**
 * Gets fired when a script file Axis web library progresses on loading
 * @callback ScriptFilesLoadProgressCallback
 * @param {Number} Percentage of loading progress
 * @param {string} Url of the file just loaded
 */

/**
 * Gets fired when Axis is fully loaded by the AxisInitialize method
 * @callback ScriptFilesLoadedCallback
 */

/**
 * Initializes Axis web engine by loading all necessary files of the library
 * @param {!ScriptFilesLoadedCallback} onLoaded Callback which gets fired once all libraries have been loaded and axis is ready to go
 * @param {!ScriptFilesLoadProgressCallback} onProgress Callback which gets fired each time the intialization has progressed. A Number parameter gives the progression percentage
 * @returns {undefined}
 */
function AxisInitialize(onLoaded, onProgress)
{
    LoadScriptFilesSequential(0, onLoaded, onProgress);
}

/**
 * Loads Axis' script files sequentially, starting from the given index
 * For internal use
 * @param {type} fileIndex The index of the script file to start loading from
 * @param {!ScriptFilesLoadedCallback} onLoaded Callback, which gets called when the final file has been loaded
 * @param {!ScriptFilesLoadProgressCallback} onProgress Callback which gets called when a file has been loaded
 */
function LoadScriptFilesSequential(fileIndex, onLoaded, onProgress)
{
    LoadScriptFile(scriptFiles[fileIndex], function(scriptFileUrl)
    {
        fileIndex++;

        if ((typeof onProgress !== 'undefined') && (onProgress !== null))
            onProgress(fileIndex / scriptFiles.length, scriptFileUrl);
        
        if (fileIndex < scriptFiles.length)
            LoadScriptFilesSequential(fileIndex, onLoaded, onProgress);
        else if ((typeof onLoaded !== 'undefined') && (onLoaded !== null))
            onLoaded();
    });
}

/**
 * Gets fired when LoadScriptFile finishes loading a script file
 * @callback ScriptFileLoadedCallback
 * @param {string} The url of the loaded file
 */

/**
 * Loads a javascript file
 * @param {string} scriptFileUrl Url of a script file to be loaded. The url can be of a local or http file
 * @param {ScriptFileLoadedCallback} onLoaded Callback which gets fired after the script file has been loaded
 */
function LoadScriptFile(scriptFileUrl, onLoaded)
{
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = scriptFileUrl;
    // TODO: Supposedly, this should work on IE, wile "onload" should work on others. Test
    ////script.onreadystatechange = function () 
    //{
    //    if (this.readyState == 'complete') // || (this.readyState == 'loaded') but careful not to trigger it twice
    //        onLoaded;
    //}
    script.onload = function()
    {
        if (onLoaded !== null)
            onLoaded(scriptFileUrl);
    };

    var head = document.getElementsByTagName('head')[0];
    head.appendChild(script);
}

AxisInitialize();

Documentation generated by JSDoc 3.5.3 on Mon Feb 19 2018 20:39:26 GMT+0200 (FLE Standard Time)