This repository has been archived on 2023-03-25. You can view files and clone it, but cannot push or open issues or pull requests.
mightyscape-1.1-deprecated/extensions/fablabchemnitz/dxfdwgimporter/node_modules/dxf/lib/handlers/entity/spline.js

99 lines
1.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.process = 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 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;