UNPKG

mdx-m3-viewer

Version:

A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.

54 lines 2.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const data_1 = require("./data"); const utils_1 = require("./utils"); const testers_1 = require("./testers"); /** * Run a sanity test on the model and return the results. */ function sanityTest(model) { const data = new data_1.default(model); // Run the tests. (0, testers_1.testHeader)(data); (0, testers_1.testSequences)(data); (0, utils_1.testObjects)(data, model.globalSequences, testers_1.testGlobalSequence); (0, testers_1.testTextures)(data); (0, utils_1.testObjects)(data, model.materials, testers_1.testMaterial); (0, utils_1.testObjects)(data, model.textureAnimations); (0, utils_1.testObjects)(data, model.geosets, testers_1.testGeoset); (0, utils_1.testObjects)(data, model.geosetAnimations, testers_1.testGeosetAnimation); (0, utils_1.testObjects)(data, model.bones, testers_1.testBone); (0, utils_1.testObjects)(data, model.lights, testers_1.testLight); (0, utils_1.testObjects)(data, model.helpers); (0, testers_1.testAttachments)(data); (0, testers_1.testPivotPoints)(data); (0, utils_1.testObjects)(data, model.particleEmitters, testers_1.testParticleEmitter); (0, utils_1.testObjects)(data, model.particleEmitters2, testers_1.testParticleEmitter2); if (model.version > 800) { (0, utils_1.testObjects)(data, model.particleEmittersPopcorn, testers_1.testParticleEmitterPopcorn); } (0, utils_1.testObjects)(data, model.ribbonEmitters, testers_1.testRibbonEmitter); (0, utils_1.testObjects)(data, model.eventObjects, testers_1.testEventObject); (0, utils_1.testObjects)(data, model.cameras, testers_1.testCamera); (0, utils_1.testObjects)(data, model.collisionShapes); if (model.version > 800) { (0, utils_1.testObjects)(data, model.faceEffects, testers_1.testFaceEffect); (0, testers_1.testBindPose)(data); } const root = data.stack[0]; // Remove nodes that passed the test. (0, utils_1.cleanNode)(root); const { nodes, errors, severe, warnings } = root; let { unused } = root; // Add top-level objects that are not used. for (const node of nodes) { if (node.type === 'node') { if (node.uses === 0) { unused += 1; } } } return { type: 'node', nodes, errors, severe, warnings, unused }; } exports.default = sanityTest; //# sourceMappingURL=sanitytest.js.map