awv3
Version:
⚡ AWV3 embedded CAD
95 lines (70 loc) • 3.84 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _three = require('three');
var THREE = _interopRequireWildcard(_three);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Workplane = function (_THREE$Object3D) {
(0, _inherits3.default)(Workplane, _THREE$Object3D);
function Workplane() {
(0, _classCallCheck3.default)(this, Workplane);
var _this = (0, _possibleConstructorReturn3.default)(this, (Workplane.__proto__ || (0, _getPrototypeOf2.default)(Workplane)).call(this));
var geometry = new THREE.PlaneBufferGeometry(1, 1);
var material = new THREE.MeshBasicMaterial({
color: 0x808080,
side: THREE.DoubleSide,
transparent: true,
opacity: 0.1
});
var plane = new THREE.Mesh(geometry, material);
plane.type = 'Workplane';
plane.userData.meta = {};
plane.renderOrder = 1000;
var lineMaterial = new THREE.LineBasicMaterial({ color: 0x373737, transparent: true, opacity: 0.3 });
var lineGeometry = new THREE.Geometry();
lineGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0));
lineGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0));
lineGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0));
lineGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0));
lineGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0));
var outlines = new THREE.Line(lineGeometry, lineMaterial);
outlines.renderOrder = 1000;
_this.add(plane);
_this.add(outlines);
//this.measurable = true;
return _this;
}
(0, _createClass3.default)(Workplane, [{
key: 'updateFromState',
value: function updateFromState(state) {
this.children[0].userData.meta.id = state.id;
this.quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, 1), new THREE.Vector3().fromArray(state.members.Normal.value));
this.position.fromArray(state.members.curPosition.value).applyQuaternion(this.quaternion);
var bounds = state.members.Size.value;
this.scale.setScalar(bounds);
var csys = state.coordinateSystem.map(function (row) {
return new THREE.Vector3().fromArray(row);
});
this.matrix.makeBasis(csys[1], csys[2], csys[3]).setPosition(csys[0]);
this.matrix.multiply(new THREE.Matrix4().compose(this.position, this.quaternion, this.scale));
this.matrix.decompose(this.position, this.quaternion, this.scale);
this.matrixWorldNeedsUpdate = true;
this.updateMatrixWorld();
}
}]);
return Workplane;
}(THREE.Object3D);
exports.default = Workplane;