redhotmagma-visualization 1.28.0-beta.2 → 1.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -11
- package/babel.config.js +41 -0
- package/package.json +72 -6
- package/public/libs/draco/README.md +32 -0
- package/public/libs/draco/draco_decoder.js +52 -0
- package/public/libs/draco/draco_decoder.wasm +0 -0
- package/public/libs/draco/draco_encoder.js +33 -0
- package/public/libs/draco/draco_wasm_wrapper.js +104 -0
- package/public/libs/draco/gltf/draco_decoder.js +48 -0
- package/public/libs/draco/gltf/draco_decoder.wasm +0 -0
- package/public/libs/draco/gltf/draco_encoder.js +33 -0
- package/public/libs/draco/gltf/draco_wasm_wrapper.js +104 -0
- package/scripts/cpPath.js +151 -0
- package/scripts/cpPublic.js +39 -0
- package/scripts/moveLibToPackageRoot.js +44 -0
- package/scripts/utils/fileSystem.js +69 -0
- package/scripts/utils/process.js +19 -0
- package/src/CommonUtils/Observable.js +0 -1
- package/src/CommonUtils/pointerEvent.js +1 -2
- package/src/DevApp.js +1 -2
- package/src/FallbackVisualization.js +5 -1
- package/src/PrintingEffects/DomingEffect.js +0 -1
- package/src/PrintingEffects/EmbroideryEffect.js +2 -3
- package/src/React/ReactBase.js +1 -1
- package/src/Three/Controls/OrbitControls.js +0 -2
- package/src/Three/Loaders/ColladaLoader.js +294 -111
- package/src/Three/Loaders/MTLLoader.js +0 -2
- package/src/Three/Loaders/OBJLoader.js +0 -2
- package/src/Three/Three2D.js +6 -7
- package/src/Three/Three3D.js +1 -9
- package/src/Three/ThreeBase.js +1 -10
- package/src/Utils/DesignArea/getDesignAreaCanvasSize.js +0 -1
- package/src/Utils/TextureBuilder/createTextureBuilder.js +0 -2
- package/src/Utils/imagePreloader.js +0 -1
- package/src/Utils/initTextureCanvas.js +0 -3
- package/src/Utils/isMobileDevice.js +0 -2
- package/src/Utils/optimizeTextureImage.js +0 -1
- package/src/VisualizationContainer.js +1 -3
- package/src/VisualizationInterface.js +1 -10
- package/tsconfig.json +22 -0
- package/AlignTargetProvider.js +0 -129
- package/CommonUtils/Deferred.js +0 -135
- package/CommonUtils/Observable.js +0 -126
- package/CommonUtils/PropertyObserver.js +0 -61
- package/CommonUtils/SyncCurrentFunction.js +0 -59
- package/CommonUtils/SyncObservableEvent.js +0 -19
- package/CommonUtils/pointerEvent.js +0 -415
- package/Constants.js +0 -23
- package/DevApp.js +0 -1049
- package/ExposedModules.js +0 -26
- package/FallbackVisualization.js +0 -26
- package/PrintingEffects/ColorEmbossingEffect.js +0 -58
- package/PrintingEffects/DomingEffect.js +0 -150
- package/PrintingEffects/EmbossingEffect.js +0 -65
- package/PrintingEffects/EmbroideryEffect.js +0 -541
- package/PrintingEffects/EngravingEffect.js +0 -65
- package/PrintingEffects/PrintingEffects.js +0 -117
- package/PrintingEffects/PrintingEffectsUtils.js +0 -53
- package/PrintingEffects/resources/embroidery_multiply.jpg +0 -0
- package/PrintingEffects/resources/embroidery_screen.jpg +0 -0
- package/React/ReactBase.js +0 -111
- package/Three/Controls/OrbitControls.js +0 -745
- package/Three/Exporters/glTFExporter.js +0 -48
- package/Three/Loaders/ColladaLoader.js +0 -2916
- package/Three/Loaders/MTLLoader.js +0 -449
- package/Three/Loaders/OBJLoader.js +0 -548
- package/Three/Three2D.js +0 -1778
- package/Three/Three2DLayers.js +0 -504
- package/Three/Three3D.js +0 -1412
- package/Three/Three3DScene.js +0 -1432
- package/Three/ThreeBase.js +0 -722
- package/Utils/DesignArea/getDesignAreaCanvasSize.js +0 -32
- package/Utils/TextureBuilder/createTextureBuilder.js +0 -334
- package/Utils/TextureBuilder/textureBuilderFunctions.js +0 -87
- package/Utils/alignToElement.js +0 -58
- package/Utils/createAlphaMapFromAlphaChannel.js +0 -50
- package/Utils/createCache.js +0 -46
- package/Utils/createCanvas.js +0 -29
- package/Utils/createImageRepository.js +0 -124
- package/Utils/disposeMaterial.js +0 -41
- package/Utils/getImageSize.js +0 -15
- package/Utils/imagePreloader.js +0 -76
- package/Utils/initTextureCanvas.js +0 -49
- package/Utils/isMobileDevice.js +0 -19
- package/Utils/optimizeTextureImage.js +0 -73
- package/Utils/rememberCameraViewOffset.js +0 -21
- package/Utils/removeObject.js +0 -22
- package/Utils/restrictCameraMovement.js +0 -45
- package/Utils/setOrthographicCameraSize.js +0 -16
- package/Utils/updateFitSizeToElement.js +0 -39
- package/VisualizationContainer.js +0 -279
- package/VisualizationInterface.js +0 -293
- package/VisualizationProvider.js +0 -38
- package/__mocks__/exportedSample.svg +0 -45
- package/index.js +0 -16
- package/visualizationAdapterCreator.js +0 -76
package/Three/Three2D.js
DELETED
|
@@ -1,1778 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.Three2D = exports.allowZooming = void 0;
|
|
7
|
-
|
|
8
|
-
var _three = require("three");
|
|
9
|
-
|
|
10
|
-
var _tween = _interopRequireDefault(require("@tweenjs/tween.js"));
|
|
11
|
-
|
|
12
|
-
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
13
|
-
|
|
14
|
-
var _first = _interopRequireDefault(require("lodash/first"));
|
|
15
|
-
|
|
16
|
-
var _find = _interopRequireDefault(require("lodash/find"));
|
|
17
|
-
|
|
18
|
-
var _size = _interopRequireDefault(require("lodash/size"));
|
|
19
|
-
|
|
20
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
21
|
-
|
|
22
|
-
var _ThreeBase2 = require("./ThreeBase");
|
|
23
|
-
|
|
24
|
-
var _createCanvas = require("../Utils/createCanvas");
|
|
25
|
-
|
|
26
|
-
var _Deferred = require("../CommonUtils/Deferred");
|
|
27
|
-
|
|
28
|
-
var _PropertyObserver = require("../CommonUtils/PropertyObserver");
|
|
29
|
-
|
|
30
|
-
var _SyncCurrentFunction = require("../CommonUtils/SyncCurrentFunction");
|
|
31
|
-
|
|
32
|
-
var _pointerEvent = require("../CommonUtils/pointerEvent");
|
|
33
|
-
|
|
34
|
-
var _Constants = require("../Constants");
|
|
35
|
-
|
|
36
|
-
var _createTextureBuilder = require("../Utils/TextureBuilder/createTextureBuilder");
|
|
37
|
-
|
|
38
|
-
var _getDesignAreaCanvasSize = require("../Utils/DesignArea/getDesignAreaCanvasSize");
|
|
39
|
-
|
|
40
|
-
var _disposeMaterial = require("../Utils/disposeMaterial");
|
|
41
|
-
|
|
42
|
-
var _createImageRepository = require("../Utils/createImageRepository");
|
|
43
|
-
|
|
44
|
-
var _createCache = require("../Utils/createCache");
|
|
45
|
-
|
|
46
|
-
var _getImageSize = require("../Utils/getImageSize");
|
|
47
|
-
|
|
48
|
-
var _removeObject = require("../Utils/removeObject");
|
|
49
|
-
|
|
50
|
-
var _setOrthographicCameraSize = require("../Utils/setOrthographicCameraSize");
|
|
51
|
-
|
|
52
|
-
var _optimizeTextureImage = require("../Utils/optimizeTextureImage");
|
|
53
|
-
|
|
54
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
55
|
-
|
|
56
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
57
|
-
|
|
58
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
59
|
-
|
|
60
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
61
|
-
|
|
62
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
63
|
-
|
|
64
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
65
|
-
|
|
66
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
67
|
-
|
|
68
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
69
|
-
|
|
70
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
71
|
-
|
|
72
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
73
|
-
|
|
74
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
75
|
-
|
|
76
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
77
|
-
|
|
78
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
79
|
-
|
|
80
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
81
|
-
|
|
82
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
83
|
-
|
|
84
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
85
|
-
|
|
86
|
-
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
|
|
87
|
-
|
|
88
|
-
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
|
89
|
-
|
|
90
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
91
|
-
|
|
92
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
93
|
-
|
|
94
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
95
|
-
|
|
96
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
97
|
-
|
|
98
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
99
|
-
|
|
100
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
101
|
-
|
|
102
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
103
|
-
|
|
104
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
105
|
-
|
|
106
|
-
var DESIGN_AREA_PIXEL_RATIO = 2;
|
|
107
|
-
var MIN_TEXTURE_SIZE = 2048;
|
|
108
|
-
var MAX_TEXTURE_SIZE = 2048;
|
|
109
|
-
var cameraZ = 100000;
|
|
110
|
-
var planeZ = -100000;
|
|
111
|
-
var cameraFar = cameraZ - planeZ + 1000;
|
|
112
|
-
|
|
113
|
-
var allowZooming = function allowZooming(zoom, originalZoom, minZoom, maxZoom) {
|
|
114
|
-
return originalZoom > zoom && zoom >= minZoom || originalZoom < zoom && zoom <= maxZoom;
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
exports.allowZooming = allowZooming;
|
|
118
|
-
|
|
119
|
-
var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
120
|
-
_inherits(Three2D, _ThreeBase);
|
|
121
|
-
|
|
122
|
-
var _super = _createSuper(Three2D);
|
|
123
|
-
|
|
124
|
-
function Three2D() {
|
|
125
|
-
var _this;
|
|
126
|
-
|
|
127
|
-
var cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
128
|
-
|
|
129
|
-
_classCallCheck(this, Three2D);
|
|
130
|
-
|
|
131
|
-
_this = _super.call(this, cfg);
|
|
132
|
-
|
|
133
|
-
_defineProperty(_assertThisInitialized(_this), "_materialMap", new Map());
|
|
134
|
-
|
|
135
|
-
_defineProperty(_assertThisInitialized(_this), "_designAreaList", []);
|
|
136
|
-
|
|
137
|
-
_defineProperty(_assertThisInitialized(_this), "_currentDesignView", null);
|
|
138
|
-
|
|
139
|
-
_defineProperty(_assertThisInitialized(_this), "_currentDesignArea", null);
|
|
140
|
-
|
|
141
|
-
_defineProperty(_assertThisInitialized(_this), "_viewPath", "");
|
|
142
|
-
|
|
143
|
-
_defineProperty(_assertThisInitialized(_this), "_model", null);
|
|
144
|
-
|
|
145
|
-
_defineProperty(_assertThisInitialized(_this), "_containerGroup", null);
|
|
146
|
-
|
|
147
|
-
_defineProperty(_assertThisInitialized(_this), "_size", {
|
|
148
|
-
width: 0,
|
|
149
|
-
height: 0
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
_defineProperty(_assertThisInitialized(_this), "_fitSize", null);
|
|
153
|
-
|
|
154
|
-
_defineProperty(_assertThisInitialized(_this), "_minZoom", 0.5);
|
|
155
|
-
|
|
156
|
-
_defineProperty(_assertThisInitialized(_this), "_maxZoom", 2);
|
|
157
|
-
|
|
158
|
-
_defineProperty(_assertThisInitialized(_this), "_pointerMoveEventListener", null);
|
|
159
|
-
|
|
160
|
-
_defineProperty(_assertThisInitialized(_this), "_mouseWheelEventListener", null);
|
|
161
|
-
|
|
162
|
-
_defineProperty(_assertThisInitialized(_this), "_redraw", null);
|
|
163
|
-
|
|
164
|
-
_defineProperty(_assertThisInitialized(_this), "_modelBasePath", "");
|
|
165
|
-
|
|
166
|
-
_defineProperty(_assertThisInitialized(_this), "_modelPath", null);
|
|
167
|
-
|
|
168
|
-
_defineProperty(_assertThisInitialized(_this), "_imageRepository", (0, _createImageRepository.createImageRepository)((0, _createCache.createCache)(20), function (src) {
|
|
169
|
-
return new Promise(function (resolve, reject) {
|
|
170
|
-
return new _three.ImageLoader(_this._loadingManager).load(src, resolve, undefined, reject);
|
|
171
|
-
});
|
|
172
|
-
}));
|
|
173
|
-
|
|
174
|
-
_defineProperty(_assertThisInitialized(_this), "redraw", function () {
|
|
175
|
-
return _this._redraw && _this._redraw();
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
_defineProperty(_assertThisInitialized(_this), "updateView", (0, _SyncCurrentFunction.syncCurrent)( /*#__PURE__*/function () {
|
|
179
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(designView) {
|
|
180
|
-
var options,
|
|
181
|
-
_options$forceUpdate,
|
|
182
|
-
forceUpdate,
|
|
183
|
-
_options$updateMateri,
|
|
184
|
-
updateMaterial,
|
|
185
|
-
designViewIdentifier,
|
|
186
|
-
oldModelPath,
|
|
187
|
-
modelPath,
|
|
188
|
-
modelPathChanged,
|
|
189
|
-
needsUpdate,
|
|
190
|
-
availableDesignAreas,
|
|
191
|
-
containerGroup,
|
|
192
|
-
_args = arguments;
|
|
193
|
-
|
|
194
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
195
|
-
while (1) {
|
|
196
|
-
switch (_context.prev = _context.next) {
|
|
197
|
-
case 0:
|
|
198
|
-
options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
199
|
-
_options$forceUpdate = options.forceUpdate, forceUpdate = _options$forceUpdate === void 0 ? false : _options$forceUpdate, _options$updateMateri = options.updateMaterial, updateMaterial = _options$updateMateri === void 0 ? true : _options$updateMateri;
|
|
200
|
-
designViewIdentifier = designView && designView.identifier;
|
|
201
|
-
|
|
202
|
-
if (designViewIdentifier) {
|
|
203
|
-
_context.next = 6;
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// eslint-disable-next-line no-console
|
|
208
|
-
console.log("No design view identifier! Skipping update.");
|
|
209
|
-
return _context.abrupt("return");
|
|
210
|
-
|
|
211
|
-
case 6:
|
|
212
|
-
try {
|
|
213
|
-
oldModelPath = _this.getModelPath();
|
|
214
|
-
} catch (e) {// ignore errors for the old value
|
|
215
|
-
} // if the variant has an explicit image path, use it as the model path
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
modelPath = _this.getModelPathFromDesignView(designView);
|
|
219
|
-
modelPath && _this.setModelPath(modelPath);
|
|
220
|
-
|
|
221
|
-
_this.setViewPath(designViewIdentifier);
|
|
222
|
-
|
|
223
|
-
modelPathChanged = _this.getModelPath() !== oldModelPath;
|
|
224
|
-
needsUpdate = forceUpdate || modelPathChanged || _this._currentDesignView !== designView;
|
|
225
|
-
|
|
226
|
-
if (needsUpdate) {
|
|
227
|
-
_context.next = 14;
|
|
228
|
-
break;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
return _context.abrupt("return");
|
|
232
|
-
|
|
233
|
-
case 14:
|
|
234
|
-
_this._currentDesignView = designView; // skip view update if the design view is the same
|
|
235
|
-
|
|
236
|
-
if (!(forceUpdate || modelPathChanged)) {
|
|
237
|
-
_context.next = 18;
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
_context.next = 18;
|
|
242
|
-
return _this.loadView();
|
|
243
|
-
|
|
244
|
-
case 18:
|
|
245
|
-
_this.clearScene();
|
|
246
|
-
|
|
247
|
-
availableDesignAreas = (0, _get2["default"])(designView, "designAreas") || [];
|
|
248
|
-
containerGroup = _this.createObjectsForDesignAreas(availableDesignAreas);
|
|
249
|
-
_this._containerGroup = containerGroup;
|
|
250
|
-
_this.scene && _this.scene.add(containerGroup);
|
|
251
|
-
_context.t0 = updateMaterial;
|
|
252
|
-
|
|
253
|
-
if (!_context.t0) {
|
|
254
|
-
_context.next = 27;
|
|
255
|
-
break;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
_context.next = 27;
|
|
259
|
-
return _this.dispatchMaterialUpdateEvent();
|
|
260
|
-
|
|
261
|
-
case 27:
|
|
262
|
-
case "end":
|
|
263
|
-
return _context.stop();
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}, _callee);
|
|
267
|
-
}));
|
|
268
|
-
|
|
269
|
-
return function (_x) {
|
|
270
|
-
return _ref.apply(this, arguments);
|
|
271
|
-
};
|
|
272
|
-
}()));
|
|
273
|
-
|
|
274
|
-
if (cfg.modelBasePath) {
|
|
275
|
-
_this._modelBasePath = cfg.modelBasePath;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
(0, _PropertyObserver.observeProperty)(_assertThisInitialized(_this), "_size", function (_ref2) {
|
|
279
|
-
var value = _ref2.value,
|
|
280
|
-
dispose = _ref2.dispose;
|
|
281
|
-
|
|
282
|
-
if (value.width > 0 && value.height > 0) {
|
|
283
|
-
dispose();
|
|
284
|
-
|
|
285
|
-
_this.updateZoom();
|
|
286
|
-
}
|
|
287
|
-
});
|
|
288
|
-
return _this;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
_createClass(Three2D, [{
|
|
292
|
-
key: "createRenderer",
|
|
293
|
-
value: function createRenderer() {
|
|
294
|
-
var renderer = new _three.WebGLRenderer({
|
|
295
|
-
alpha: true,
|
|
296
|
-
antialias: true,
|
|
297
|
-
stencil: false,
|
|
298
|
-
depth: true // needed only for the admin area, consider to make it configurable
|
|
299
|
-
|
|
300
|
-
});
|
|
301
|
-
renderer.setPixelRatio(window.devicePixelRatio ? window.devicePixelRatio : 1);
|
|
302
|
-
return renderer;
|
|
303
|
-
}
|
|
304
|
-
}, {
|
|
305
|
-
key: "createCameraBase",
|
|
306
|
-
value: function createCameraBase() {
|
|
307
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
308
|
-
var _options$redrawOnZoom = options.redrawOnZoomChange,
|
|
309
|
-
redrawOnZoomChange = _options$redrawOnZoom === void 0 ? false : _options$redrawOnZoom,
|
|
310
|
-
_options$redrawDeboun = options.redrawDebounceWait,
|
|
311
|
-
redrawDebounceWait = _options$redrawDeboun === void 0 ? 100 : _options$redrawDeboun;
|
|
312
|
-
var camera = new _three.OrthographicCamera();
|
|
313
|
-
camera.near = 0.01;
|
|
314
|
-
camera.far = cameraFar;
|
|
315
|
-
camera.position.set(0, 0, cameraZ);
|
|
316
|
-
redrawOnZoomChange && (0, _PropertyObserver.observeProperty)(camera, "zoom", (0, _debounce["default"])(this.redraw, redrawDebounceWait));
|
|
317
|
-
return camera;
|
|
318
|
-
}
|
|
319
|
-
}, {
|
|
320
|
-
key: "createCamera",
|
|
321
|
-
value: function createCamera() {
|
|
322
|
-
return this.createCameraBase({
|
|
323
|
-
redrawOnZoomChange: true
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
}, {
|
|
327
|
-
key: "setSize",
|
|
328
|
-
value: function setSize(_ref3) {
|
|
329
|
-
var width = _ref3.width,
|
|
330
|
-
height = _ref3.height;
|
|
331
|
-
var rerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
332
|
-
|
|
333
|
-
_get(_getPrototypeOf(Three2D.prototype), "setSize", this).call(this, {
|
|
334
|
-
width: width,
|
|
335
|
-
height: height
|
|
336
|
-
}, rerender);
|
|
337
|
-
|
|
338
|
-
if (this.camera.zoom < 1) {
|
|
339
|
-
this.updateZoom(rerender);
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
}, {
|
|
343
|
-
key: "setMinZoom",
|
|
344
|
-
value: function setMinZoom(value) {
|
|
345
|
-
this._minZoom = value;
|
|
346
|
-
}
|
|
347
|
-
}, {
|
|
348
|
-
key: "setMaxZoom",
|
|
349
|
-
value: function setMaxZoom(value) {
|
|
350
|
-
this._maxZoom = value;
|
|
351
|
-
}
|
|
352
|
-
}, {
|
|
353
|
-
key: "setFitSize",
|
|
354
|
-
value: function setFitSize(sizeObj) {
|
|
355
|
-
this._fitSize = sizeObj;
|
|
356
|
-
}
|
|
357
|
-
}, {
|
|
358
|
-
key: "setCameraPositionToCurrentDesignArea",
|
|
359
|
-
value: function setCameraPositionToCurrentDesignArea() {
|
|
360
|
-
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
361
|
-
animate: false,
|
|
362
|
-
duration: {}
|
|
363
|
-
},
|
|
364
|
-
animate = _ref4.animate,
|
|
365
|
-
duration = _ref4.duration;
|
|
366
|
-
|
|
367
|
-
var designArea = this._currentDesignArea || (0, _first["default"])(this._designAreaList);
|
|
368
|
-
var obj = designArea && this.findAreaObjectByName(designArea.identifier);
|
|
369
|
-
var zoom = this.calculateZoomForObject(obj);
|
|
370
|
-
var position = new _three.Vector3();
|
|
371
|
-
|
|
372
|
-
if (obj) {
|
|
373
|
-
obj.getWorldPosition(position);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
position.z = this.camera.position.z;
|
|
377
|
-
|
|
378
|
-
if (animate) {
|
|
379
|
-
this.moveCamera(position, zoom, duration);
|
|
380
|
-
} else {
|
|
381
|
-
this.stopAnimation("camera");
|
|
382
|
-
this.setCameraPosition(position, zoom);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
}, {
|
|
386
|
-
key: "updateCamera",
|
|
387
|
-
value: function updateCamera(width, height) {
|
|
388
|
-
(0, _setOrthographicCameraSize.setOrthographicCameraSize)(this.camera, width, height);
|
|
389
|
-
this.camera.updateProjectionMatrix();
|
|
390
|
-
}
|
|
391
|
-
}, {
|
|
392
|
-
key: "getZoomForSize",
|
|
393
|
-
value: function getZoomForSize(targetSize) {
|
|
394
|
-
var tWidth = targetSize.width,
|
|
395
|
-
tHeight = targetSize.height;
|
|
396
|
-
var _this$_size = this._size,
|
|
397
|
-
width = _this$_size.width,
|
|
398
|
-
height = _this$_size.height;
|
|
399
|
-
var scale = Math.max(1, width / tWidth, height / tHeight);
|
|
400
|
-
return 1 / scale;
|
|
401
|
-
}
|
|
402
|
-
}, {
|
|
403
|
-
key: "getDefaultZoom",
|
|
404
|
-
value: function getDefaultZoom() {
|
|
405
|
-
var _this2 = this;
|
|
406
|
-
|
|
407
|
-
return this._size ? this.getZoomForSize(this._fitSize || function () {
|
|
408
|
-
var size = new _three.Vector2();
|
|
409
|
-
|
|
410
|
-
_this2.renderer.getSize(size);
|
|
411
|
-
|
|
412
|
-
return size;
|
|
413
|
-
}()) : 1;
|
|
414
|
-
}
|
|
415
|
-
}, {
|
|
416
|
-
key: "updateZoom",
|
|
417
|
-
value: function updateZoom() {
|
|
418
|
-
var rerender = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
419
|
-
this.cleanUpCameraAnimations();
|
|
420
|
-
this.camera.zoom = this.getDefaultZoom();
|
|
421
|
-
this.setMinZoom(this.camera.zoom / 2);
|
|
422
|
-
this.camera.updateProjectionMatrix();
|
|
423
|
-
|
|
424
|
-
if (rerender && !this.isAnimating()) {
|
|
425
|
-
this.render();
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
}, {
|
|
429
|
-
key: "isObjectSmallerThanCanvas",
|
|
430
|
-
value: function isObjectSmallerThanCanvas(zoom) {
|
|
431
|
-
if (!this._size) {
|
|
432
|
-
return true;
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
var realWidth = Math.floor(this._size.width * zoom);
|
|
436
|
-
var realHeight = Math.floor(this._size.height * zoom);
|
|
437
|
-
var size = new _three.Vector2();
|
|
438
|
-
this.renderer.getSize(size);
|
|
439
|
-
var canvasWidth = size.width,
|
|
440
|
-
canvasHeight = size.height;
|
|
441
|
-
return realWidth <= canvasWidth && realHeight <= canvasHeight;
|
|
442
|
-
}
|
|
443
|
-
}, {
|
|
444
|
-
key: "getPositionBetweenBoundaries",
|
|
445
|
-
value: function getPositionBetweenBoundaries(x, y, zoom) {
|
|
446
|
-
if (this.isObjectSmallerThanCanvas(zoom)) {
|
|
447
|
-
return {
|
|
448
|
-
x: 0,
|
|
449
|
-
y: 0
|
|
450
|
-
};
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
var size = new _three.Vector2();
|
|
454
|
-
this.renderer.getSize(size);
|
|
455
|
-
|
|
456
|
-
var _ref5 = this.camera.view ? this.camera.view : {
|
|
457
|
-
width: size.x,
|
|
458
|
-
height: size.y,
|
|
459
|
-
offsetX: 0,
|
|
460
|
-
offsetY: 0
|
|
461
|
-
},
|
|
462
|
-
width = _ref5.width,
|
|
463
|
-
height = _ref5.height,
|
|
464
|
-
offsetX = _ref5.offsetX,
|
|
465
|
-
offsetY = _ref5.offsetY;
|
|
466
|
-
|
|
467
|
-
var realWidth = this._size.width * zoom;
|
|
468
|
-
var realHeight = this._size.height * zoom;
|
|
469
|
-
var widthDiff = Math.abs(width / 2 - realWidth / 2);
|
|
470
|
-
var heightDiff = Math.abs(height / 2 - realHeight / 2);
|
|
471
|
-
var minX = -widthDiff / zoom - offsetX;
|
|
472
|
-
var maxX = widthDiff / zoom + offsetX;
|
|
473
|
-
var minY = -heightDiff / zoom - offsetY;
|
|
474
|
-
var maxY = heightDiff / zoom + offsetY;
|
|
475
|
-
|
|
476
|
-
if (y < minY) {
|
|
477
|
-
y = minY;
|
|
478
|
-
} else if (y > maxY) {
|
|
479
|
-
y = maxY;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
if (x > maxX) {
|
|
483
|
-
x = maxX;
|
|
484
|
-
} else if (x < minX) {
|
|
485
|
-
x = minX;
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
return {
|
|
489
|
-
x: x,
|
|
490
|
-
y: y
|
|
491
|
-
};
|
|
492
|
-
}
|
|
493
|
-
}, {
|
|
494
|
-
key: "setPositionBetweenBoundaries",
|
|
495
|
-
value: function setPositionBetweenBoundaries(x, y, zoom) {
|
|
496
|
-
var position = this.getPositionBetweenBoundaries(x, y, zoom);
|
|
497
|
-
var positionVector = new _three.Vector3(position.x, position.y, this.camera.position.z);
|
|
498
|
-
var animate = this.isObjectSmallerThanCanvas(zoom) && this.camera.position.x !== 0 && this.camera.position.y !== 0;
|
|
499
|
-
|
|
500
|
-
if (animate) {
|
|
501
|
-
this.moveCamera(positionVector, zoom, 1000);
|
|
502
|
-
} else {
|
|
503
|
-
this.setCameraPosition(positionVector, zoom);
|
|
504
|
-
this.render();
|
|
505
|
-
}
|
|
506
|
-
} // eslint-disable-next-line no-unused-vars
|
|
507
|
-
|
|
508
|
-
}, {
|
|
509
|
-
key: "setupDefaultControls",
|
|
510
|
-
value: function setupDefaultControls(targetElement) {
|
|
511
|
-
var _this3 = this;
|
|
512
|
-
|
|
513
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
514
|
-
this.controls = {
|
|
515
|
-
enabled: true,
|
|
516
|
-
update: function update() {}
|
|
517
|
-
};
|
|
518
|
-
var element = targetElement || this.renderer.domElement;
|
|
519
|
-
this._pointerMoveEventListener = (0, _pointerEvent.createPointerMoveEventListener)(element, function (evt, change) {
|
|
520
|
-
evt.preventDefault();
|
|
521
|
-
|
|
522
|
-
if (!_this3.controls || !_this3.controls.enabled) {
|
|
523
|
-
return;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
var x = _this3.camera.position.x - change.x / _this3.camera.zoom;
|
|
527
|
-
var y = _this3.camera.position.y + change.y / _this3.camera.zoom;
|
|
528
|
-
var zoom = _this3.camera.zoom;
|
|
529
|
-
|
|
530
|
-
if (change.zoom !== null) {
|
|
531
|
-
var newZoom = zoom * change.zoom;
|
|
532
|
-
|
|
533
|
-
if (allowZooming(newZoom, _this3.camera.zoom, _this3._minZoom, _this3._maxZoom)) {
|
|
534
|
-
zoom = newZoom;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
_this3.setPositionBetweenBoundaries(x, y, zoom);
|
|
539
|
-
});
|
|
540
|
-
this._mouseWheelEventListener = (0, _pointerEvent.createMouseWheelEventListener)(element, function (evt) {
|
|
541
|
-
if (_this3._cameraMovementLocked) {
|
|
542
|
-
return;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
var eventDelta = evt.deltaY || evt.detail;
|
|
546
|
-
var zoomIn = eventDelta < 0;
|
|
547
|
-
var zoomStep = 0.1;
|
|
548
|
-
var zoom = _this3.camera.zoom + (zoomIn ? 1 : -1) * zoomStep;
|
|
549
|
-
|
|
550
|
-
if (!allowZooming(zoom, _this3.camera.zoom, _this3._minZoom, _this3._maxZoom)) {
|
|
551
|
-
return;
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
_this3.setPositionBetweenBoundaries(_this3.camera.position.x, _this3.camera.position.y, zoom);
|
|
555
|
-
});
|
|
556
|
-
}
|
|
557
|
-
}, {
|
|
558
|
-
key: "setupDefaultLightning",
|
|
559
|
-
value: function setupDefaultLightning() {// no lightning needed since only basic material is used which is not affected by the light
|
|
560
|
-
}
|
|
561
|
-
}, {
|
|
562
|
-
key: "loadModel",
|
|
563
|
-
value: function loadModel() {
|
|
564
|
-
return this.loadView(true);
|
|
565
|
-
}
|
|
566
|
-
}, {
|
|
567
|
-
key: "dispatchMaterialUpdateEvent",
|
|
568
|
-
value: function () {
|
|
569
|
-
var _dispatchMaterialUpdateEvent = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
570
|
-
var options,
|
|
571
|
-
_options$screenshot,
|
|
572
|
-
screenshot,
|
|
573
|
-
eventParams,
|
|
574
|
-
_args2 = arguments;
|
|
575
|
-
|
|
576
|
-
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
577
|
-
while (1) {
|
|
578
|
-
switch (_context2.prev = _context2.next) {
|
|
579
|
-
case 0:
|
|
580
|
-
options = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
|
|
581
|
-
_options$screenshot = options.screenshot, screenshot = _options$screenshot === void 0 ? false : _options$screenshot;
|
|
582
|
-
eventParams = {
|
|
583
|
-
variant: this._materialVariantPath,
|
|
584
|
-
screenshot: screenshot
|
|
585
|
-
}; // the redrawing of the areas can be synced if the event handler returns a Promise
|
|
586
|
-
|
|
587
|
-
_context2.next = 5;
|
|
588
|
-
return this.observable.dispatch(_Constants.EventTypes.MaterialUpdated, eventParams, true);
|
|
589
|
-
|
|
590
|
-
case 5:
|
|
591
|
-
case "end":
|
|
592
|
-
return _context2.stop();
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
}, _callee2, this);
|
|
596
|
-
}));
|
|
597
|
-
|
|
598
|
-
function dispatchMaterialUpdateEvent() {
|
|
599
|
-
return _dispatchMaterialUpdateEvent.apply(this, arguments);
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
return dispatchMaterialUpdateEvent;
|
|
603
|
-
}() // eslint-disable-next-line no-unused-vars
|
|
604
|
-
|
|
605
|
-
}, {
|
|
606
|
-
key: "updateMaterial",
|
|
607
|
-
value: function () {
|
|
608
|
-
var _updateMaterial = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
|
|
609
|
-
var targetObject,
|
|
610
|
-
_args3 = arguments;
|
|
611
|
-
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
612
|
-
while (1) {
|
|
613
|
-
switch (_context3.prev = _context3.next) {
|
|
614
|
-
case 0:
|
|
615
|
-
targetObject = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : this.scene;
|
|
616
|
-
_context3.next = 3;
|
|
617
|
-
return this.updateView(this._currentDesignView);
|
|
618
|
-
|
|
619
|
-
case 3:
|
|
620
|
-
return _context3.abrupt("return", _context3.sent);
|
|
621
|
-
|
|
622
|
-
case 4:
|
|
623
|
-
case "end":
|
|
624
|
-
return _context3.stop();
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
}, _callee3, this);
|
|
628
|
-
}));
|
|
629
|
-
|
|
630
|
-
function updateMaterial() {
|
|
631
|
-
return _updateMaterial.apply(this, arguments);
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
return updateMaterial;
|
|
635
|
-
}()
|
|
636
|
-
}, {
|
|
637
|
-
key: "_getDrawingContext",
|
|
638
|
-
value: function () {
|
|
639
|
-
var _getDrawingContext2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(drawingFn) {
|
|
640
|
-
var _this4 = this;
|
|
641
|
-
|
|
642
|
-
var updateAlpha,
|
|
643
|
-
clearTexture,
|
|
644
|
-
materialName,
|
|
645
|
-
availableDesignAreas,
|
|
646
|
-
_args5 = arguments;
|
|
647
|
-
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
648
|
-
while (1) {
|
|
649
|
-
switch (_context5.prev = _context5.next) {
|
|
650
|
-
case 0:
|
|
651
|
-
updateAlpha = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : false;
|
|
652
|
-
clearTexture = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : false;
|
|
653
|
-
materialName = _args5.length > 3 && _args5[3] !== undefined ? _args5[3] : undefined;
|
|
654
|
-
availableDesignAreas = (0, _get2["default"])(this._currentDesignView, "designAreas") || [];
|
|
655
|
-
_context5.next = 6;
|
|
656
|
-
return Promise.all(availableDesignAreas.map( /*#__PURE__*/function () {
|
|
657
|
-
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(designArea) {
|
|
658
|
-
var material, _this4$getCanvasConte, ctx, canvas, texture, getTextureBuilder, width, height;
|
|
659
|
-
|
|
660
|
-
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
661
|
-
while (1) {
|
|
662
|
-
switch (_context4.prev = _context4.next) {
|
|
663
|
-
case 0:
|
|
664
|
-
material = _this4._materialMap.get(designArea.identifier);
|
|
665
|
-
|
|
666
|
-
if (!(!material || !material.map || !material.map.image)) {
|
|
667
|
-
_context4.next = 3;
|
|
668
|
-
break;
|
|
669
|
-
}
|
|
670
|
-
|
|
671
|
-
throw new Error("Cannot get drawing context for material: ".concat(materialName, "! Is it prepared already?"));
|
|
672
|
-
|
|
673
|
-
case 3:
|
|
674
|
-
_this4$getCanvasConte = _this4.getCanvasContextForTexture(material.map), ctx = _this4$getCanvasConte.ctx, canvas = _this4$getCanvasConte.canvas, texture = _this4$getCanvasConte.texture;
|
|
675
|
-
getTextureBuilder = (0, _createTextureBuilder.createTextureBuilder)(canvas, {
|
|
676
|
-
currentZoom: _this4._screenshotCamera ? _this4._screenshotCamera.zoom : _this4.camera.zoom,
|
|
677
|
-
useTextureSize: true
|
|
678
|
-
});
|
|
679
|
-
|
|
680
|
-
if (clearTexture) {
|
|
681
|
-
width = canvas.width, height = canvas.height;
|
|
682
|
-
ctx.clearRect(0, 0, width, height);
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
_context4.next = 8;
|
|
686
|
-
return drawingFn(ctx, getTextureBuilder, [designArea]);
|
|
687
|
-
|
|
688
|
-
case 8:
|
|
689
|
-
texture.needsUpdate = true;
|
|
690
|
-
|
|
691
|
-
case 9:
|
|
692
|
-
case "end":
|
|
693
|
-
return _context4.stop();
|
|
694
|
-
}
|
|
695
|
-
}
|
|
696
|
-
}, _callee4);
|
|
697
|
-
}));
|
|
698
|
-
|
|
699
|
-
return function (_x3) {
|
|
700
|
-
return _ref6.apply(this, arguments);
|
|
701
|
-
};
|
|
702
|
-
}()));
|
|
703
|
-
|
|
704
|
-
case 6:
|
|
705
|
-
if (!this.isAnimating()) {
|
|
706
|
-
this.render();
|
|
707
|
-
}
|
|
708
|
-
|
|
709
|
-
case 7:
|
|
710
|
-
case "end":
|
|
711
|
-
return _context5.stop();
|
|
712
|
-
}
|
|
713
|
-
}
|
|
714
|
-
}, _callee5, this);
|
|
715
|
-
}));
|
|
716
|
-
|
|
717
|
-
function _getDrawingContext(_x2) {
|
|
718
|
-
return _getDrawingContext2.apply(this, arguments);
|
|
719
|
-
}
|
|
720
|
-
|
|
721
|
-
return _getDrawingContext;
|
|
722
|
-
}()
|
|
723
|
-
}, {
|
|
724
|
-
key: "getDrawingContext",
|
|
725
|
-
value: function () {
|
|
726
|
-
var _getDrawingContext3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() {
|
|
727
|
-
var _this$_getDrawingCont,
|
|
728
|
-
_this5 = this;
|
|
729
|
-
|
|
730
|
-
var _args7 = arguments;
|
|
731
|
-
return regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
732
|
-
while (1) {
|
|
733
|
-
switch (_context7.prev = _context7.next) {
|
|
734
|
-
case 0:
|
|
735
|
-
this._redraw = (_this$_getDrawingCont = this._getDrawingContext).bind.apply(_this$_getDrawingCont, [this].concat(Array.prototype.slice.call(_args7)));
|
|
736
|
-
|
|
737
|
-
if (!this._redrawPromise) {
|
|
738
|
-
window.cancelAnimationFrame(this._redrawFrame);
|
|
739
|
-
this._redrawPromise = new Promise(function (resolve, reject) {
|
|
740
|
-
_this5._redrawFrame = window.requestAnimationFrame( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
|
|
741
|
-
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
742
|
-
while (1) {
|
|
743
|
-
switch (_context6.prev = _context6.next) {
|
|
744
|
-
case 0:
|
|
745
|
-
_context6.prev = 0;
|
|
746
|
-
_context6.next = 3;
|
|
747
|
-
return _this5.redraw();
|
|
748
|
-
|
|
749
|
-
case 3:
|
|
750
|
-
resolve();
|
|
751
|
-
_context6.next = 9;
|
|
752
|
-
break;
|
|
753
|
-
|
|
754
|
-
case 6:
|
|
755
|
-
_context6.prev = 6;
|
|
756
|
-
_context6.t0 = _context6["catch"](0);
|
|
757
|
-
reject(_context6.t0);
|
|
758
|
-
|
|
759
|
-
case 9:
|
|
760
|
-
_context6.prev = 9;
|
|
761
|
-
delete _this5._redrawPromise;
|
|
762
|
-
return _context6.finish(9);
|
|
763
|
-
|
|
764
|
-
case 12:
|
|
765
|
-
case "end":
|
|
766
|
-
return _context6.stop();
|
|
767
|
-
}
|
|
768
|
-
}
|
|
769
|
-
}, _callee6, null, [[0, 6, 9, 12]]);
|
|
770
|
-
})));
|
|
771
|
-
});
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
_context7.next = 4;
|
|
775
|
-
return this._redrawPromise;
|
|
776
|
-
|
|
777
|
-
case 4:
|
|
778
|
-
case "end":
|
|
779
|
-
return _context7.stop();
|
|
780
|
-
}
|
|
781
|
-
}
|
|
782
|
-
}, _callee7, this);
|
|
783
|
-
}));
|
|
784
|
-
|
|
785
|
-
function getDrawingContext() {
|
|
786
|
-
return _getDrawingContext3.apply(this, arguments);
|
|
787
|
-
}
|
|
788
|
-
|
|
789
|
-
return getDrawingContext;
|
|
790
|
-
}()
|
|
791
|
-
}, {
|
|
792
|
-
key: "getCanvasContextForTexture",
|
|
793
|
-
value: function getCanvasContextForTexture(texture) {
|
|
794
|
-
var canvas = texture.image;
|
|
795
|
-
|
|
796
|
-
if (canvas instanceof HTMLCanvasElement) {
|
|
797
|
-
var ctx = canvas.getContext("2d");
|
|
798
|
-
return {
|
|
799
|
-
ctx: ctx,
|
|
800
|
-
canvas: canvas,
|
|
801
|
-
texture: texture
|
|
802
|
-
};
|
|
803
|
-
}
|
|
804
|
-
|
|
805
|
-
throw new Error("Cannot get drawing context for canvas. Is it prepared already?");
|
|
806
|
-
}
|
|
807
|
-
}, {
|
|
808
|
-
key: "setViewPath",
|
|
809
|
-
value: function setViewPath(path) {
|
|
810
|
-
this._viewPath = path;
|
|
811
|
-
}
|
|
812
|
-
}, {
|
|
813
|
-
key: "getModelPath",
|
|
814
|
-
value: function getModelPath() {
|
|
815
|
-
var _this6 = this;
|
|
816
|
-
|
|
817
|
-
if (this._modelPath) {
|
|
818
|
-
return [this._modelBasePath, this._modelPath].join("/");
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
var pathChunks = ["_basePath", "_itemPath", "_viewPath", "_materialVariantPath"];
|
|
822
|
-
var parts = pathChunks.map(function (pathName) {
|
|
823
|
-
return _this6[pathName];
|
|
824
|
-
}).filter(function (p) {
|
|
825
|
-
return p;
|
|
826
|
-
});
|
|
827
|
-
var path = parts.join("/");
|
|
828
|
-
|
|
829
|
-
if (parts.length !== pathChunks.length) {
|
|
830
|
-
throw new Error("Incomplete path: ".concat(path, ", required parts: ").concat(pathChunks.join("/")));
|
|
831
|
-
}
|
|
832
|
-
|
|
833
|
-
return "".concat(path, ".jpg");
|
|
834
|
-
}
|
|
835
|
-
}, {
|
|
836
|
-
key: "setModelPath",
|
|
837
|
-
value: function setModelPath(path) {
|
|
838
|
-
this._modelPath = path.replace(/^\//, "");
|
|
839
|
-
}
|
|
840
|
-
}, {
|
|
841
|
-
key: "loadView",
|
|
842
|
-
value: function () {
|
|
843
|
-
var _loadView = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() {
|
|
844
|
-
var rerender,
|
|
845
|
-
url,
|
|
846
|
-
image,
|
|
847
|
-
tex,
|
|
848
|
-
_args8 = arguments;
|
|
849
|
-
return regeneratorRuntime.wrap(function _callee8$(_context8) {
|
|
850
|
-
while (1) {
|
|
851
|
-
switch (_context8.prev = _context8.next) {
|
|
852
|
-
case 0:
|
|
853
|
-
rerender = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : false;
|
|
854
|
-
|
|
855
|
-
if (this._itemPath && this._viewPath) {
|
|
856
|
-
_context8.next = 3;
|
|
857
|
-
break;
|
|
858
|
-
}
|
|
859
|
-
|
|
860
|
-
return _context8.abrupt("return", false);
|
|
861
|
-
|
|
862
|
-
case 3:
|
|
863
|
-
url = this.getModelPath();
|
|
864
|
-
this.onLoadStart();
|
|
865
|
-
_context8.next = 7;
|
|
866
|
-
return this._imageRepository.loadImage(url);
|
|
867
|
-
|
|
868
|
-
case 7:
|
|
869
|
-
image = _context8.sent;
|
|
870
|
-
this.onLoadFinished();
|
|
871
|
-
tex = new _three.Texture((0, _optimizeTextureImage.optimizeTextureImage)(image, MAX_TEXTURE_SIZE, MIN_TEXTURE_SIZE));
|
|
872
|
-
tex.premultiplyAlpha = true;
|
|
873
|
-
tex.originalSize = (0, _getImageSize.getImageSize)(image);
|
|
874
|
-
tex.needsUpdate = true;
|
|
875
|
-
this.initModelWithTexture(tex);
|
|
876
|
-
|
|
877
|
-
if (rerender) {
|
|
878
|
-
this.render();
|
|
879
|
-
}
|
|
880
|
-
|
|
881
|
-
case 15:
|
|
882
|
-
case "end":
|
|
883
|
-
return _context8.stop();
|
|
884
|
-
}
|
|
885
|
-
}
|
|
886
|
-
}, _callee8, this);
|
|
887
|
-
}));
|
|
888
|
-
|
|
889
|
-
function loadView() {
|
|
890
|
-
return _loadView.apply(this, arguments);
|
|
891
|
-
}
|
|
892
|
-
|
|
893
|
-
return loadView;
|
|
894
|
-
}()
|
|
895
|
-
}, {
|
|
896
|
-
key: "initModelWithTexture",
|
|
897
|
-
value: function initModelWithTexture(tex) {
|
|
898
|
-
var _tex$originalSize = tex.originalSize,
|
|
899
|
-
width = _tex$originalSize.width,
|
|
900
|
-
height = _tex$originalSize.height;
|
|
901
|
-
var planeMaterial = new _three.MeshBasicMaterial({
|
|
902
|
-
map: tex
|
|
903
|
-
});
|
|
904
|
-
var planeGeometry = new _three.PlaneGeometry(width, height, 1, 1);
|
|
905
|
-
var plane = new _three.Mesh(planeGeometry, planeMaterial);
|
|
906
|
-
plane.position.z = planeZ; // remove the current model first
|
|
907
|
-
|
|
908
|
-
this.scene.remove(this._model);
|
|
909
|
-
this.scene.add(plane);
|
|
910
|
-
this._model = plane;
|
|
911
|
-
this._size = {
|
|
912
|
-
width: width,
|
|
913
|
-
height: height
|
|
914
|
-
};
|
|
915
|
-
}
|
|
916
|
-
}, {
|
|
917
|
-
key: "getOffset",
|
|
918
|
-
value: function getOffset() {
|
|
919
|
-
var _this$_size2 = this._size,
|
|
920
|
-
width = _this$_size2.width,
|
|
921
|
-
height = _this$_size2.height;
|
|
922
|
-
return {
|
|
923
|
-
x: -width / 2,
|
|
924
|
-
y: height / 2
|
|
925
|
-
};
|
|
926
|
-
}
|
|
927
|
-
}, {
|
|
928
|
-
key: "createCanvasMaterial",
|
|
929
|
-
value: function createCanvasMaterial(designArea) {
|
|
930
|
-
var originalSize = (0, _getDesignAreaCanvasSize.getDesignAreaCanvasSize)(designArea);
|
|
931
|
-
var size;
|
|
932
|
-
|
|
933
|
-
try {
|
|
934
|
-
size = (0, _createTextureBuilder.optimizeSizeToTexture)(originalSize, DESIGN_AREA_PIXEL_RATIO, true, MAX_TEXTURE_SIZE);
|
|
935
|
-
} catch (e) {
|
|
936
|
-
this.observable.dispatch(_Constants.EventTypes.Error, e);
|
|
937
|
-
throw e;
|
|
938
|
-
}
|
|
939
|
-
|
|
940
|
-
var _createWorkingCanvas = (0, _createCanvas.createWorkingCanvas)(size),
|
|
941
|
-
_createWorkingCanvas2 = _slicedToArray(_createWorkingCanvas, 1),
|
|
942
|
-
canvas = _createWorkingCanvas2[0];
|
|
943
|
-
|
|
944
|
-
var tex = new _three.Texture(canvas);
|
|
945
|
-
tex.anisotropy = this.renderer.capabilities.getMaxAnisotropy();
|
|
946
|
-
tex.originalSize = originalSize;
|
|
947
|
-
var mat = new _three.MeshBasicMaterial({
|
|
948
|
-
map: tex
|
|
949
|
-
});
|
|
950
|
-
mat.transparent = true;
|
|
951
|
-
mat.name = designArea.identifier; // if the "inside" prop is true, use the BackSide
|
|
952
|
-
|
|
953
|
-
if ((0, _get2["default"])(designArea, "baseShape.inside", false)) {
|
|
954
|
-
mat.side = _three.BackSide;
|
|
955
|
-
}
|
|
956
|
-
|
|
957
|
-
this._customizableMaterialKeys.push(mat.name);
|
|
958
|
-
|
|
959
|
-
this._customizableMaterials.push(mat);
|
|
960
|
-
|
|
961
|
-
this._materialMap.set(designArea.identifier, mat);
|
|
962
|
-
|
|
963
|
-
return mat;
|
|
964
|
-
}
|
|
965
|
-
/**
|
|
966
|
-
* Animates the camera position and zoom to the given target
|
|
967
|
-
* @param {Vector3} position
|
|
968
|
-
* @param {number} zoom
|
|
969
|
-
* @param {{[position]: number, [zoom]: number}} duration The animation duration in ms
|
|
970
|
-
*/
|
|
971
|
-
|
|
972
|
-
}, {
|
|
973
|
-
key: "moveCamera",
|
|
974
|
-
value: function moveCamera(position, zoom) {
|
|
975
|
-
var _this7 = this;
|
|
976
|
-
|
|
977
|
-
var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
978
|
-
this.cleanUpCameraAnimations();
|
|
979
|
-
var animationDef = new _Deferred.DeferredGroup();
|
|
980
|
-
|
|
981
|
-
if (zoom) {
|
|
982
|
-
new _tween["default"].Tween(this.camera, this.cameraTweenGroup).to({
|
|
983
|
-
zoom: zoom
|
|
984
|
-
}, duration.zoom || 1000).easing(_tween["default"].Easing.Quadratic.Out).onUpdate(function () {
|
|
985
|
-
return _this7.camera.updateProjectionMatrix();
|
|
986
|
-
}).onComplete(animationDef.createResolver()).start();
|
|
987
|
-
}
|
|
988
|
-
|
|
989
|
-
if (position) {
|
|
990
|
-
new _tween["default"].Tween(this.camera.position, this.cameraTweenGroup).to(position, duration.position || 1000).easing(_tween["default"].Easing.Quadratic.Out).onComplete(animationDef.createResolver()).start();
|
|
991
|
-
}
|
|
992
|
-
|
|
993
|
-
animationDef.then(function () {
|
|
994
|
-
return _this7.stopAnimation("camera");
|
|
995
|
-
});
|
|
996
|
-
this.startAnimation("camera");
|
|
997
|
-
}
|
|
998
|
-
}, {
|
|
999
|
-
key: "findAreaObjectByName",
|
|
1000
|
-
value: function findAreaObjectByName(name) {
|
|
1001
|
-
return this._containerGroup && this._containerGroup.getObjectByName(name);
|
|
1002
|
-
}
|
|
1003
|
-
}, {
|
|
1004
|
-
key: "calculateZoomForObject",
|
|
1005
|
-
value: function calculateZoomForObject(obj) {
|
|
1006
|
-
if (!obj) {
|
|
1007
|
-
return this.getDefaultZoom();
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
var _Box3$setFromObject = new _three.Box3().setFromObject(obj),
|
|
1011
|
-
min = _Box3$setFromObject.min,
|
|
1012
|
-
max = _Box3$setFromObject.max;
|
|
1013
|
-
|
|
1014
|
-
var _max$sub = max.sub(min),
|
|
1015
|
-
w = _max$sub.x,
|
|
1016
|
-
h = _max$sub.y;
|
|
1017
|
-
|
|
1018
|
-
var _ref8 = this._fitSize || this.renderer.getSize(new _three.Vector2()),
|
|
1019
|
-
cWidth = _ref8.width,
|
|
1020
|
-
cHeight = _ref8.height;
|
|
1021
|
-
|
|
1022
|
-
return Math.max(cWidth / w, cHeight / h);
|
|
1023
|
-
}
|
|
1024
|
-
}, {
|
|
1025
|
-
key: "createObjectsForDesignAreas",
|
|
1026
|
-
value: function createObjectsForDesignAreas(designAreas) {
|
|
1027
|
-
var _this8 = this;
|
|
1028
|
-
|
|
1029
|
-
var containerGroup = new _three.Group();
|
|
1030
|
-
var EPS = 10;
|
|
1031
|
-
var index = 1;
|
|
1032
|
-
designAreas.forEach(function (designArea) {
|
|
1033
|
-
var baseShape = designArea.baseShape;
|
|
1034
|
-
var geometry;
|
|
1035
|
-
|
|
1036
|
-
try {
|
|
1037
|
-
geometry = createBaseShapeGeometry(designArea);
|
|
1038
|
-
} catch (e) {
|
|
1039
|
-
_this8.observable.dispatch(_Constants.EventTypes.Error, e);
|
|
1040
|
-
|
|
1041
|
-
throw e;
|
|
1042
|
-
}
|
|
1043
|
-
|
|
1044
|
-
var _x$y$z$rotation$baseS = _objectSpread({
|
|
1045
|
-
x: 0,
|
|
1046
|
-
y: 0,
|
|
1047
|
-
z: 0,
|
|
1048
|
-
rotation: {
|
|
1049
|
-
x: 0,
|
|
1050
|
-
y: 0,
|
|
1051
|
-
z: 0
|
|
1052
|
-
}
|
|
1053
|
-
}, baseShape),
|
|
1054
|
-
x = _x$y$z$rotation$baseS.x,
|
|
1055
|
-
y = _x$y$z$rotation$baseS.y,
|
|
1056
|
-
z = _x$y$z$rotation$baseS.z,
|
|
1057
|
-
rotation = _x$y$z$rotation$baseS.rotation;
|
|
1058
|
-
|
|
1059
|
-
var mat = _this8.createCanvasMaterial(designArea);
|
|
1060
|
-
|
|
1061
|
-
var obj = new _three.Mesh(geometry, mat);
|
|
1062
|
-
Object.assign(obj.rotation, rotation);
|
|
1063
|
-
obj.position.x = x;
|
|
1064
|
-
obj.position.y = y;
|
|
1065
|
-
obj.position.z = z || EPS * index;
|
|
1066
|
-
obj.name = designArea.identifier;
|
|
1067
|
-
containerGroup.add(obj);
|
|
1068
|
-
index++;
|
|
1069
|
-
});
|
|
1070
|
-
return containerGroup;
|
|
1071
|
-
}
|
|
1072
|
-
}, {
|
|
1073
|
-
key: "getModelPathFromDesignView",
|
|
1074
|
-
value: function getModelPathFromDesignView(designView) {
|
|
1075
|
-
return this._materialVariantPath ? (0, _get2["default"])(designView, "images[".concat(this._materialVariantPath, "]")) : (0, _get2["default"])(designView, "images[".concat(this._itemPath, "]"));
|
|
1076
|
-
}
|
|
1077
|
-
}, {
|
|
1078
|
-
key: "clearScene",
|
|
1079
|
-
value: function clearScene() {
|
|
1080
|
-
delete this._redraw; // remove the redraw function to prevent drawing on non-existing textures
|
|
1081
|
-
|
|
1082
|
-
this.scene && this.scene.remove(this._containerGroup);
|
|
1083
|
-
(0, _removeObject.removeObject)(this._containerGroup);
|
|
1084
|
-
this._customizableMaterialKeys = [];
|
|
1085
|
-
this._customizableMaterials = [];
|
|
1086
|
-
|
|
1087
|
-
this._materialMap.forEach(_disposeMaterial.disposeMaterial);
|
|
1088
|
-
|
|
1089
|
-
this._materialMap.clear();
|
|
1090
|
-
}
|
|
1091
|
-
}, {
|
|
1092
|
-
key: "updateViewForArea",
|
|
1093
|
-
value: function () {
|
|
1094
|
-
var _updateViewForArea = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9(selectedDesignArea) {
|
|
1095
|
-
var options,
|
|
1096
|
-
designView,
|
|
1097
|
-
_args9 = arguments;
|
|
1098
|
-
return regeneratorRuntime.wrap(function _callee9$(_context9) {
|
|
1099
|
-
while (1) {
|
|
1100
|
-
switch (_context9.prev = _context9.next) {
|
|
1101
|
-
case 0:
|
|
1102
|
-
options = _args9.length > 1 && _args9[1] !== undefined ? _args9[1] : {};
|
|
1103
|
-
designView = (0, _get2["default"])(selectedDesignArea, "designView");
|
|
1104
|
-
_context9.next = 4;
|
|
1105
|
-
return this.updateView(designView, options);
|
|
1106
|
-
|
|
1107
|
-
case 4:
|
|
1108
|
-
return _context9.abrupt("return", _context9.sent);
|
|
1109
|
-
|
|
1110
|
-
case 5:
|
|
1111
|
-
case "end":
|
|
1112
|
-
return _context9.stop();
|
|
1113
|
-
}
|
|
1114
|
-
}
|
|
1115
|
-
}, _callee9, this);
|
|
1116
|
-
}));
|
|
1117
|
-
|
|
1118
|
-
function updateViewForArea(_x4) {
|
|
1119
|
-
return _updateViewForArea.apply(this, arguments);
|
|
1120
|
-
}
|
|
1121
|
-
|
|
1122
|
-
return updateViewForArea;
|
|
1123
|
-
}()
|
|
1124
|
-
/**
|
|
1125
|
-
* Tries to find a design view with the given identifier. If there are no matches, tries to find a design area.
|
|
1126
|
-
* @param {string} identifier
|
|
1127
|
-
* @return {T}
|
|
1128
|
-
*/
|
|
1129
|
-
|
|
1130
|
-
}, {
|
|
1131
|
-
key: "findDesignArea",
|
|
1132
|
-
value: function findDesignArea(identifier) {
|
|
1133
|
-
return this._designAreaList.filter(function (designArea) {
|
|
1134
|
-
return (0, _get2["default"])(designArea, "designView.identifier") === identifier;
|
|
1135
|
-
})[0] || this._designAreaList.filter(function (designArea) {
|
|
1136
|
-
return designArea.identifier === identifier;
|
|
1137
|
-
})[0];
|
|
1138
|
-
}
|
|
1139
|
-
}, {
|
|
1140
|
-
key: "setActiveDesignArea",
|
|
1141
|
-
value: function setActiveDesignArea(designArea) {
|
|
1142
|
-
this._currentDesignArea = designArea;
|
|
1143
|
-
}
|
|
1144
|
-
}, {
|
|
1145
|
-
key: "getActiveDesignArea",
|
|
1146
|
-
value: function getActiveDesignArea() {
|
|
1147
|
-
return this._currentDesignArea;
|
|
1148
|
-
}
|
|
1149
|
-
/**
|
|
1150
|
-
*
|
|
1151
|
-
* @param {string} designAreaIdentifier
|
|
1152
|
-
* @param {boolean} animate
|
|
1153
|
-
* @param {{[position]: number, [zoom]: number}} duration The animation duration in ms when animated
|
|
1154
|
-
* @param {boolean} forceUpdate True if DesignArea-DesignProduction Method height/width differs as update required
|
|
1155
|
-
* @return {boolean} False if the operation is not possible, otherwise true
|
|
1156
|
-
*/
|
|
1157
|
-
|
|
1158
|
-
}, {
|
|
1159
|
-
key: "jumpToArea",
|
|
1160
|
-
value: function () {
|
|
1161
|
-
var _jumpToArea = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10(designAreaIdentifier) {
|
|
1162
|
-
var animate,
|
|
1163
|
-
duration,
|
|
1164
|
-
forceUpdate,
|
|
1165
|
-
designArea,
|
|
1166
|
-
obj,
|
|
1167
|
-
zoom,
|
|
1168
|
-
position,
|
|
1169
|
-
_args10 = arguments;
|
|
1170
|
-
return regeneratorRuntime.wrap(function _callee10$(_context10) {
|
|
1171
|
-
while (1) {
|
|
1172
|
-
switch (_context10.prev = _context10.next) {
|
|
1173
|
-
case 0:
|
|
1174
|
-
animate = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : true;
|
|
1175
|
-
duration = _args10.length > 2 && _args10[2] !== undefined ? _args10[2] : {};
|
|
1176
|
-
forceUpdate = _args10.length > 3 && _args10[3] !== undefined ? _args10[3] : false;
|
|
1177
|
-
// use the current design area if present, otherwise try to find it by the designViewIdentifier
|
|
1178
|
-
designArea = (0, _size["default"])(this._currentDesignArea) > 0 ? this._currentDesignArea : this.findDesignArea(designAreaIdentifier);
|
|
1179
|
-
|
|
1180
|
-
if (!(designAreaIdentifier !== "default")) {
|
|
1181
|
-
_context10.next = 8;
|
|
1182
|
-
break;
|
|
1183
|
-
}
|
|
1184
|
-
|
|
1185
|
-
_context10.next = 7;
|
|
1186
|
-
return this.updateViewForArea(designArea, {
|
|
1187
|
-
forceUpdate: forceUpdate
|
|
1188
|
-
});
|
|
1189
|
-
|
|
1190
|
-
case 7:
|
|
1191
|
-
this.render();
|
|
1192
|
-
|
|
1193
|
-
case 8:
|
|
1194
|
-
if (this._containerGroup) {
|
|
1195
|
-
_context10.next = 11;
|
|
1196
|
-
break;
|
|
1197
|
-
}
|
|
1198
|
-
|
|
1199
|
-
// eslint-disable-next-line no-console
|
|
1200
|
-
console.log("Container group is not available, skipping jump to view!");
|
|
1201
|
-
return _context10.abrupt("return", false);
|
|
1202
|
-
|
|
1203
|
-
case 11:
|
|
1204
|
-
obj = designArea && this.findAreaObjectByName(designArea.identifier);
|
|
1205
|
-
zoom = this.calculateZoomForObject(obj);
|
|
1206
|
-
position = new _three.Vector3();
|
|
1207
|
-
|
|
1208
|
-
if (obj) {
|
|
1209
|
-
obj.getWorldPosition(position);
|
|
1210
|
-
}
|
|
1211
|
-
|
|
1212
|
-
position.z = this.camera.position.z;
|
|
1213
|
-
|
|
1214
|
-
if (animate) {
|
|
1215
|
-
this.moveCamera(position, zoom, duration);
|
|
1216
|
-
} else {
|
|
1217
|
-
this.setCameraPosition(position, zoom);
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
return _context10.abrupt("return", true);
|
|
1221
|
-
|
|
1222
|
-
case 18:
|
|
1223
|
-
case "end":
|
|
1224
|
-
return _context10.stop();
|
|
1225
|
-
}
|
|
1226
|
-
}
|
|
1227
|
-
}, _callee10, this);
|
|
1228
|
-
}));
|
|
1229
|
-
|
|
1230
|
-
function jumpToArea(_x5) {
|
|
1231
|
-
return _jumpToArea.apply(this, arguments);
|
|
1232
|
-
}
|
|
1233
|
-
|
|
1234
|
-
return jumpToArea;
|
|
1235
|
-
}()
|
|
1236
|
-
/**
|
|
1237
|
-
* Jump to the selected view
|
|
1238
|
-
* @param {object} designView The design view object
|
|
1239
|
-
* @return {boolean} False if the operation is not possible, otherwise true
|
|
1240
|
-
*/
|
|
1241
|
-
|
|
1242
|
-
}, {
|
|
1243
|
-
key: "setView",
|
|
1244
|
-
value: function () {
|
|
1245
|
-
var _setView = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11(designView) {
|
|
1246
|
-
return regeneratorRuntime.wrap(function _callee11$(_context11) {
|
|
1247
|
-
while (1) {
|
|
1248
|
-
switch (_context11.prev = _context11.next) {
|
|
1249
|
-
case 0:
|
|
1250
|
-
_context11.next = 2;
|
|
1251
|
-
return this.updateView(designView);
|
|
1252
|
-
|
|
1253
|
-
case 2:
|
|
1254
|
-
if (this._containerGroup) {
|
|
1255
|
-
_context11.next = 5;
|
|
1256
|
-
break;
|
|
1257
|
-
}
|
|
1258
|
-
|
|
1259
|
-
// eslint-disable-next-line no-console
|
|
1260
|
-
console.log("Container group is not available, skipping jump to view!");
|
|
1261
|
-
return _context11.abrupt("return", false);
|
|
1262
|
-
|
|
1263
|
-
case 5:
|
|
1264
|
-
this.render();
|
|
1265
|
-
return _context11.abrupt("return", true);
|
|
1266
|
-
|
|
1267
|
-
case 7:
|
|
1268
|
-
case "end":
|
|
1269
|
-
return _context11.stop();
|
|
1270
|
-
}
|
|
1271
|
-
}
|
|
1272
|
-
}, _callee11, this);
|
|
1273
|
-
}));
|
|
1274
|
-
|
|
1275
|
-
function setView(_x6) {
|
|
1276
|
-
return _setView.apply(this, arguments);
|
|
1277
|
-
}
|
|
1278
|
-
|
|
1279
|
-
return setView;
|
|
1280
|
-
}()
|
|
1281
|
-
}, {
|
|
1282
|
-
key: "updateMaxZoomSetting",
|
|
1283
|
-
value: function updateMaxZoomSetting(maxZoom) {
|
|
1284
|
-
this.setMaxZoom(maxZoom > this._minZoom ? maxZoom : this._minZoom);
|
|
1285
|
-
}
|
|
1286
|
-
}, {
|
|
1287
|
-
key: "setCameraPosition",
|
|
1288
|
-
value: function setCameraPosition(position, zoom) {
|
|
1289
|
-
Object.assign(this.camera.position, position);
|
|
1290
|
-
Object.assign(this.camera, {
|
|
1291
|
-
zoom: zoom
|
|
1292
|
-
});
|
|
1293
|
-
this.camera.updateProjectionMatrix();
|
|
1294
|
-
}
|
|
1295
|
-
}, {
|
|
1296
|
-
key: "updateDesignAreaList",
|
|
1297
|
-
value: function () {
|
|
1298
|
-
var _updateDesignAreaList = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12(designAreaList) {
|
|
1299
|
-
var updateView,
|
|
1300
|
-
identifier,
|
|
1301
|
-
activeArea,
|
|
1302
|
-
_args12 = arguments;
|
|
1303
|
-
return regeneratorRuntime.wrap(function _callee12$(_context12) {
|
|
1304
|
-
while (1) {
|
|
1305
|
-
switch (_context12.prev = _context12.next) {
|
|
1306
|
-
case 0:
|
|
1307
|
-
updateView = _args12.length > 1 && _args12[1] !== undefined ? _args12[1] : false;
|
|
1308
|
-
this._designAreaList = designAreaList;
|
|
1309
|
-
|
|
1310
|
-
if (!updateView) {
|
|
1311
|
-
_context12.next = 9;
|
|
1312
|
-
break;
|
|
1313
|
-
}
|
|
1314
|
-
|
|
1315
|
-
identifier = this._currentDesignArea && this._currentDesignArea.identifier;
|
|
1316
|
-
activeArea = (0, _find["default"])(designAreaList, {
|
|
1317
|
-
identifier: identifier
|
|
1318
|
-
}) || (0, _first["default"])(designAreaList);
|
|
1319
|
-
|
|
1320
|
-
if (!activeArea) {
|
|
1321
|
-
_context12.next = 9;
|
|
1322
|
-
break;
|
|
1323
|
-
}
|
|
1324
|
-
|
|
1325
|
-
_context12.next = 8;
|
|
1326
|
-
return this.updateViewForArea(activeArea);
|
|
1327
|
-
|
|
1328
|
-
case 8:
|
|
1329
|
-
// update the zoom to the initial value only if there is no designArea selected
|
|
1330
|
-
!identifier && this.updateZoom();
|
|
1331
|
-
|
|
1332
|
-
case 9:
|
|
1333
|
-
case "end":
|
|
1334
|
-
return _context12.stop();
|
|
1335
|
-
}
|
|
1336
|
-
}
|
|
1337
|
-
}, _callee12, this);
|
|
1338
|
-
}));
|
|
1339
|
-
|
|
1340
|
-
function updateDesignAreaList(_x7) {
|
|
1341
|
-
return _updateDesignAreaList.apply(this, arguments);
|
|
1342
|
-
}
|
|
1343
|
-
|
|
1344
|
-
return updateDesignAreaList;
|
|
1345
|
-
}()
|
|
1346
|
-
}, {
|
|
1347
|
-
key: "getScreenshotSize",
|
|
1348
|
-
value: function getScreenshotSize(targetSize) {
|
|
1349
|
-
var width = (0, _get2["default"])(targetSize, "width", 1024);
|
|
1350
|
-
var height = (0, _get2["default"])(targetSize, "height", 768);
|
|
1351
|
-
var initialRatio = width / height;
|
|
1352
|
-
var modelRatio = this._size.width / this._size.height;
|
|
1353
|
-
|
|
1354
|
-
if (modelRatio > initialRatio) {
|
|
1355
|
-
height = width / modelRatio;
|
|
1356
|
-
} else {
|
|
1357
|
-
width = height * modelRatio;
|
|
1358
|
-
}
|
|
1359
|
-
|
|
1360
|
-
return {
|
|
1361
|
-
width: width,
|
|
1362
|
-
height: height
|
|
1363
|
-
};
|
|
1364
|
-
}
|
|
1365
|
-
}, {
|
|
1366
|
-
key: "getScreenshots",
|
|
1367
|
-
value: function () {
|
|
1368
|
-
var _getScreenshots = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15(callback, _ref9) {
|
|
1369
|
-
var _this9 = this;
|
|
1370
|
-
|
|
1371
|
-
var designViewList, areaList, variantList, size, removeTempOverlay, origDesignView, designAreaList, variants, screenshots, origVariantPath, origSize, origPixelRatio, restoreOriginalValues, camera, views, _iterator, _step, _loop, _ret;
|
|
1372
|
-
|
|
1373
|
-
return regeneratorRuntime.wrap(function _callee15$(_context17) {
|
|
1374
|
-
while (1) {
|
|
1375
|
-
switch (_context17.prev = _context17.next) {
|
|
1376
|
-
case 0:
|
|
1377
|
-
designViewList = _ref9.designViewList, areaList = _ref9.areaList, variantList = _ref9.variantList, size = _ref9.size;
|
|
1378
|
-
|
|
1379
|
-
if (this.renderer) {
|
|
1380
|
-
_context17.next = 3;
|
|
1381
|
-
break;
|
|
1382
|
-
}
|
|
1383
|
-
|
|
1384
|
-
return _context17.abrupt("return", callback({}));
|
|
1385
|
-
|
|
1386
|
-
case 3:
|
|
1387
|
-
this._screenshottingInProgress = true;
|
|
1388
|
-
this.endAnimation();
|
|
1389
|
-
_context17.next = 7;
|
|
1390
|
-
return this.animationRunning();
|
|
1391
|
-
|
|
1392
|
-
case 7:
|
|
1393
|
-
_context17.next = 9;
|
|
1394
|
-
return this.createTempOverlay();
|
|
1395
|
-
|
|
1396
|
-
case 9:
|
|
1397
|
-
removeTempOverlay = _context17.sent;
|
|
1398
|
-
origDesignView = this._currentDesignView; // if the areaList option is provided, use it to filter the design areas
|
|
1399
|
-
|
|
1400
|
-
designAreaList = areaList instanceof Array && areaList.length > 0 ? this._designAreaList.filter(function (designArea) {
|
|
1401
|
-
return areaList.indexOf(designArea.identifier) !== -1;
|
|
1402
|
-
}) : this._designAreaList;
|
|
1403
|
-
variants = variantList instanceof Array && variantList.length > 0 ? variantList : [this._materialVariantPath];
|
|
1404
|
-
screenshots = {}; // store the original camera, variant and renderer size
|
|
1405
|
-
|
|
1406
|
-
origVariantPath = this._materialVariantPath;
|
|
1407
|
-
origSize = new _three.Vector2();
|
|
1408
|
-
this.renderer.getSize(origSize);
|
|
1409
|
-
origPixelRatio = this.renderer.getPixelRatio();
|
|
1410
|
-
|
|
1411
|
-
restoreOriginalValues = /*#__PURE__*/function () {
|
|
1412
|
-
var _ref10 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() {
|
|
1413
|
-
return regeneratorRuntime.wrap(function _callee13$(_context13) {
|
|
1414
|
-
while (1) {
|
|
1415
|
-
switch (_context13.prev = _context13.next) {
|
|
1416
|
-
case 0:
|
|
1417
|
-
_this9._screenshotCamera = null;
|
|
1418
|
-
_this9._screenshottingInProgress = false;
|
|
1419
|
-
_this9._materialVariantPath = origVariantPath;
|
|
1420
|
-
_this9._currentDesignView = null;
|
|
1421
|
-
_context13.next = 6;
|
|
1422
|
-
return _this9.setView(origDesignView);
|
|
1423
|
-
|
|
1424
|
-
case 6:
|
|
1425
|
-
_this9.renderer.setSize(origSize.width, origSize.height);
|
|
1426
|
-
|
|
1427
|
-
_this9.renderer.setPixelRatio(origPixelRatio);
|
|
1428
|
-
|
|
1429
|
-
_this9.render();
|
|
1430
|
-
|
|
1431
|
-
removeTempOverlay();
|
|
1432
|
-
|
|
1433
|
-
case 10:
|
|
1434
|
-
case "end":
|
|
1435
|
-
return _context13.stop();
|
|
1436
|
-
}
|
|
1437
|
-
}
|
|
1438
|
-
}, _callee13);
|
|
1439
|
-
}));
|
|
1440
|
-
|
|
1441
|
-
return function restoreOriginalValues() {
|
|
1442
|
-
return _ref10.apply(this, arguments);
|
|
1443
|
-
};
|
|
1444
|
-
}();
|
|
1445
|
-
|
|
1446
|
-
camera = this.createCameraBase();
|
|
1447
|
-
this._screenshotCamera = camera;
|
|
1448
|
-
views = designViewList || designAreaList.map(function (_ref11) {
|
|
1449
|
-
var designView = _ref11.designView;
|
|
1450
|
-
return designView;
|
|
1451
|
-
});
|
|
1452
|
-
_iterator = _createForOfIteratorHelper(variants);
|
|
1453
|
-
_context17.prev = 23;
|
|
1454
|
-
_loop = /*#__PURE__*/regeneratorRuntime.mark(function _loop() {
|
|
1455
|
-
var variant, data, _iterator2, _step2, _loop2, _ret2;
|
|
1456
|
-
|
|
1457
|
-
return regeneratorRuntime.wrap(function _loop$(_context16) {
|
|
1458
|
-
while (1) {
|
|
1459
|
-
switch (_context16.prev = _context16.next) {
|
|
1460
|
-
case 0:
|
|
1461
|
-
variant = _step.value;
|
|
1462
|
-
data = {};
|
|
1463
|
-
|
|
1464
|
-
_this9.setMaterialVariantPath(variant);
|
|
1465
|
-
|
|
1466
|
-
_this9._currentDesignView = null;
|
|
1467
|
-
_iterator2 = _createForOfIteratorHelper(views);
|
|
1468
|
-
_context16.prev = 5;
|
|
1469
|
-
_loop2 = /*#__PURE__*/regeneratorRuntime.mark(function _loop2() {
|
|
1470
|
-
var view;
|
|
1471
|
-
return regeneratorRuntime.wrap(function _loop2$(_context15) {
|
|
1472
|
-
while (1) {
|
|
1473
|
-
switch (_context15.prev = _context15.next) {
|
|
1474
|
-
case 0:
|
|
1475
|
-
view = _step2.value;
|
|
1476
|
-
|
|
1477
|
-
if (!_this9._abortScreenshotting) {
|
|
1478
|
-
_context15.next = 7;
|
|
1479
|
-
break;
|
|
1480
|
-
}
|
|
1481
|
-
|
|
1482
|
-
_context15.next = 4;
|
|
1483
|
-
return restoreOriginalValues();
|
|
1484
|
-
|
|
1485
|
-
case 4:
|
|
1486
|
-
_context15.t0 = _context15.sent;
|
|
1487
|
-
_context15.t1 = {
|
|
1488
|
-
v: _context15.t0
|
|
1489
|
-
};
|
|
1490
|
-
return _context15.abrupt("return", {
|
|
1491
|
-
v: _context15.t1
|
|
1492
|
-
});
|
|
1493
|
-
|
|
1494
|
-
case 7:
|
|
1495
|
-
_context15.prev = 7;
|
|
1496
|
-
_context15.next = 10;
|
|
1497
|
-
return new Promise(function (resolve) {
|
|
1498
|
-
window.setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() {
|
|
1499
|
-
var _this9$getScreenshotS, width, height;
|
|
1500
|
-
|
|
1501
|
-
return regeneratorRuntime.wrap(function _callee14$(_context14) {
|
|
1502
|
-
while (1) {
|
|
1503
|
-
switch (_context14.prev = _context14.next) {
|
|
1504
|
-
case 0:
|
|
1505
|
-
_context14.next = 2;
|
|
1506
|
-
return _this9.updateView(view, {
|
|
1507
|
-
forceUpdate: false,
|
|
1508
|
-
updateMaterial: false
|
|
1509
|
-
});
|
|
1510
|
-
|
|
1511
|
-
case 2:
|
|
1512
|
-
_this9$getScreenshotS = _this9.getScreenshotSize(size), width = _this9$getScreenshotS.width, height = _this9$getScreenshotS.height;
|
|
1513
|
-
(0, _setOrthographicCameraSize.setOrthographicCameraSize)(camera, width, height);
|
|
1514
|
-
|
|
1515
|
-
_this9.renderer.setSize(width, height);
|
|
1516
|
-
|
|
1517
|
-
_this9.renderer.setPixelRatio(1);
|
|
1518
|
-
|
|
1519
|
-
camera.zoom = _this9.getZoomForSize({
|
|
1520
|
-
width: width,
|
|
1521
|
-
height: height
|
|
1522
|
-
});
|
|
1523
|
-
camera.updateProjectionMatrix();
|
|
1524
|
-
_context14.next = 10;
|
|
1525
|
-
return _this9.dispatchMaterialUpdateEvent({
|
|
1526
|
-
screenshot: true
|
|
1527
|
-
});
|
|
1528
|
-
|
|
1529
|
-
case 10:
|
|
1530
|
-
// set size and pixel ratio right before rendering, to make sure they are correct
|
|
1531
|
-
_this9.renderer.setSize(width, height);
|
|
1532
|
-
|
|
1533
|
-
_this9.renderer.setPixelRatio(1);
|
|
1534
|
-
|
|
1535
|
-
_this9.renderer.render(_this9.scene, camera);
|
|
1536
|
-
|
|
1537
|
-
data[view.identifier] = _this9.renderer.domElement.toDataURL();
|
|
1538
|
-
resolve();
|
|
1539
|
-
|
|
1540
|
-
case 15:
|
|
1541
|
-
case "end":
|
|
1542
|
-
return _context14.stop();
|
|
1543
|
-
}
|
|
1544
|
-
}
|
|
1545
|
-
}, _callee14);
|
|
1546
|
-
})));
|
|
1547
|
-
});
|
|
1548
|
-
|
|
1549
|
-
case 10:
|
|
1550
|
-
_context15.next = 14;
|
|
1551
|
-
break;
|
|
1552
|
-
|
|
1553
|
-
case 12:
|
|
1554
|
-
_context15.prev = 12;
|
|
1555
|
-
_context15.t2 = _context15["catch"](7);
|
|
1556
|
-
|
|
1557
|
-
case 14:
|
|
1558
|
-
case "end":
|
|
1559
|
-
return _context15.stop();
|
|
1560
|
-
}
|
|
1561
|
-
}
|
|
1562
|
-
}, _loop2, null, [[7, 12]]);
|
|
1563
|
-
});
|
|
1564
|
-
|
|
1565
|
-
_iterator2.s();
|
|
1566
|
-
|
|
1567
|
-
case 8:
|
|
1568
|
-
if ((_step2 = _iterator2.n()).done) {
|
|
1569
|
-
_context16.next = 15;
|
|
1570
|
-
break;
|
|
1571
|
-
}
|
|
1572
|
-
|
|
1573
|
-
return _context16.delegateYield(_loop2(), "t0", 10);
|
|
1574
|
-
|
|
1575
|
-
case 10:
|
|
1576
|
-
_ret2 = _context16.t0;
|
|
1577
|
-
|
|
1578
|
-
if (!(_typeof(_ret2) === "object")) {
|
|
1579
|
-
_context16.next = 13;
|
|
1580
|
-
break;
|
|
1581
|
-
}
|
|
1582
|
-
|
|
1583
|
-
return _context16.abrupt("return", _ret2.v);
|
|
1584
|
-
|
|
1585
|
-
case 13:
|
|
1586
|
-
_context16.next = 8;
|
|
1587
|
-
break;
|
|
1588
|
-
|
|
1589
|
-
case 15:
|
|
1590
|
-
_context16.next = 20;
|
|
1591
|
-
break;
|
|
1592
|
-
|
|
1593
|
-
case 17:
|
|
1594
|
-
_context16.prev = 17;
|
|
1595
|
-
_context16.t1 = _context16["catch"](5);
|
|
1596
|
-
|
|
1597
|
-
_iterator2.e(_context16.t1);
|
|
1598
|
-
|
|
1599
|
-
case 20:
|
|
1600
|
-
_context16.prev = 20;
|
|
1601
|
-
|
|
1602
|
-
_iterator2.f();
|
|
1603
|
-
|
|
1604
|
-
return _context16.finish(20);
|
|
1605
|
-
|
|
1606
|
-
case 23:
|
|
1607
|
-
screenshots[variant] = data;
|
|
1608
|
-
|
|
1609
|
-
case 24:
|
|
1610
|
-
case "end":
|
|
1611
|
-
return _context16.stop();
|
|
1612
|
-
}
|
|
1613
|
-
}
|
|
1614
|
-
}, _loop, null, [[5, 17, 20, 23]]);
|
|
1615
|
-
});
|
|
1616
|
-
|
|
1617
|
-
_iterator.s();
|
|
1618
|
-
|
|
1619
|
-
case 26:
|
|
1620
|
-
if ((_step = _iterator.n()).done) {
|
|
1621
|
-
_context17.next = 33;
|
|
1622
|
-
break;
|
|
1623
|
-
}
|
|
1624
|
-
|
|
1625
|
-
return _context17.delegateYield(_loop(), "t0", 28);
|
|
1626
|
-
|
|
1627
|
-
case 28:
|
|
1628
|
-
_ret = _context17.t0;
|
|
1629
|
-
|
|
1630
|
-
if (!(_typeof(_ret) === "object")) {
|
|
1631
|
-
_context17.next = 31;
|
|
1632
|
-
break;
|
|
1633
|
-
}
|
|
1634
|
-
|
|
1635
|
-
return _context17.abrupt("return", _ret.v);
|
|
1636
|
-
|
|
1637
|
-
case 31:
|
|
1638
|
-
_context17.next = 26;
|
|
1639
|
-
break;
|
|
1640
|
-
|
|
1641
|
-
case 33:
|
|
1642
|
-
_context17.next = 38;
|
|
1643
|
-
break;
|
|
1644
|
-
|
|
1645
|
-
case 35:
|
|
1646
|
-
_context17.prev = 35;
|
|
1647
|
-
_context17.t1 = _context17["catch"](23);
|
|
1648
|
-
|
|
1649
|
-
_iterator.e(_context17.t1);
|
|
1650
|
-
|
|
1651
|
-
case 38:
|
|
1652
|
-
_context17.prev = 38;
|
|
1653
|
-
|
|
1654
|
-
_iterator.f();
|
|
1655
|
-
|
|
1656
|
-
return _context17.finish(38);
|
|
1657
|
-
|
|
1658
|
-
case 41:
|
|
1659
|
-
_context17.next = 43;
|
|
1660
|
-
return restoreOriginalValues();
|
|
1661
|
-
|
|
1662
|
-
case 43:
|
|
1663
|
-
callback(screenshots);
|
|
1664
|
-
|
|
1665
|
-
case 44:
|
|
1666
|
-
case "end":
|
|
1667
|
-
return _context17.stop();
|
|
1668
|
-
}
|
|
1669
|
-
}
|
|
1670
|
-
}, _callee15, this, [[23, 35, 38, 41]]);
|
|
1671
|
-
}));
|
|
1672
|
-
|
|
1673
|
-
function getScreenshots(_x8, _x9) {
|
|
1674
|
-
return _getScreenshots.apply(this, arguments);
|
|
1675
|
-
}
|
|
1676
|
-
|
|
1677
|
-
return getScreenshots;
|
|
1678
|
-
}()
|
|
1679
|
-
}, {
|
|
1680
|
-
key: "textureHitFormatter",
|
|
1681
|
-
value: function textureHitFormatter(intersect, position) {
|
|
1682
|
-
var designAreaIdentifier = (0, _get2["default"])(intersect, "object.material.name");
|
|
1683
|
-
var texture = intersect.object.material.map;
|
|
1684
|
-
var flipY = texture.flipY,
|
|
1685
|
-
originalSize = texture.originalSize;
|
|
1686
|
-
var width = originalSize.width,
|
|
1687
|
-
height = originalSize.height;
|
|
1688
|
-
var x = Math.round(intersect.uv.x * width);
|
|
1689
|
-
var y = Math.round((flipY ? 1 - intersect.uv.y : intersect.uv.y) * height);
|
|
1690
|
-
return _objectSpread(_objectSpread({}, position), {}, {
|
|
1691
|
-
x: x,
|
|
1692
|
-
y: y,
|
|
1693
|
-
width: width,
|
|
1694
|
-
height: height,
|
|
1695
|
-
designAreaIdentifier: designAreaIdentifier,
|
|
1696
|
-
currentView: this._currentDesignView
|
|
1697
|
-
});
|
|
1698
|
-
}
|
|
1699
|
-
}, {
|
|
1700
|
-
key: "addCylinder",
|
|
1701
|
-
value: function addCylinder(r, width, height) {
|
|
1702
|
-
var theta = width / r;
|
|
1703
|
-
var cylinder = new _three.CylinderGeometry(r, r, height, 0, 1, true, -theta / 2, theta);
|
|
1704
|
-
var mat = new _three.MeshBasicMaterial({
|
|
1705
|
-
color: 0x55ff55
|
|
1706
|
-
});
|
|
1707
|
-
var obj = new _three.Mesh(cylinder, mat);
|
|
1708
|
-
obj.position.x = 1200;
|
|
1709
|
-
obj.position.y = -400;
|
|
1710
|
-
this.scene.add(obj);
|
|
1711
|
-
this.render();
|
|
1712
|
-
return obj;
|
|
1713
|
-
}
|
|
1714
|
-
}, {
|
|
1715
|
-
key: "dispose",
|
|
1716
|
-
value: function dispose() {
|
|
1717
|
-
if (this._pointerMoveEventListener) {
|
|
1718
|
-
this._pointerMoveEventListener();
|
|
1719
|
-
}
|
|
1720
|
-
|
|
1721
|
-
if (this._mouseWheelEventListener) {
|
|
1722
|
-
this._mouseWheelEventListener();
|
|
1723
|
-
}
|
|
1724
|
-
|
|
1725
|
-
this._designAreaList = [];
|
|
1726
|
-
this._currentDesignView = null;
|
|
1727
|
-
this._currentDesignArea = null;
|
|
1728
|
-
this._model = null;
|
|
1729
|
-
this._containerGroup = null;
|
|
1730
|
-
this._redraw = null;
|
|
1731
|
-
|
|
1732
|
-
this._materialMap.clear();
|
|
1733
|
-
|
|
1734
|
-
_get(_getPrototypeOf(Three2D.prototype), "dispose", this).call(this);
|
|
1735
|
-
}
|
|
1736
|
-
}]);
|
|
1737
|
-
|
|
1738
|
-
return Three2D;
|
|
1739
|
-
}(_ThreeBase2.ThreeBase);
|
|
1740
|
-
|
|
1741
|
-
exports.Three2D = Three2D;
|
|
1742
|
-
|
|
1743
|
-
var createBaseShapeGeometry = function createBaseShapeGeometry(designArea) {
|
|
1744
|
-
var baseShape = designArea.baseShape;
|
|
1745
|
-
var type = baseShape.type;
|
|
1746
|
-
|
|
1747
|
-
switch (type) {
|
|
1748
|
-
case "Plane":
|
|
1749
|
-
{
|
|
1750
|
-
var _getDesignAreaCanvasS = (0, _getDesignAreaCanvasSize.getDesignAreaCanvasSize)(designArea),
|
|
1751
|
-
width = _getDesignAreaCanvasS.width,
|
|
1752
|
-
height = _getDesignAreaCanvasS.height;
|
|
1753
|
-
|
|
1754
|
-
return new _three.PlaneGeometry(width, height, 1, 1);
|
|
1755
|
-
}
|
|
1756
|
-
|
|
1757
|
-
case "Cylinder":
|
|
1758
|
-
{
|
|
1759
|
-
var _getDesignAreaCanvasS2 = (0, _getDesignAreaCanvasSize.getDesignAreaCanvasSize)(designArea),
|
|
1760
|
-
_width = _getDesignAreaCanvasS2.width,
|
|
1761
|
-
_height = _getDesignAreaCanvasS2.height;
|
|
1762
|
-
|
|
1763
|
-
var _r$thetaOffset$baseSh = _objectSpread({
|
|
1764
|
-
r: 100,
|
|
1765
|
-
thetaOffset: 0
|
|
1766
|
-
}, baseShape),
|
|
1767
|
-
r = _r$thetaOffset$baseSh.r,
|
|
1768
|
-
thetaOffset = _r$thetaOffset$baseSh.thetaOffset;
|
|
1769
|
-
|
|
1770
|
-
var theta = Math.min(_width / r, _Constants.Numeric.TwoPI);
|
|
1771
|
-
var radiusSegments = Math.round(theta * r);
|
|
1772
|
-
return new _three.CylinderGeometry(r, r, _height, radiusSegments, 1, true, -theta / 2 + thetaOffset, theta);
|
|
1773
|
-
}
|
|
1774
|
-
|
|
1775
|
-
default:
|
|
1776
|
-
throw new Error("Unknown shape type: ".concat(type));
|
|
1777
|
-
}
|
|
1778
|
-
};
|