UNPKG

@shapediver/sdk.sdtf-v1

Version:
91 lines 3.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SdtfWriteableComponentFactory = void 0; const sdk_sdtf_core_1 = require("@shapediver/sdk.sdtf-core"); const SdtfWriteableAccessor_1 = require("./components/SdtfWriteableAccessor"); const SdtfWriteableAsset_1 = require("./components/SdtfWriteableAsset"); const SdtfWriteableAttributes_1 = require("./components/SdtfWriteableAttributes"); const SdtfWriteableBuffer_1 = require("./components/SdtfWriteableBuffer"); const SdtfWriteableBufferView_1 = require("./components/SdtfWriteableBufferView"); const SdtfWriteableChunk_1 = require("./components/SdtfWriteableChunk"); const SdtfWriteableDataItem_1 = require("./components/SdtfWriteableDataItem"); const SdtfWriteableFileInfo_1 = require("./components/SdtfWriteableFileInfo"); const SdtfWriteableNode_1 = require("./components/SdtfWriteableNode"); const SdtfWriteableTypeHint_1 = require("./components/SdtfWriteableTypeHint"); class SdtfWriteableComponentFactory { constructor() { this.ASSET_VERSION = '1.0'; this.ASSET_GENERATOR = 'ShapeDiverSdtfWriter'; } createAccessor(content) { const accessor = new SdtfWriteableAccessor_1.SdtfWriteableAccessor(); if (content) accessor.bufferView = this.createBufferView(content); return accessor; } createAsset() { const fileInfo = new SdtfWriteableFileInfo_1.SdtfWriteableFileInfo(this.ASSET_VERSION); fileInfo.generator = this.ASSET_GENERATOR; return new SdtfWriteableAsset_1.SdtfWriteableAsset(fileInfo); } createAttribute(content, typeHint) { const attribute = new SdtfWriteableAttributes_1.SdtfWriteableAttribute(); if (content) { if (this.isBufferContent(content)) attribute.accessor = this.createAccessor(content); else attribute.value = content; } if (typeHint !== undefined) attribute.typeHint = this.createTypeHint(typeHint); return attribute; } createAttributes(content) { const attributes = new SdtfWriteableAttributes_1.SdtfWriteableAttributes(); Object.entries(content !== null && content !== void 0 ? content : {}).forEach(([name, attr]) => (attributes.entries[name] = this.createAttribute(...attr))); return attributes; } createBuffer(data) { const buffer = new SdtfWriteableBuffer_1.SdtfWriteableBuffer(); buffer.data = data; return buffer; } createBufferView(content) { const bufferView = new SdtfWriteableBufferView_1.SdtfWriteableBufferView(); if (content) { bufferView.buffer = this.createBuffer(content.data); bufferView.contentType = content.contentType; } return bufferView; } createChunk(name) { const chunk = new SdtfWriteableChunk_1.SdtfWriteableChunk(); chunk.name = name; return chunk; } createDataItem(content, typeHint) { const dataItem = new SdtfWriteableDataItem_1.SdtfWriteableDataItem(); if (content) { if (this.isBufferContent(content)) dataItem.accessor = this.createAccessor(content); else dataItem.value = content; } if (typeHint !== undefined) dataItem.typeHint = this.createTypeHint(typeHint); return dataItem; } createNode() { return new SdtfWriteableNode_1.SdtfWriteableNode(); } createTypeHint(name) { const typeHint = new SdtfWriteableTypeHint_1.SdtfWriteableTypeHint(); typeHint.name = name; return typeHint; } isBufferContent(content) { return !!((0, sdk_sdtf_core_1.isDataObject)(content) && content.data && content.contentType); } } exports.SdtfWriteableComponentFactory = SdtfWriteableComponentFactory; //# sourceMappingURL=SdtfWriteableComponentFactory.js.map