redhotmagma-visualization 1.31.6 → 1.32.0
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/Three/Three2D.js +78 -35
- package/package.json +2 -2
- package/src/Three/Three2D.js +46 -9
package/Three/Three2D.js
CHANGED
|
@@ -57,10 +57,6 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
|
|
|
57
57
|
|
|
58
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
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
60
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
65
61
|
|
|
66
62
|
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."); }
|
|
@@ -73,6 +69,10 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
73
69
|
|
|
74
70
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
75
71
|
|
|
72
|
+
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; }
|
|
73
|
+
|
|
74
|
+
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; }
|
|
75
|
+
|
|
76
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
77
|
|
|
78
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); }); }; }
|
|
@@ -169,18 +169,50 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
169
169
|
|
|
170
170
|
_defineProperty(_assertThisInitialized(_this), "_overlayMode", false);
|
|
171
171
|
|
|
172
|
+
_defineProperty(_assertThisInitialized(_this), "_options", {
|
|
173
|
+
sharperFullView: false,
|
|
174
|
+
// when zoom = 1 use NearestFilter for sharper product image
|
|
175
|
+
optimizeProductImage: false,
|
|
176
|
+
// upscale or downscale the product image to fit 2048 x 2048
|
|
177
|
+
premultiplyAlpha: false
|
|
178
|
+
});
|
|
179
|
+
|
|
172
180
|
_defineProperty(_assertThisInitialized(_this), "_imageRepository", (0, _createImageRepository.createImageRepository)((0, _createCache.createCache)(20), function (src) {
|
|
173
181
|
return new Promise(function (resolve, reject) {
|
|
174
182
|
return new _three.ImageLoader(_this._loadingManager).load(src, resolve, undefined, reject);
|
|
175
183
|
});
|
|
176
184
|
}));
|
|
177
185
|
|
|
186
|
+
_defineProperty(_assertThisInitialized(_this), "updateModelTextureFilter", function (_ref) {
|
|
187
|
+
var _this$_model, _this$_model$material;
|
|
188
|
+
|
|
189
|
+
var currentZoom = _ref.value;
|
|
190
|
+
|
|
191
|
+
if (!_this._options.sharperFullView) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
var tex = (_this$_model = _this._model) === null || _this$_model === void 0 ? void 0 : (_this$_model$material = _this$_model.material) === null || _this$_model$material === void 0 ? void 0 : _this$_model$material.map;
|
|
196
|
+
|
|
197
|
+
if (!tex) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (currentZoom === 1) {
|
|
202
|
+
tex.magFilter = _three.NearestFilter;
|
|
203
|
+
tex.needsUpdate = true;
|
|
204
|
+
} else if (tex.magFilter !== _three.LinearFilter) {
|
|
205
|
+
tex.magFilter = _three.LinearFilter;
|
|
206
|
+
tex.needsUpdate = true;
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
|
|
178
210
|
_defineProperty(_assertThisInitialized(_this), "redraw", function () {
|
|
179
211
|
return _this._redraw && _this._redraw();
|
|
180
212
|
});
|
|
181
213
|
|
|
182
214
|
_defineProperty(_assertThisInitialized(_this), "updateView", (0, _SyncCurrentFunction.syncCurrent)( /*#__PURE__*/function () {
|
|
183
|
-
var
|
|
215
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(designView) {
|
|
184
216
|
var options,
|
|
185
217
|
_options$forceUpdate,
|
|
186
218
|
forceUpdate,
|
|
@@ -272,7 +304,7 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
272
304
|
}));
|
|
273
305
|
|
|
274
306
|
return function (_x) {
|
|
275
|
-
return
|
|
307
|
+
return _ref2.apply(this, arguments);
|
|
276
308
|
};
|
|
277
309
|
}()));
|
|
278
310
|
|
|
@@ -280,9 +312,9 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
280
312
|
_this._modelBasePath = cfg.modelBasePath;
|
|
281
313
|
}
|
|
282
314
|
|
|
283
|
-
(0, _PropertyObserver.observeProperty)(_assertThisInitialized(_this), "_size", function (
|
|
284
|
-
var value =
|
|
285
|
-
dispose =
|
|
315
|
+
(0, _PropertyObserver.observeProperty)(_assertThisInitialized(_this), "_size", function (_ref3) {
|
|
316
|
+
var value = _ref3.value,
|
|
317
|
+
dispose = _ref3.dispose;
|
|
286
318
|
|
|
287
319
|
if (value.width > 0 && value.height > 0) {
|
|
288
320
|
dispose();
|
|
@@ -324,8 +356,14 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
324
356
|
camera.far = cameraZ - getPlaneZ(this._overlayMode) + 1000;
|
|
325
357
|
camera.position.set(0, 0, cameraZ);
|
|
326
358
|
redrawOnZoomChange && (0, _PropertyObserver.observeProperty)(camera, "zoom", (0, _debounce["default"])(this.redraw, redrawDebounceWait));
|
|
359
|
+
(0, _PropertyObserver.observeProperty)(camera, "zoom", this.updateModelTextureFilter);
|
|
327
360
|
return camera;
|
|
328
361
|
}
|
|
362
|
+
}, {
|
|
363
|
+
key: "setOptions",
|
|
364
|
+
value: function setOptions(options) {
|
|
365
|
+
this._options = _objectSpread(_objectSpread({}, this._options), options);
|
|
366
|
+
}
|
|
329
367
|
}, {
|
|
330
368
|
key: "createCamera",
|
|
331
369
|
value: function createCamera() {
|
|
@@ -335,9 +373,9 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
335
373
|
}
|
|
336
374
|
}, {
|
|
337
375
|
key: "setSize",
|
|
338
|
-
value: function setSize(
|
|
339
|
-
var width =
|
|
340
|
-
height =
|
|
376
|
+
value: function setSize(_ref4) {
|
|
377
|
+
var width = _ref4.width,
|
|
378
|
+
height = _ref4.height;
|
|
341
379
|
var rerender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
342
380
|
|
|
343
381
|
_get(_getPrototypeOf(Three2D.prototype), "setSize", this).call(this, {
|
|
@@ -367,12 +405,12 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
367
405
|
}, {
|
|
368
406
|
key: "setCameraPositionToCurrentDesignArea",
|
|
369
407
|
value: function setCameraPositionToCurrentDesignArea() {
|
|
370
|
-
var
|
|
408
|
+
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
371
409
|
animate: false,
|
|
372
410
|
duration: {}
|
|
373
411
|
},
|
|
374
|
-
animate =
|
|
375
|
-
duration =
|
|
412
|
+
animate = _ref5.animate,
|
|
413
|
+
duration = _ref5.duration;
|
|
376
414
|
|
|
377
415
|
var designArea = this._currentDesignArea || (0, _first["default"])(this._designAreaList);
|
|
378
416
|
var obj = designArea && this.findAreaObjectByName(designArea.identifier);
|
|
@@ -463,16 +501,16 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
463
501
|
var size = new _three.Vector2();
|
|
464
502
|
this.renderer.getSize(size);
|
|
465
503
|
|
|
466
|
-
var
|
|
504
|
+
var _ref6 = this.camera.view ? this.camera.view : {
|
|
467
505
|
width: size.x,
|
|
468
506
|
height: size.y,
|
|
469
507
|
offsetX: 0,
|
|
470
508
|
offsetY: 0
|
|
471
509
|
},
|
|
472
|
-
width =
|
|
473
|
-
height =
|
|
474
|
-
offsetX =
|
|
475
|
-
offsetY =
|
|
510
|
+
width = _ref6.width,
|
|
511
|
+
height = _ref6.height,
|
|
512
|
+
offsetX = _ref6.offsetX,
|
|
513
|
+
offsetY = _ref6.offsetY;
|
|
476
514
|
|
|
477
515
|
var realWidth = this._size.width * zoom;
|
|
478
516
|
var realHeight = this._size.height * zoom;
|
|
@@ -664,7 +702,7 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
664
702
|
availableDesignAreas = (0, _get2["default"])(this._currentDesignView, "designAreas") || [];
|
|
665
703
|
_context5.next = 6;
|
|
666
704
|
return Promise.all(availableDesignAreas.map( /*#__PURE__*/function () {
|
|
667
|
-
var
|
|
705
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(designArea) {
|
|
668
706
|
var material, _this4$getCanvasConte, ctx, canvas, texture, getTextureBuilder, width, height;
|
|
669
707
|
|
|
670
708
|
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
@@ -707,7 +745,7 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
707
745
|
}));
|
|
708
746
|
|
|
709
747
|
return function (_x3) {
|
|
710
|
-
return
|
|
748
|
+
return _ref7.apply(this, arguments);
|
|
711
749
|
};
|
|
712
750
|
}()));
|
|
713
751
|
|
|
@@ -878,8 +916,13 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
878
916
|
case 7:
|
|
879
917
|
image = _context8.sent;
|
|
880
918
|
this.onLoadFinished();
|
|
881
|
-
tex = new _three.Texture((0, _optimizeTextureImage.optimizeTextureImage)(image, MAX_TEXTURE_SIZE, MIN_TEXTURE_SIZE));
|
|
882
|
-
tex.premultiplyAlpha =
|
|
919
|
+
tex = new _three.Texture(this._options.optimizeProductImage ? (0, _optimizeTextureImage.optimizeTextureImage)(image, MAX_TEXTURE_SIZE, MIN_TEXTURE_SIZE) : image);
|
|
920
|
+
tex.premultiplyAlpha = this._options.premultiplyAlpha;
|
|
921
|
+
|
|
922
|
+
if (this._options.sharperFullView) {
|
|
923
|
+
tex.magFilter = _three.NearestFilter;
|
|
924
|
+
}
|
|
925
|
+
|
|
883
926
|
tex.originalSize = (0, _getImageSize.getImageSize)(image);
|
|
884
927
|
tex.needsUpdate = true;
|
|
885
928
|
this.initModelWithTexture(tex);
|
|
@@ -888,7 +931,7 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
888
931
|
this.render();
|
|
889
932
|
}
|
|
890
933
|
|
|
891
|
-
case
|
|
934
|
+
case 16:
|
|
892
935
|
case "end":
|
|
893
936
|
return _context8.stop();
|
|
894
937
|
}
|
|
@@ -1026,9 +1069,9 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
1026
1069
|
w = _max$sub.x,
|
|
1027
1070
|
h = _max$sub.y;
|
|
1028
1071
|
|
|
1029
|
-
var
|
|
1030
|
-
cWidth =
|
|
1031
|
-
cHeight =
|
|
1072
|
+
var _ref9 = this._fitSize || this.renderer.getSize(new _three.Vector2()),
|
|
1073
|
+
cWidth = _ref9.width,
|
|
1074
|
+
cHeight = _ref9.height;
|
|
1032
1075
|
|
|
1033
1076
|
return Math.max(cWidth / w, cHeight / h);
|
|
1034
1077
|
}
|
|
@@ -1083,7 +1126,7 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
1083
1126
|
}, {
|
|
1084
1127
|
key: "getModelPathFromDesignView",
|
|
1085
1128
|
value: function getModelPathFromDesignView(designView) {
|
|
1086
|
-
var images = (0, _get2["default"])(designView,
|
|
1129
|
+
var images = (0, _get2["default"])(designView, "images");
|
|
1087
1130
|
|
|
1088
1131
|
if (this._materialVariantPath && images.hasOwnProperty(this._materialVariantPath)) {
|
|
1089
1132
|
return images[this._materialVariantPath];
|
|
@@ -1385,7 +1428,7 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
1385
1428
|
}, {
|
|
1386
1429
|
key: "getScreenshots",
|
|
1387
1430
|
value: function () {
|
|
1388
|
-
var _getScreenshots = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15(callback,
|
|
1431
|
+
var _getScreenshots = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15(callback, _ref10) {
|
|
1389
1432
|
var _this9 = this;
|
|
1390
1433
|
|
|
1391
1434
|
var designViewList, areaList, variantList, size, removeTempOverlay, origDesignView, designAreaList, variants, screenshots, origVariantPath, origSize, origPixelRatio, restoreOriginalValues, camera, views, _iterator, _step, _loop, _ret;
|
|
@@ -1394,7 +1437,7 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
1394
1437
|
while (1) {
|
|
1395
1438
|
switch (_context17.prev = _context17.next) {
|
|
1396
1439
|
case 0:
|
|
1397
|
-
designViewList =
|
|
1440
|
+
designViewList = _ref10.designViewList, areaList = _ref10.areaList, variantList = _ref10.variantList, size = _ref10.size;
|
|
1398
1441
|
|
|
1399
1442
|
if (this.renderer) {
|
|
1400
1443
|
_context17.next = 3;
|
|
@@ -1429,7 +1472,7 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
1429
1472
|
origPixelRatio = this.renderer.getPixelRatio();
|
|
1430
1473
|
|
|
1431
1474
|
restoreOriginalValues = /*#__PURE__*/function () {
|
|
1432
|
-
var
|
|
1475
|
+
var _ref11 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() {
|
|
1433
1476
|
return regeneratorRuntime.wrap(function _callee13$(_context13) {
|
|
1434
1477
|
while (1) {
|
|
1435
1478
|
switch (_context13.prev = _context13.next) {
|
|
@@ -1459,14 +1502,14 @@ var Three2D = /*#__PURE__*/function (_ThreeBase) {
|
|
|
1459
1502
|
}));
|
|
1460
1503
|
|
|
1461
1504
|
return function restoreOriginalValues() {
|
|
1462
|
-
return
|
|
1505
|
+
return _ref11.apply(this, arguments);
|
|
1463
1506
|
};
|
|
1464
1507
|
}();
|
|
1465
1508
|
|
|
1466
1509
|
camera = this.createCameraBase();
|
|
1467
1510
|
this._screenshotCamera = camera;
|
|
1468
|
-
views = designViewList || designAreaList.map(function (
|
|
1469
|
-
var designView =
|
|
1511
|
+
views = designViewList || designAreaList.map(function (_ref12) {
|
|
1512
|
+
var designView = _ref12.designView;
|
|
1470
1513
|
return designView;
|
|
1471
1514
|
});
|
|
1472
1515
|
_iterator = _createForOfIteratorHelper(variants);
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "redhotmagma-visualization",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.32.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "./index.js",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@babel/polyfill": "^7.12.1",
|
|
9
|
-
"@configuratorware/scripts": "1.
|
|
9
|
+
"@configuratorware/scripts": "1.32.0",
|
|
10
10
|
"@tweenjs/tween.js": "^17.6.0",
|
|
11
11
|
"console-polyfill": "^0.3.0",
|
|
12
12
|
"css-element-queries": "^1.2.3",
|
package/src/Three/Three2D.js
CHANGED
|
@@ -6,6 +6,8 @@ import {
|
|
|
6
6
|
ImageLoader,
|
|
7
7
|
Mesh,
|
|
8
8
|
MeshBasicMaterial,
|
|
9
|
+
NearestFilter,
|
|
10
|
+
LinearFilter,
|
|
9
11
|
OrthographicCamera,
|
|
10
12
|
PlaneGeometry,
|
|
11
13
|
Texture,
|
|
@@ -74,6 +76,11 @@ export class Three2D extends ThreeBase {
|
|
|
74
76
|
_modelBasePath = "";
|
|
75
77
|
_modelPath = null;
|
|
76
78
|
_overlayMode = false;
|
|
79
|
+
_options = {
|
|
80
|
+
sharperFullView: false, // when zoom = 1 use NearestFilter for sharper product image
|
|
81
|
+
optimizeProductImage: false, // upscale or downscale the product image to fit 2048 x 2048
|
|
82
|
+
premultiplyAlpha: false,
|
|
83
|
+
};
|
|
77
84
|
_imageRepository = createImageRepository(
|
|
78
85
|
createCache(20),
|
|
79
86
|
src =>
|
|
@@ -119,9 +126,34 @@ export class Three2D extends ThreeBase {
|
|
|
119
126
|
camera.position.set(0, 0, cameraZ);
|
|
120
127
|
redrawOnZoomChange &&
|
|
121
128
|
observeProperty(camera, "zoom", debounce(this.redraw, redrawDebounceWait));
|
|
129
|
+
observeProperty(camera, "zoom", this.updateModelTextureFilter);
|
|
122
130
|
return camera;
|
|
123
131
|
}
|
|
124
132
|
|
|
133
|
+
updateModelTextureFilter = ({ value: currentZoom }) => {
|
|
134
|
+
if (!this._options.sharperFullView) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const tex = this._model?.material?.map;
|
|
138
|
+
if (!tex) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (currentZoom === 1) {
|
|
142
|
+
tex.magFilter = NearestFilter;
|
|
143
|
+
tex.needsUpdate = true;
|
|
144
|
+
} else if (tex.magFilter !== LinearFilter) {
|
|
145
|
+
tex.magFilter = LinearFilter;
|
|
146
|
+
tex.needsUpdate = true;
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
setOptions(options) {
|
|
151
|
+
this._options = {
|
|
152
|
+
...this._options,
|
|
153
|
+
...options,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
|
|
125
157
|
createCamera() {
|
|
126
158
|
return this.createCameraBase({ redrawOnZoomChange: true });
|
|
127
159
|
}
|
|
@@ -441,8 +473,15 @@ export class Three2D extends ThreeBase {
|
|
|
441
473
|
const image = await this._imageRepository.loadImage(url);
|
|
442
474
|
this.onLoadFinished();
|
|
443
475
|
|
|
444
|
-
const tex = new Texture(
|
|
445
|
-
|
|
476
|
+
const tex = new Texture(
|
|
477
|
+
this._options.optimizeProductImage
|
|
478
|
+
? optimizeTextureImage(image, MAX_TEXTURE_SIZE, MIN_TEXTURE_SIZE)
|
|
479
|
+
: image
|
|
480
|
+
);
|
|
481
|
+
tex.premultiplyAlpha = this._options.premultiplyAlpha;
|
|
482
|
+
if (this._options.sharperFullView) {
|
|
483
|
+
tex.magFilter = NearestFilter;
|
|
484
|
+
}
|
|
446
485
|
tex.originalSize = getImageSize(image);
|
|
447
486
|
tex.needsUpdate = true;
|
|
448
487
|
|
|
@@ -600,17 +639,15 @@ export class Three2D extends ThreeBase {
|
|
|
600
639
|
}
|
|
601
640
|
|
|
602
641
|
getModelPathFromDesignView(designView) {
|
|
603
|
-
const images = get(designView,
|
|
642
|
+
const images = get(designView, "images");
|
|
604
643
|
if (this._materialVariantPath && images.hasOwnProperty(this._materialVariantPath)) {
|
|
605
644
|
return images[this._materialVariantPath];
|
|
606
|
-
}
|
|
607
|
-
else if (images.hasOwnProperty(this._itemPath)) {
|
|
645
|
+
} else if (images.hasOwnProperty(this._itemPath)) {
|
|
608
646
|
return images[this._itemPath];
|
|
609
|
-
}
|
|
610
|
-
else {
|
|
647
|
+
} else {
|
|
611
648
|
return this._materialVariantPath
|
|
612
|
-
|
|
613
|
-
|
|
649
|
+
? get(designView, `images[${this._materialVariantPath}]`)
|
|
650
|
+
: get(designView, `images[${this._itemPath}]`);
|
|
614
651
|
}
|
|
615
652
|
}
|
|
616
653
|
|