awv3
Version:
⚡ AWV3 embedded CAD
68 lines (58 loc) • 2.34 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import { getClass } from './geomutils';
import { Graphics } from './graphics';
function changeGeomObjectContainerType(container) {
for (var _len = arguments.length, geomTypes = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
geomTypes[_key - 1] = arguments[_key];
}
if (container.geomType === geomTypes[0]) return;
container.geomType = geomTypes[0];
while (container.children.length > 0) {
container.remove(container.children[container.children.length - 1]);
}
for (var _i = 0; _i < geomTypes.length; _i++) {
var geomType = geomTypes[_i];
container.add(Graphics(geomType));
}
} // update object and its start, end and center point objects
export function updateGeomObjectContainer(container, geomParams) {
switch (getClass(geomParams)) {
case 'CC_Point':
changeGeomObjectContainerType(container, 'CC_Point');
container.children[0].updateFromGeomParams(geomParams);
break;
case 'CC_Line':
changeGeomObjectContainerType(container, 'CC_Line', 'CC_Point', 'CC_Point');
container.children[0].updateFromGeomParams(geomParams);
container.children[1].updateFromGeomParams(_extends({}, geomParams, {
start: geomParams.start
}));
container.children[2].updateFromGeomParams(_extends({}, geomParams, {
start: geomParams.end
}));
break;
case 'CC_Arc':
changeGeomObjectContainerType(container, 'CC_Arc', 'CC_Point', 'CC_Point', 'CC_Point');
container.children[0].updateFromGeomParams(geomParams);
container.children[1].updateFromGeomParams(_extends({}, geomParams, {
start: geomParams.start
}));
container.children[2].updateFromGeomParams(_extends({}, geomParams, {
start: geomParams.end
}));
container.children[3].updateFromGeomParams(_extends({}, geomParams, {
start: geomParams.center
}));
break;
case 'CC_Circle':
changeGeomObjectContainerType(container, 'CC_Circle', 'CC_Point');
container.children[0].updateFromGeomParams(geomParams);
container.children[1].updateFromGeomParams(_extends({}, geomParams, {
start: geomParams.center
}));
break;
default:
changeGeomObjectContainerType(container);
break;
}
}