UNPKG

whs-component-glowline

Version:

Simple plugin to make glow lines

109 lines (76 loc) 3.52 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; 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 _get2 = require('babel-runtime/helpers/get'); var _get3 = _interopRequireDefault(_get2); var _class, _class2, _temp; var _three = require('three'); var THREE = _interopRequireWildcard(_three); var _whs = require('whs'); var _glowShader = require('./glowShader'); 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 GlowLine = (0, _whs.MeshComponent)(_class = (_temp = _class2 = function (_Component) { (0, _inherits3.default)(GlowLine, _Component); function GlowLine() { var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck3.default)(this, GlowLine); var _this = (0, _possibleConstructorReturn3.default)(this, (GlowLine.__proto__ || Object.getPrototypeOf(GlowLine)).call(this, params, GlowLine.defaults, GlowLine.instructions)); _this.build(_this.params); (0, _get3.default)(GlowLine.prototype.__proto__ || Object.getPrototypeOf(GlowLine.prototype), 'wrap', _this).call(_this); return _this; } (0, _createClass3.default)(GlowLine, [{ key: 'build', value: function build() { var _this2 = this; var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var geometry = new THREE.TubeGeometry(params.geometry.curve, params.geometry.curveDetail, params.geometry.radius, params.geometry.arcDetail, false); var glowGeometry = new THREE.TubeGeometry(params.geometry.curve, params.geometry.curveDetail, params.geometry.radius + params.geometry.delta, params.geometry.arcDetail, false); var tube = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial({ color: params.material.color })); var glowTube = new THREE.Mesh(glowGeometry, new THREE.ShaderMaterial((0, _glowShader.glowShader)(params))); tube.add(glowTube); return new Promise(function (resolve) { _this2.native = tube; _this2.glowNative = glowTube; resolve(); }); } }, { key: 'clone', value: function clone() { return new GlowLine(this.params).copy(this); } }]); return GlowLine; }(_whs.Component), _class2.defaults = { geometry: { curve: new THREE.LineCurve(new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 10, 0)), curveDetail: 20, arcDetail: 32, radius: 1, delta: 2 }, glow: { normalIntensity: 70, cameraIntensity: 0, margin: 0, pow: 2, color: 0xff0000 }, material: { color: 0xff0000 } }, _temp)) || _class; exports.default = GlowLine; module.exports = exports['default'];