UNPKG

@wcardinal/wcardinal-geditor

Version:

WebGL-based graphic editor, tester and viewer for supervisory systems

88 lines 3.34 kB
import { createGroupUploaded, EShapeCapabilities, EShapeDeserializers, EShapeOnDeserializeds, EShapeRuntimes, EShapeUploadeds } from "@wcardinal/wcardinal-ui"; var toIconName = function (index) { return "extension_icon_".concat(index); }; var EShapeExtensions = /** @class */ (function () { function EShapeExtensions() { } EShapeExtensions.add = function (extension) { var _a, _b; if ("type" in extension) { var type = extension.type; // Name ((_a = this._typeToExtension) !== null && _a !== void 0 ? _a : (this._typeToExtension = new Map())).set(type, extension); // Deserializer var deserializer = extension.deserializer; if (deserializer != null) { EShapeDeserializers[type] = deserializer; } // OnDeserialized var onDeserialized = extension.onDeserialized; if (onDeserialized != null) { EShapeOnDeserializeds[type] = onDeserialized; } // Runtime var runtime = extension.runtime; if (runtime) { EShapeRuntimes[type] = runtime; } // Capability var capability = extension.capability; if (capability != null) { EShapeCapabilities.set(type, capability); } // Uploaded var uploaded = extension.uploaded; if (uploaded != null) { EShapeUploadeds[type] = uploaded; } else { if (EShapeUploadeds[type] == null) { EShapeUploadeds[type] = createGroupUploaded; } } } ((_b = this._extensions) !== null && _b !== void 0 ? _b : (this._extensions = [])).push(extension); }; EShapeExtensions.get = function (type) { var typeToExtension = this._typeToExtension; if (typeToExtension != null) { return typeToExtension.get(type); } }; EShapeExtensions.each = function (iteratee) { var extensions = this._extensions; if (extensions != null) { for (var i = 0, imax = extensions.length; i < imax; ++i) { var extension = extensions[i]; iteratee(extension); } } }; EShapeExtensions.merge = function (iconBuilder) { var extensions = this._extensions; if (extensions != null) { for (var i = 0, imax = extensions.length; i < imax; ++i) { var extension = extensions[i]; if ("icon" in extension) { var icon = extension.icon; iconBuilder.add(toIconName(i), icon.width, icon.height, icon.svg); } } } }; EShapeExtensions.build = function (icons) { var extensions = this._extensions; if (extensions != null) { for (var i = 0, imax = extensions.length; i < imax; ++i) { var extension = extensions[i]; if ("icon" in extension) { extension.icon.texture = icons[toIconName(i)]; } } } }; return EShapeExtensions; }()); export { EShapeExtensions }; //# sourceMappingURL=e-shape-extensions.js.map