awv3
Version:
⚡ AWV3 embedded CAD
21 lines (18 loc) • 814 B
JavaScript
import * as THREE from 'three';
import BaseGraphics from './base';
export default class Radial extends BaseGraphics {
constructor(...args) {
super(...args, 2, 0, 1);
}
updateFromState(state, ...args) {
const [center, dim] = ['center', 'dimPt'].map(x => new THREE.Vector3().fromArray(state.members[x].value));
const radius = state.members.radius.value;
const end = dim.clone().sub(center).setLength(radius).add(center);
const outside = (dim.distanceTo(center) > end.distanceTo(center));
const dir = end.clone().sub(center).normalize();
this.updateLine(0, center, end);
this.updateLine(1, center, dim);
this.updateArrow(0, end, dir.clone().multiplyScalar(outside ? -1 : 1));
super.updateFromState(state, ...args);
}
}