UNPKG

awv3

Version:
95 lines (70 loc) 3.84 kB
'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;