@shapediver/sdk.sdtf-v1
Version:
Official sdTF SDK for TypeScript
91 lines • 3.94 kB
JavaScript
;
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