UNPKG

@shapediver/sdk.sdtf-geometry

Version:
56 lines 3.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SdtfGeometryTypeWriter = void 0; const sdk_sdtf_core_1 = require("@shapediver/sdk.sdtf-core"); const SdtfGeometryTypeValidator_1 = require("./SdtfGeometryTypeValidator"); class SdtfGeometryTypeWriter { constructor(factory) { this.factory = factory; this.validator = new SdtfGeometryTypeValidator_1.SdtfGeometryTypeValidator(); } writeComponent(component) { var _a; const typeHint = (_a = component.typeHint) === null || _a === void 0 ? void 0 : _a.name; switch (typeHint) { case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_ARC: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_BOUNDING_BOX: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_BOX: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_CIRCLE: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_COMPLEX: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_CONE: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_CYLINDER: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_ELLIPSE: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_INTERVAL: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_INTERVAL2: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_LINE: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_MATRIX: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_PLANE: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_POINT: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_POINT2D: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_POINT3D: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_POINT4D: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_POLYLINE: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_RAY: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_RECTANGLE: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_SPHERE: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_TORUS: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_TRANSFORM: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_TRANSFORM_LIST: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_VECTOR: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_VECTOR2D: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_VECTOR3D: case sdk_sdtf_core_1.SdtfGeometryTypeHintName.GEOMETRY_VECTOR4D: delete component.accessor; break; default: (0, sdk_sdtf_core_1.sdAssertUnreachable)(typeHint); } if (!this.validator.validateComponent(typeHint, component.value, component.accessor)) { throw new sdk_sdtf_core_1.SdtfError(`Cannot write component of type '${typeHint}': Invalid component.`); } } postProcessComponents(components) { } } exports.SdtfGeometryTypeWriter = SdtfGeometryTypeWriter; //# sourceMappingURL=SdtfGeometryTypeWriter.js.map