mightyscape-1.2/extensions/fablabchemnitz/dxf_dwg_importer/node_modules/dxf/lib/handlers/entity/spline.js

85 lines
2.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.process = exports["default"] = exports.TYPE = void 0;
var _common = _interopRequireDefault(require("./common"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var TYPE = 'SPLINE';
exports.TYPE = TYPE;
var process = function process(tuples) {
var controlPoint;
return tuples.reduce(function (entity, tuple) {
var type = tuple[0];
var value = tuple[1];
switch (type) {
case 10:
controlPoint = {
x: value,
y: 0
};
entity.controlPoints.push(controlPoint);
break;
case 20:
controlPoint.y = value;
break;
case 30:
controlPoint.z = value;
break;
case 40:
entity.knots.push(value);
break;
case 41:
// Only create weights if needed
if (!entity.weights) entity.weights = [];
entity.weights.push(value);
break;
case 42:
entity.knotTolerance = value;
break;
case 43:
entity.controlPointTolerance = value;
break;
case 44:
entity.fitTolerance = value;
break;
case 70:
// Spline flag (bit coded):
// 1 = Closed spline
// 2 = Periodic spline
// 4 = Rational spline
// 8 = Planar
// 16 = Linear (planar bit is also set)
entity.flag = value;
entity.closed = (value & 1) === 1;
break;
case 71:
entity.degree = value;
break;
case 72:
entity.numberOfKnots = value;
break;
case 73:
entity.numberOfControlPoints = value;
break;
case 74:
entity.numberOfFitPoints = value;
break;
default:
Object.assign(entity, (0, _common["default"])(type, value));
break;
}
return entity;
}, {
type: TYPE,
controlPoints: [],
knots: []
});
};
exports.process = process;
var _default = {
TYPE: TYPE,
process: process
};
exports["default"] = _default;