@abi-software/scaffoldvuer 0.1.50-beta-1 → 0.1.52-beta.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/dist/scaffoldvuer.common.js +1409 -1533
- package/dist/scaffoldvuer.common.js.map +1 -1
- package/dist/scaffoldvuer.css +1 -1
- package/dist/scaffoldvuer.umd.js +1409 -1533
- package/dist/scaffoldvuer.umd.js.map +1 -1
- package/dist/scaffoldvuer.umd.min.js +1 -1
- package/dist/scaffoldvuer.umd.min.js.map +1 -1
- package/package-lock.json +2872 -1645
- package/package.json +5 -6
- package/src/App.vue +79 -4
- package/src/components/ScaffoldVuer.vue +57 -30
- package/src/components/TraditionalControls.vue +17 -24
- package/src/scripts/BaseModule.js +80 -0
- package/src/scripts/RendererModule.js +263 -0
- package/src/scripts/WebGL.js +94 -0
- package/src/scripts/annotation.js +5 -0
- package/src/scripts/eventNotifier.js +65 -0
- package/src/scripts/graphicsHighlight.js +132 -0
- package/src/scripts/organsRenderer.js +536 -0
- package/vue.config.js +1 -1
package/dist/scaffoldvuer.umd.js
CHANGED
|
@@ -110,125 +110,69 @@ module.exports = require("element-ui/lib/checkbox-group");
|
|
|
110
110
|
|
|
111
111
|
/***/ }),
|
|
112
112
|
|
|
113
|
-
/***/ "
|
|
113
|
+
/***/ "0676":
|
|
114
114
|
/***/ (function(module, exports) {
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
function _nonIterableSpread() {
|
|
117
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
module.exports = _nonIterableSpread;
|
|
117
121
|
|
|
118
122
|
/***/ }),
|
|
119
123
|
|
|
120
|
-
/***/ "
|
|
121
|
-
/***/ (function(module, exports) {
|
|
124
|
+
/***/ "09a4":
|
|
125
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
122
126
|
|
|
123
|
-
|
|
127
|
+
// extracted by mini-css-extract-plugin
|
|
124
128
|
|
|
125
129
|
/***/ }),
|
|
126
130
|
|
|
127
|
-
/***/ "
|
|
131
|
+
/***/ "0cf4":
|
|
128
132
|
/***/ (function(module, exports) {
|
|
129
133
|
|
|
130
|
-
module.exports = require("element-ui/lib/theme-chalk/
|
|
134
|
+
module.exports = require("element-ui/lib/theme-chalk/checkbox-group.css");
|
|
131
135
|
|
|
132
136
|
/***/ }),
|
|
133
137
|
|
|
134
|
-
/***/ "
|
|
138
|
+
/***/ "0de2":
|
|
135
139
|
/***/ (function(module, exports) {
|
|
136
140
|
|
|
137
|
-
|
|
138
|
-
* @author alteredq / http://alteredqualia.com/
|
|
139
|
-
* @author mr.doob / http://mrdoob.com/
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
exports.WEBGL = {
|
|
143
|
-
|
|
144
|
-
isWebGLAvailable: function () {
|
|
145
|
-
|
|
146
|
-
try {
|
|
147
|
-
|
|
148
|
-
var canvas = document.createElement( 'canvas' );
|
|
149
|
-
return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) );
|
|
150
|
-
|
|
151
|
-
} catch ( e ) {
|
|
152
|
-
|
|
153
|
-
return false;
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
},
|
|
158
|
-
|
|
159
|
-
isWebGL2Available: function () {
|
|
160
|
-
|
|
161
|
-
try {
|
|
162
|
-
|
|
163
|
-
var canvas = document.createElement( 'canvas' );
|
|
164
|
-
return !! ( window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ) );
|
|
165
|
-
|
|
166
|
-
} catch ( e ) {
|
|
167
|
-
|
|
168
|
-
return false;
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
},
|
|
173
|
-
|
|
174
|
-
getWebGLErrorMessage: function () {
|
|
175
|
-
|
|
176
|
-
return this.getErrorMessage( 1 );
|
|
177
|
-
|
|
178
|
-
},
|
|
179
|
-
|
|
180
|
-
getWebGL2ErrorMessage: function () {
|
|
181
|
-
|
|
182
|
-
return this.getErrorMessage( 2 );
|
|
183
|
-
|
|
184
|
-
},
|
|
185
|
-
|
|
186
|
-
getErrorMessage: function ( version ) {
|
|
141
|
+
module.exports = require("element-ui/lib/select");
|
|
187
142
|
|
|
188
|
-
|
|
189
|
-
1: 'WebGL',
|
|
190
|
-
2: 'WebGL 2'
|
|
191
|
-
};
|
|
143
|
+
/***/ }),
|
|
192
144
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
2: window.WebGL2RenderingContext
|
|
196
|
-
};
|
|
145
|
+
/***/ "0fe2":
|
|
146
|
+
/***/ (function(module, exports) {
|
|
197
147
|
|
|
198
|
-
|
|
148
|
+
module.exports = require("element-ui/lib/theme-chalk/select.css");
|
|
199
149
|
|
|
200
|
-
|
|
201
|
-
element.id = 'webglmessage';
|
|
202
|
-
element.style.fontFamily = 'monospace';
|
|
203
|
-
element.style.fontSize = '20px';
|
|
204
|
-
element.style.fontWeight = 'normal';
|
|
205
|
-
element.style.textAlign = 'center';
|
|
206
|
-
element.style.background = '#fff';
|
|
207
|
-
element.style.color = '#000';
|
|
208
|
-
element.style.padding = '1.5em';
|
|
209
|
-
element.style.width = '400px';
|
|
210
|
-
element.style.margin = '5em auto 0';
|
|
150
|
+
/***/ }),
|
|
211
151
|
|
|
212
|
-
|
|
152
|
+
/***/ "11b0":
|
|
153
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
213
154
|
|
|
214
|
-
|
|
155
|
+
__webpack_require__("6049");
|
|
215
156
|
|
|
216
|
-
|
|
157
|
+
__webpack_require__("51e9");
|
|
217
158
|
|
|
218
|
-
|
|
159
|
+
__webpack_require__("02ac");
|
|
219
160
|
|
|
220
|
-
|
|
161
|
+
__webpack_require__("e42b");
|
|
221
162
|
|
|
222
|
-
|
|
163
|
+
__webpack_require__("8c84");
|
|
223
164
|
|
|
224
|
-
|
|
165
|
+
__webpack_require__("850c");
|
|
225
166
|
|
|
226
|
-
|
|
167
|
+
__webpack_require__("907b");
|
|
227
168
|
|
|
228
|
-
|
|
169
|
+
__webpack_require__("1ce0");
|
|
229
170
|
|
|
230
|
-
|
|
171
|
+
function _iterableToArray(iter) {
|
|
172
|
+
if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
|
|
173
|
+
}
|
|
231
174
|
|
|
175
|
+
module.exports = _iterableToArray;
|
|
232
176
|
|
|
233
177
|
/***/ }),
|
|
234
178
|
|
|
@@ -239,13 +183,6 @@ module.exports = require("core-js/modules/es.array.for-each");
|
|
|
239
183
|
|
|
240
184
|
/***/ }),
|
|
241
185
|
|
|
242
|
-
/***/ "1823":
|
|
243
|
-
/***/ (function(module, exports) {
|
|
244
|
-
|
|
245
|
-
module.exports = "precision highp float;\n\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\n\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec3 color;\nattribute vec2 uv;\nattribute vec3 position_1;\nattribute vec3 position_2;\nattribute vec2 uv_1;\nattribute vec2 uv_2;\n\nuniform float time;\nuniform float slide_pos;\nvarying vec2 vUv;\n\nvoid main() {\n\tvUv = uv;\n\t\n\tvec3 transformed_xi1 = position * vec3(1.0 - time) + position_1 * vec3(time);\n\t\n\tvec3 xi0_time_1 = vec3(position_1.x, position_1.y, 0.0);\n\tvec3 transformed_xi0 = position_2 * vec3(1.0 - time) + xi0_time_1 * vec3(time);\n\n\tvec3 transformed = vec3(transformed_xi0) * vec3(1.0 - slide_pos) + vec3(transformed_xi1) * vec3(slide_pos);\n\t\n\tvec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\n}\n"
|
|
246
|
-
|
|
247
|
-
/***/ }),
|
|
248
|
-
|
|
249
186
|
/***/ "18d2":
|
|
250
187
|
/***/ (function(module, exports) {
|
|
251
188
|
|
|
@@ -265,6 +202,17 @@ module.exports = require("element-ui/lib/container");
|
|
|
265
202
|
|
|
266
203
|
module.exports = require("core-js/modules/web.dom-collections.iterator");
|
|
267
204
|
|
|
205
|
+
/***/ }),
|
|
206
|
+
|
|
207
|
+
/***/ "1f67":
|
|
208
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
209
|
+
|
|
210
|
+
"use strict";
|
|
211
|
+
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_023c058f_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("09a4");
|
|
212
|
+
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_023c058f_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_023c058f_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
|
|
213
|
+
/* unused harmony reexport * */
|
|
214
|
+
|
|
215
|
+
|
|
268
216
|
/***/ }),
|
|
269
217
|
|
|
270
218
|
/***/ "1fe8":
|
|
@@ -292,10 +240,16 @@ module.exports = require("core-js/modules/es.object.keys");
|
|
|
292
240
|
|
|
293
241
|
/***/ }),
|
|
294
242
|
|
|
295
|
-
/***/ "
|
|
243
|
+
/***/ "2236":
|
|
296
244
|
/***/ (function(module, exports, __webpack_require__) {
|
|
297
245
|
|
|
298
|
-
|
|
246
|
+
var arrayLikeToArray = __webpack_require__("5a43");
|
|
247
|
+
|
|
248
|
+
function _arrayWithoutHoles(arr) {
|
|
249
|
+
if (Array.isArray(arr)) return arrayLikeToArray(arr);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
module.exports = _arrayWithoutHoles;
|
|
299
253
|
|
|
300
254
|
/***/ }),
|
|
301
255
|
|
|
@@ -355,133 +309,47 @@ module.exports = require("element-ui/lib/drawer");
|
|
|
355
309
|
|
|
356
310
|
/***/ }),
|
|
357
311
|
|
|
358
|
-
/***/ "
|
|
359
|
-
/***/ (function(module,
|
|
360
|
-
|
|
361
|
-
var MODULE_CHANGE = { ALL: 0, DESTROYED: 1, NAME_CHANGED: 2, SETTINGS_CHANGED: 3 };
|
|
362
|
-
|
|
363
|
-
var BaseModule = function() {
|
|
364
|
-
this.typeName = "Base Module";
|
|
365
|
-
this.instanceName = "default";
|
|
366
|
-
this.onChangedCallbacks = [];
|
|
367
|
-
this.messageFunction = undefined;
|
|
368
|
-
/** Notifier handle for informing other modules of any changes **/
|
|
369
|
-
this.eventNotifiers = [];
|
|
370
|
-
this.broadcastChannels = {};
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
BaseModule.prototype.setName = function(name) {
|
|
374
|
-
if (name && this.instanceName !== name) {
|
|
375
|
-
this.instanceName = name;
|
|
376
|
-
var callbackArray = this.onChangedCallbacks.slice();
|
|
377
|
-
for (var i = 0; i < callbackArray.length; i++) {
|
|
378
|
-
callbackArray[i]( this, MODULE_CHANGE.NAME_CHANGED );
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
BaseModule.prototype.addBroadcastChannels = function(ChannelName) {
|
|
384
|
-
if (ChannelName in this.broadcastChannels)
|
|
385
|
-
return false;
|
|
386
|
-
var newChannel = new (__webpack_require__("c45a")).default(ChannelName);
|
|
387
|
-
this.broadcastChannels[ChannelName] = newChannel;
|
|
388
|
-
return true;
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
BaseModule.prototype.removeBroadcastChannels = function(ChannelName) {
|
|
392
|
-
if (ChannelName in this.broadcastChannels) {
|
|
393
|
-
this.broadcastChannels[ChannelName].close();
|
|
394
|
-
delete broadcastChannels[ChannelName];
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
}
|
|
312
|
+
/***/ "3a59":
|
|
313
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
398
314
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
}
|
|
404
|
-
}
|
|
315
|
+
"use strict";
|
|
316
|
+
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_335c5764_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4646");
|
|
317
|
+
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_335c5764_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_335c5764_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
|
|
318
|
+
/* unused harmony reexport * */
|
|
405
319
|
|
|
406
|
-
BaseModule.prototype.exportSettings = function() {
|
|
407
|
-
var settings = {};
|
|
408
|
-
settings.dialog = this.typeName;
|
|
409
|
-
settings.name = this.instanceName;
|
|
410
|
-
return settings;
|
|
411
|
-
}
|
|
412
320
|
|
|
413
|
-
|
|
414
|
-
if (settings.dialog == this.typeName) {
|
|
415
|
-
this.setName(settings.name);
|
|
416
|
-
return true;
|
|
417
|
-
}
|
|
418
|
-
return false;
|
|
419
|
-
}
|
|
321
|
+
/***/ }),
|
|
420
322
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
this.eventNotifiers[i].publish(this, eventType, annotations);
|
|
424
|
-
}
|
|
425
|
-
if (eventType === __webpack_require__("549c").EVENT_TYPE.SELECTED) {
|
|
426
|
-
if (annotations && annotations[0]) {
|
|
427
|
-
var annotation = annotations[0];
|
|
428
|
-
var data = {action: "query-data", resource: annotation.data.id, data: annotation.data, sender: this.instanceName};
|
|
429
|
-
for (var key in this.broadcastChannels) {
|
|
430
|
-
this.broadcastChannels[key].postMessage(data);
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
}
|
|
323
|
+
/***/ "429c":
|
|
324
|
+
/***/ (function(module, exports) {
|
|
435
325
|
|
|
436
|
-
|
|
437
|
-
this.messageFunction = functionIn;
|
|
438
|
-
}
|
|
326
|
+
module.exports = require("@abi-software/svg-sprite");
|
|
439
327
|
|
|
440
|
-
|
|
441
|
-
if (this.messageFunction)
|
|
442
|
-
this.messageFunction(message);
|
|
443
|
-
}
|
|
328
|
+
/***/ }),
|
|
444
329
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
}
|
|
330
|
+
/***/ "448a":
|
|
331
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
448
332
|
|
|
449
|
-
|
|
450
|
-
//Make a temorary copy as the array may be altered during the loop
|
|
451
|
-
var callbackArray = this.onChangedCallbacks.slice();
|
|
452
|
-
for (var i = 0; i < callbackArray.length; i++) {
|
|
453
|
-
callbackArray[i]( this, MODULE_CHANGE.DESTROYED );
|
|
454
|
-
}
|
|
333
|
+
var arrayWithoutHoles = __webpack_require__("2236");
|
|
455
334
|
|
|
456
|
-
|
|
457
|
-
}
|
|
335
|
+
var iterableToArray = __webpack_require__("11b0");
|
|
458
336
|
|
|
459
|
-
|
|
460
|
-
if (this.onChangedCallbacks.includes(callback) == false)
|
|
461
|
-
this.onChangedCallbacks.push(callback);
|
|
462
|
-
}
|
|
337
|
+
var unsupportedIterableToArray = __webpack_require__("6613");
|
|
463
338
|
|
|
464
|
-
|
|
465
|
-
var index = this.onChangedCallbacks.indexOf(callback);
|
|
466
|
-
if (index > -1) {
|
|
467
|
-
this.onChangedCallbacks.splice(index, 1);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
339
|
+
var nonIterableSpread = __webpack_require__("0676");
|
|
470
340
|
|
|
471
|
-
|
|
472
|
-
|
|
341
|
+
function _toConsumableArray(arr) {
|
|
342
|
+
return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
|
|
473
343
|
}
|
|
474
344
|
|
|
475
|
-
exports
|
|
476
|
-
exports.MODULE_CHANGE = MODULE_CHANGE;
|
|
477
|
-
|
|
345
|
+
module.exports = _toConsumableArray;
|
|
478
346
|
|
|
479
347
|
/***/ }),
|
|
480
348
|
|
|
481
|
-
/***/ "
|
|
482
|
-
/***/ (function(module, exports) {
|
|
349
|
+
/***/ "4646":
|
|
350
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
483
351
|
|
|
484
|
-
|
|
352
|
+
// extracted by mini-css-extract-plugin
|
|
485
353
|
|
|
486
354
|
/***/ }),
|
|
487
355
|
|
|
@@ -506,13 +374,6 @@ module.exports = require("lodash/uniq");
|
|
|
506
374
|
|
|
507
375
|
/***/ }),
|
|
508
376
|
|
|
509
|
-
/***/ "4e8a":
|
|
510
|
-
/***/ (function(module, exports) {
|
|
511
|
-
|
|
512
|
-
module.exports = "precision highp float;\nuniform sampler2D myTex;\nvarying vec2 vUv;\n\nvoid main() {\n\tgl_FragColor = texture2D( myTex, vUv );\n\n}\n"
|
|
513
|
-
|
|
514
|
-
/***/ }),
|
|
515
|
-
|
|
516
377
|
/***/ "51c7":
|
|
517
378
|
/***/ (function(module, exports) {
|
|
518
379
|
|
|
@@ -534,139 +395,31 @@ module.exports = require("core-js/modules/es.regexp.exec");
|
|
|
534
395
|
|
|
535
396
|
/***/ }),
|
|
536
397
|
|
|
537
|
-
/***/ "
|
|
538
|
-
/***/ (function(module, exports) {
|
|
539
|
-
|
|
540
|
-
var EVENT_TYPE = { ALL: 0, SELECTED: 1, HIGHLIGHTED: 2 };
|
|
541
|
-
|
|
542
|
-
var SelectionEvent = function(eventTypeIn, identifiersIn) {
|
|
543
|
-
this.eventType = eventTypeIn;
|
|
544
|
-
this.identifiers = identifiersIn;
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
var returnFullID = function(sourceId) {
|
|
548
|
-
//return full annotations with all different name
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
var Subscription = function(subscriberIn, callbackIn, eventType) {
|
|
552
|
-
this.targetedID = [];
|
|
553
|
-
var subscriber = subscriberIn;
|
|
554
|
-
if (eventType === undefined)
|
|
555
|
-
this.targetEventType = EVENT_TYPE.ALL;
|
|
556
|
-
else
|
|
557
|
-
this.targetEventType = eventType;
|
|
558
|
-
var callback = callbackIn;
|
|
559
|
-
|
|
560
|
-
var _this = this;
|
|
561
|
-
|
|
562
|
-
this.getEventType = function() {
|
|
563
|
-
return eventType;
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
this.notify = function(source, eventType, ids) {
|
|
567
|
-
if (source !== subscriber && (_this.targetEventType === EVENT_TYPE.ALL ||
|
|
568
|
-
_this.targetEventType === eventType)) {
|
|
569
|
-
//should support different type of id e.g lyph, name, fmas...
|
|
570
|
-
//need a function that finds all relavant ids
|
|
571
|
-
var event = new SelectionEvent(eventType, ids);
|
|
572
|
-
callback(event);
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
exports.EventNotifier = function() {
|
|
578
|
-
var events = [];
|
|
579
|
-
var subscriptions = [];
|
|
580
|
-
var _this = this;
|
|
581
|
-
|
|
582
|
-
this.publish = function(source, eventType, id) {
|
|
583
|
-
for (var i = 0; i < subscriptions.length;i++) {
|
|
584
|
-
subscriptions[i].notify(source, eventType, id);
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
this.subscribe = function(subscriber, callbackFunction, eventType) {
|
|
589
|
-
if (typeof callbackFunction === "function") {
|
|
590
|
-
var subscription = new Subscription(subscriber, callbackFunction, eventType);
|
|
591
|
-
subscriptions.push(subscription);
|
|
592
|
-
return subscription;
|
|
593
|
-
}
|
|
594
|
-
return undefined;
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
this.unsubscribe = function(subscription) {
|
|
598
|
-
for (var i = 0; i < subscriptions.length;i++) {
|
|
599
|
-
if (subscription === subscriptions[i]) {
|
|
600
|
-
subscriptions.splice(i, 1);
|
|
601
|
-
return;
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
exports.EVENT_TYPE = EVENT_TYPE;
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
/***/ }),
|
|
611
|
-
|
|
612
|
-
/***/ "55ee":
|
|
613
|
-
/***/ (function(module, exports) {
|
|
614
|
-
|
|
615
|
-
module.exports = require("element-ui/lib/theme-chalk/checkbox.css");
|
|
616
|
-
|
|
617
|
-
/***/ }),
|
|
618
|
-
|
|
619
|
-
/***/ "5810":
|
|
398
|
+
/***/ "53d7":
|
|
620
399
|
/***/ (function(module, exports, __webpack_require__) {
|
|
621
400
|
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
/***/ }),
|
|
625
|
-
|
|
626
|
-
/***/ "5fef":
|
|
627
|
-
/***/ (function(module, exports) {
|
|
628
|
-
|
|
629
|
-
module.exports = require("core-js/modules/es.regexp.to-string");
|
|
630
|
-
|
|
631
|
-
/***/ }),
|
|
632
|
-
|
|
633
|
-
/***/ "6049":
|
|
634
|
-
/***/ (function(module, exports) {
|
|
635
|
-
|
|
636
|
-
module.exports = require("core-js/modules/es.symbol");
|
|
637
|
-
|
|
638
|
-
/***/ }),
|
|
639
|
-
|
|
640
|
-
/***/ "642d":
|
|
641
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
642
|
-
|
|
643
|
-
"use strict";
|
|
644
|
-
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7d9b");
|
|
645
|
-
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
|
|
646
|
-
/* unused harmony reexport * */
|
|
647
|
-
|
|
401
|
+
__webpack_require__("ab7e");
|
|
648
402
|
|
|
649
|
-
|
|
403
|
+
__webpack_require__("7c81");
|
|
650
404
|
|
|
651
|
-
|
|
652
|
-
/***/ (function(module, exports) {
|
|
405
|
+
__webpack_require__("bcd8");
|
|
653
406
|
|
|
654
|
-
|
|
407
|
+
__webpack_require__("2175");
|
|
655
408
|
|
|
656
|
-
|
|
409
|
+
__webpack_require__("fd48");
|
|
657
410
|
|
|
658
|
-
|
|
659
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
411
|
+
var _typeof = __webpack_require__("7037");
|
|
660
412
|
|
|
661
|
-
var THREE = __webpack_require__("9206").THREE;
|
|
662
|
-
// Current model's associate data, data fields, external link, nerve map
|
|
413
|
+
var THREE = __webpack_require__("9206").THREE; // Current model's associate data, data fields, external link, nerve map
|
|
663
414
|
// informations,
|
|
664
415
|
// these are proived in the organsFileMap array.
|
|
665
|
-
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
var OrgansSceneData = function OrgansSceneData() {
|
|
666
419
|
this.currentName = "";
|
|
667
420
|
this.currentSystem = "";
|
|
668
421
|
this.currentPart = "";
|
|
669
|
-
this.currentSpecies
|
|
422
|
+
this.currentSpecies = "";
|
|
670
423
|
this.metaURL = "";
|
|
671
424
|
this.viewURL = "";
|
|
672
425
|
this.geometries = [];
|
|
@@ -675,12 +428,7 @@ var OrgansSceneData = function() {
|
|
|
675
428
|
this.pointsets = [];
|
|
676
429
|
this.currentTime = 0.0;
|
|
677
430
|
this.timeVarying = false;
|
|
678
|
-
|
|
679
|
-
// informations,
|
|
680
|
-
this.nerveMap = undefined;
|
|
681
|
-
this.nerveMapIsActive = false;
|
|
682
|
-
}
|
|
683
|
-
|
|
431
|
+
};
|
|
684
432
|
/**
|
|
685
433
|
* Viewer of 3D-organs models. Users can toggle on/off different views. Data is
|
|
686
434
|
* displayed instead if models are not available.
|
|
@@ -695,619 +443,927 @@ var OrgansSceneData = function() {
|
|
|
695
443
|
* @author Alan Wu
|
|
696
444
|
* @returns {PJP.OrgansViewer}
|
|
697
445
|
*/
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
|
|
449
|
+
__webpack_require__("8278").RendererModule.call(this);
|
|
450
|
+
|
|
451
|
+
var _this = this;
|
|
452
|
+
|
|
453
|
+
var pickerScene = undefined;
|
|
454
|
+
this.sceneData = new OrgansSceneData();
|
|
455
|
+
var timeChangedCallbacks = new Array();
|
|
456
|
+
var sceneChangedCallbacks = new Array();
|
|
705
457
|
var organPartAddedCallbacks = new Array();
|
|
706
458
|
var finishDownloadCallback = undefined;
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
if (_this.scene)
|
|
722
|
-
duration = _this.scene.getDuration();
|
|
459
|
+
var modelsLoader = ModelsLoaderIn;
|
|
460
|
+
_this.typeName = "Organ Viewer";
|
|
461
|
+
|
|
462
|
+
this.getSceneData = function () {
|
|
463
|
+
return _this.sceneData;
|
|
464
|
+
};
|
|
465
|
+
/**
|
|
466
|
+
* Used to update internal timer in scene when time slider has changed.
|
|
467
|
+
*/
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
this.updateTime = function (value) {
|
|
471
|
+
var duration = 6000;
|
|
472
|
+
if (_this.scene) duration = _this.scene.getDuration();
|
|
723
473
|
var actualTime = value / 100.0 * duration;
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
var coord = _this.scene.vectorToScreenXY(vector);
|
|
761
|
-
_this.selectedScreenCoordinates.x = coord.x;
|
|
474
|
+
|
|
475
|
+
if (!_this.sceneData.nerveMapIsActive) {
|
|
476
|
+
if (pickerScene) pickerScene.setMorphsTime(actualTime);
|
|
477
|
+
if (_this.scene) _this.scene.setMorphsTime(actualTime);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
_this.sceneData.currentTime = value;
|
|
481
|
+
};
|
|
482
|
+
/**
|
|
483
|
+
* Update the time slider and other renderers/scenes when time has changed.
|
|
484
|
+
*/
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
var preRenderTimeUpdate = function preRenderTimeUpdate() {
|
|
488
|
+
var duration = 3000;
|
|
489
|
+
if (_this.scene) duration = _this.scene.getDuration();
|
|
490
|
+
|
|
491
|
+
var currentTime = _this.zincRenderer.getCurrentTime();
|
|
492
|
+
|
|
493
|
+
for (var i = 0; i < timeChangedCallbacks.length; i++) {
|
|
494
|
+
timeChangedCallbacks[i](currentTime);
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
if (!_this.sceneData.nerveMapIsActive && pickerScene) pickerScene.setMorphsTime(currentTime);
|
|
498
|
+
if (_this.sceneData.nerveMap && _this.sceneData.nerveMap.additionalReader) _this.sceneData.nerveMap.additionalReader.setTime(currentTime / duration);
|
|
499
|
+
_this.sceneData.currentTime = currentTime / duration * 100.0;
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
var postRenderSelectedCoordinatesUpdate = function postRenderSelectedCoordinatesUpdate() {
|
|
503
|
+
if (_this.selectedCenter) {
|
|
504
|
+
var vector = new THREE.Vector3();
|
|
505
|
+
vector.copy(_this.selectedCenter);
|
|
506
|
+
|
|
507
|
+
var coord = _this.scene.vectorToScreenXY(vector);
|
|
508
|
+
|
|
509
|
+
_this.selectedScreenCoordinates.x = coord.x;
|
|
762
510
|
_this.selectedScreenCoordinates.y = coord.y;
|
|
763
511
|
}
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
512
|
+
};
|
|
513
|
+
|
|
514
|
+
var preRenderUpdateCallback = function preRenderUpdateCallback() {
|
|
515
|
+
return function () {
|
|
768
516
|
preRenderTimeUpdate();
|
|
769
|
-
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
var postRenderUpdateCallback = function() {
|
|
773
|
-
|
|
517
|
+
};
|
|
518
|
+
};
|
|
519
|
+
|
|
520
|
+
var postRenderUpdateCallback = function postRenderUpdateCallback() {
|
|
521
|
+
return function () {
|
|
774
522
|
postRenderSelectedCoordinatesUpdate();
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
*/
|
|
781
|
-
this.addTimeChangedCallback = function(callback) {
|
|
782
|
-
if (typeof(callback === "function"))
|
|
783
|
-
timeChangedCallbacks.push(callback);
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
this.setTexturePos = function(value) {
|
|
787
|
-
if (_this.sceneData.nerveMap && _this.sceneData.nerveMap.additionalReader)
|
|
788
|
-
_this.sceneData.nerveMap.additionalReader.setSliderPos(value);
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
this.addLayoutUpdateRequiredCallback = function(callback) {
|
|
792
|
-
if (typeof(callback === "function")) {
|
|
793
|
-
layoutUpdateRequiredCallbacks.push(callback);
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
this.addSceneChangedCallback = function(callback) {
|
|
798
|
-
if (typeof(callback === "function")) {
|
|
799
|
-
sceneChangedCallbacks.push(callback);
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
this.addOrganPartAddedCallback = function(callback) {
|
|
804
|
-
if (typeof(callback === "function"))
|
|
805
|
-
organPartAddedCallbacks.push(callback);
|
|
806
|
-
}
|
|
523
|
+
};
|
|
524
|
+
};
|
|
525
|
+
/**
|
|
526
|
+
* Add a callback which will be called when time has changed
|
|
527
|
+
*/
|
|
807
528
|
|
|
808
|
-
this.setFinishDownloadCallback = function(callback) {
|
|
809
|
-
if (typeof(callback === "function"))
|
|
810
|
-
finishDownloadCallback = callback;
|
|
811
|
-
}
|
|
812
529
|
|
|
813
|
-
this.
|
|
530
|
+
this.addTimeChangedCallback = function (callback) {
|
|
531
|
+
if (_typeof(callback === "function")) timeChangedCallbacks.push(callback);
|
|
532
|
+
};
|
|
533
|
+
|
|
534
|
+
this.setTexturePos = function (value) {
|
|
535
|
+
if (_this.sceneData.nerveMap && _this.sceneData.nerveMap.additionalReader) _this.sceneData.nerveMap.additionalReader.setSliderPos(value);
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
this.addSceneChangedCallback = function (callback) {
|
|
539
|
+
if (_typeof(callback === "function")) {
|
|
540
|
+
sceneChangedCallbacks.push(callback);
|
|
541
|
+
}
|
|
542
|
+
};
|
|
543
|
+
|
|
544
|
+
this.addOrganPartAddedCallback = function (callback) {
|
|
545
|
+
if (_typeof(callback === "function")) organPartAddedCallbacks.push(callback);
|
|
546
|
+
};
|
|
547
|
+
|
|
548
|
+
this.setFinishDownloadCallback = function (callback) {
|
|
549
|
+
if (_typeof(callback === "function")) finishDownloadCallback = callback;
|
|
550
|
+
};
|
|
551
|
+
|
|
552
|
+
this.unsetFinishDownloadCallback = function () {
|
|
814
553
|
finishDownloadCallback = undefined;
|
|
815
|
-
}
|
|
554
|
+
};
|
|
816
555
|
|
|
817
|
-
this.getNamedObjectsToScreenCoordinates = function(name, camera) {
|
|
556
|
+
this.getNamedObjectsToScreenCoordinates = function (name, camera) {
|
|
818
557
|
var vector = new THREE.Vector3();
|
|
819
|
-
vector.setFromMatrixPosition(
|
|
820
|
-
var widthHalf =
|
|
821
|
-
var heightHalf =
|
|
558
|
+
vector.setFromMatrixPosition(obj.matrixWorld);
|
|
559
|
+
var widthHalf = width / 2;
|
|
560
|
+
var heightHalf = height / 2;
|
|
822
561
|
vector.project(camera);
|
|
823
|
-
vector.x =
|
|
824
|
-
vector.y = -
|
|
562
|
+
vector.x = vector.x * widthHalf + widthHalf;
|
|
563
|
+
vector.y = -(vector.y * heightHalf) + heightHalf;
|
|
825
564
|
return vector;
|
|
826
|
-
}
|
|
565
|
+
};
|
|
827
566
|
|
|
828
|
-
var getIdObjectFromIntersect = function(intersected) {
|
|
567
|
+
var getIdObjectFromIntersect = function getIdObjectFromIntersect(intersected) {
|
|
829
568
|
var id = undefined;
|
|
830
569
|
var intersectedObject = undefined;
|
|
570
|
+
|
|
831
571
|
if (intersected !== undefined) {
|
|
832
|
-
if (intersected.object.userData &&
|
|
833
|
-
intersected.object.userData.isMarker) {
|
|
572
|
+
if (intersected.object.userData && intersected.object.userData.isMarker) {
|
|
834
573
|
intersectedObject = intersected.object.userData.parent.morph;
|
|
835
574
|
} else {
|
|
836
575
|
intersectedObject = intersected.object;
|
|
837
576
|
}
|
|
577
|
+
|
|
838
578
|
if (intersectedObject) {
|
|
839
579
|
if (intersectedObject.name) {
|
|
840
580
|
id = intersectedObject.name;
|
|
841
581
|
} else {
|
|
842
|
-
var annotations = _this.getAnnotationsFromObjects(
|
|
843
|
-
|
|
582
|
+
var annotations = _this.getAnnotationsFromObjects([intersectedObject]);
|
|
583
|
+
|
|
844
584
|
if (annotations && annotations[0]) {
|
|
845
585
|
id = annotations[0].data.group;
|
|
846
586
|
}
|
|
847
587
|
}
|
|
848
588
|
}
|
|
849
589
|
}
|
|
850
|
-
|
|
590
|
+
|
|
591
|
+
return {
|
|
592
|
+
"id": id,
|
|
593
|
+
"object": intersectedObject
|
|
594
|
+
};
|
|
595
|
+
};
|
|
596
|
+
/**
|
|
597
|
+
* Callback function when a pickable object has been picked. It will then
|
|
598
|
+
* call functions in tissueViewer and cellPanel to show corresponding
|
|
599
|
+
* informations.
|
|
600
|
+
*
|
|
601
|
+
* @callback
|
|
602
|
+
*/
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
var _pickingCallback = function _pickingCallback() {
|
|
606
|
+
return function (intersects, window_x, window_y) {
|
|
607
|
+
var intersected = _this.getIntersectedObject(intersects);
|
|
608
|
+
|
|
609
|
+
var idObject = getIdObjectFromIntersect(intersected);
|
|
610
|
+
|
|
611
|
+
if (idObject.id) {
|
|
612
|
+
if (idObject.object.userData.isGlyph) {
|
|
613
|
+
if (idObject.object.name) _this.setSelectedByObjects([idObject.object], true);else _this.setSelectedByZincObject(idObject.object.userData.getGlyphset(), true);
|
|
614
|
+
} else {
|
|
615
|
+
_this.setSelectedByObjects([idObject.object], true);
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
return;
|
|
619
|
+
} else {
|
|
620
|
+
_this.setSelectedByObjects([], true);
|
|
621
|
+
}
|
|
622
|
+
};
|
|
623
|
+
};
|
|
624
|
+
/**
|
|
625
|
+
* Callback function when a pickable object has been hovered over.
|
|
626
|
+
*
|
|
627
|
+
* @callback
|
|
628
|
+
*/
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
var _hoverCallback = function _hoverCallback() {
|
|
632
|
+
return function (intersects, window_x, window_y) {
|
|
633
|
+
var intersected = _this.getIntersectedObject(intersects);
|
|
634
|
+
|
|
635
|
+
var idObject = getIdObjectFromIntersect(intersected);
|
|
636
|
+
|
|
637
|
+
if (idObject.id) {
|
|
638
|
+
_this.displayArea.style.cursor = "pointer";
|
|
639
|
+
|
|
640
|
+
_this.setHighlightedByObjects([idObject.object], true);
|
|
641
|
+
|
|
642
|
+
return;
|
|
643
|
+
} else {
|
|
644
|
+
_this.displayArea.style.cursor = "auto";
|
|
645
|
+
|
|
646
|
+
_this.setHighlightedByObjects([], true);
|
|
647
|
+
}
|
|
648
|
+
};
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
var changeOrganPartsVisibilityForScene = function changeOrganPartsVisibilityForScene(scene, name, value, type) {
|
|
652
|
+
if (type == "all" || type == "geometries") {
|
|
653
|
+
var geometries = scene.findGeometriesWithGroupName(name);
|
|
654
|
+
|
|
655
|
+
for (var i = 0; i < geometries.length; i++) {
|
|
656
|
+
geometries[i].setVisibility(value);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
if (type == "all" || type == "glyphsets") {
|
|
661
|
+
var glyphsets = scene.findGlyphsetsWithGroupName(name);
|
|
662
|
+
|
|
663
|
+
for (var _i = 0; _i < glyphsets.length; _i++) {
|
|
664
|
+
glyphsets[_i].setVisibility(value);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
if (type == "all" || type == "pointsets") {
|
|
669
|
+
var pointsets = scene.findPointsetsWithGroupName(name);
|
|
670
|
+
|
|
671
|
+
for (var _i2 = 0; _i2 < pointsets.length; _i2++) {
|
|
672
|
+
pointsets[_i2].setVisibility(value);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
if (type == "all" || type == "lines") {
|
|
677
|
+
var lines = scene.findLinesWithGroupName(name);
|
|
678
|
+
|
|
679
|
+
for (var _i3 = 0; _i3 < lines.length; _i3++) {
|
|
680
|
+
lines[_i3].setVisibility(value);
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
};
|
|
684
|
+
/**
|
|
685
|
+
* Change visibility for parts of the current scene.
|
|
686
|
+
*/
|
|
687
|
+
|
|
688
|
+
|
|
689
|
+
this.changeGeometriesVisibility = function (name, value) {
|
|
690
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'geometries');
|
|
691
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'geometries');
|
|
692
|
+
};
|
|
693
|
+
/**
|
|
694
|
+
* Change visibility for parts of the current scene.
|
|
695
|
+
*/
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
this.changeGlyphsetsVisibility = function (name, value) {
|
|
699
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'glyphsets');
|
|
700
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'glyphsets');
|
|
701
|
+
};
|
|
702
|
+
/**
|
|
703
|
+
* Change visibility for parts of the current scene.
|
|
704
|
+
*/
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
this.changeLinesVisibility = function (name, value) {
|
|
708
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'lines');
|
|
709
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'lines');
|
|
710
|
+
};
|
|
711
|
+
/**
|
|
712
|
+
* Change visibility for parts of the current scene.
|
|
713
|
+
*/
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
this.changePointsetsVisibility = function (name, value) {
|
|
717
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'pointsets');
|
|
718
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'pointsets');
|
|
719
|
+
};
|
|
720
|
+
/**
|
|
721
|
+
* Change visibility for parts of the current scene.
|
|
722
|
+
*/
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
this.changeOrganPartsVisibility = function (name, value, typeIn) {
|
|
726
|
+
var type = "all";
|
|
727
|
+
if (typeIn !== undefined) type = typeIn;
|
|
728
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, type);
|
|
729
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, type);
|
|
730
|
+
};
|
|
731
|
+
|
|
732
|
+
this.changeOrganPartsVisibilityCallback = function (name) {
|
|
733
|
+
return function (value) {
|
|
734
|
+
_this.changeOrganPartsVisibility(name, value);
|
|
735
|
+
};
|
|
736
|
+
};
|
|
737
|
+
|
|
738
|
+
this.changeBackgroundColour = function (backgroundColourString) {
|
|
739
|
+
var colour = new THREE.Color(backgroundColourString);
|
|
740
|
+
|
|
741
|
+
if (_this.zincRenderer) {
|
|
742
|
+
var internalRenderer = _this.zincRenderer.getThreeJSRenderer();
|
|
743
|
+
|
|
744
|
+
internalRenderer.setClearColor(colour, 1);
|
|
745
|
+
}
|
|
746
|
+
};
|
|
747
|
+
|
|
748
|
+
var addOrganPartToSceneData = function addOrganPartToSceneData(zincObject) {
|
|
749
|
+
if (zincObject.groupName) {
|
|
750
|
+
if (zincObject.isGeometry) {
|
|
751
|
+
if (!_this.sceneData.geometries.includes(zincObject.groupName)) {
|
|
752
|
+
_this.sceneData.geometries.push(zincObject.groupName);
|
|
753
|
+
}
|
|
754
|
+
} else if (zincObject.isGlyphset) {
|
|
755
|
+
if (!_this.sceneData.glyphsets.includes(zincObject.groupName)) {
|
|
756
|
+
_this.sceneData.glyphsets.push(zincObject.groupName);
|
|
757
|
+
}
|
|
758
|
+
} else if (zincObject.isLines) {
|
|
759
|
+
if (!_this.sceneData.lines.includes(zincObject.groupName)) {
|
|
760
|
+
_this.sceneData.lines.push(zincObject.groupName);
|
|
761
|
+
}
|
|
762
|
+
} else if (zincObject.isPointset) {
|
|
763
|
+
if (!_this.sceneData.pointsets.includes(zincObject.groupName)) {
|
|
764
|
+
_this.sceneData.pointsets.push(zincObject.groupName);
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
};
|
|
769
|
+
|
|
770
|
+
var addOrganPart = function addOrganPart(systemName, partName, useDefautColour, zincObject) {
|
|
771
|
+
for (var i = 0; i < organPartAddedCallbacks.length; i++) {
|
|
772
|
+
organPartAddedCallbacks[i](zincObject.groupName, _this.scene.isTimeVarying(), zincObject);
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
if (useDefautColour) modelsLoader.setGeometryColour(zincObject, systemName, partName);
|
|
776
|
+
addOrganPartToSceneData(zincObject);
|
|
777
|
+
var annotation = new (__webpack_require__("984d").annotation)();
|
|
778
|
+
annotation.data = {
|
|
779
|
+
species: _this.sceneData.currentSpecies,
|
|
780
|
+
system: systemName,
|
|
781
|
+
part: partName,
|
|
782
|
+
group: zincObject.groupName
|
|
783
|
+
};
|
|
784
|
+
zincObject.userData = [annotation];
|
|
785
|
+
};
|
|
786
|
+
/**
|
|
787
|
+
* New organs geometry has been added to the scene, add UIs and make
|
|
788
|
+
* sure the viewport is correct.
|
|
789
|
+
*/
|
|
790
|
+
|
|
791
|
+
|
|
792
|
+
var _addOrganPartCallback = function _addOrganPartCallback(systemName, partName, useDefautColour) {
|
|
793
|
+
return function (zincObject) {
|
|
794
|
+
addOrganPart(systemName, partName, useDefautColour, zincObject);
|
|
795
|
+
};
|
|
796
|
+
};
|
|
797
|
+
|
|
798
|
+
var downloadCompletedCallback = function downloadCompletedCallback() {
|
|
799
|
+
return function () {
|
|
800
|
+
_this.settingsChanged();
|
|
801
|
+
|
|
802
|
+
_this.sceneData.timeVarying = _this.scene.isTimeVarying();
|
|
803
|
+
if (finishDownloadCallback) finishDownloadCallback();
|
|
804
|
+
};
|
|
805
|
+
};
|
|
806
|
+
|
|
807
|
+
var singleItemDownloadCompletedCallback = function singleItemDownloadCompletedCallback(systemName, partName, useDefautColour) {
|
|
808
|
+
return function (geometry) {
|
|
809
|
+
addOrganPart(systemName, partName, useDefautColour, geometry);
|
|
810
|
+
|
|
811
|
+
_this.settingsChanged();
|
|
812
|
+
};
|
|
813
|
+
};
|
|
814
|
+
/**
|
|
815
|
+
* Toggle data field displays. Data fields displays flow/pressure and <button @click="play">Play</button>
|
|
816
|
+
* other activities of the organs.
|
|
817
|
+
*/
|
|
818
|
+
|
|
819
|
+
|
|
820
|
+
this.updateFieldvisibility = function (dataFields, value) {
|
|
821
|
+
for (var i = 0; i < dataFields.length; i++) {
|
|
822
|
+
if (value != i) {
|
|
823
|
+
var geometryName = dataFields[i].PartName;
|
|
824
|
+
|
|
825
|
+
_this.changeOrganPartsVisibility(geometryName, false);
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
if (value > -1) {
|
|
830
|
+
var partName = dataFields[value].PartName;
|
|
831
|
+
|
|
832
|
+
if (_this.scene.findGeometriesWithGroupName(partName).length > 0 || _this.scene.findGlyphsetsWithGroupName(partName).length > 0) {
|
|
833
|
+
_this.changeOrganPartsVisibility(partName, true);
|
|
834
|
+
} else {
|
|
835
|
+
var partDetails = getOrganDetails(dataFields[value].SystemName, partName);
|
|
836
|
+
|
|
837
|
+
if (partDetails != undefined) {
|
|
838
|
+
_this.scene.loadMetadataURL(modelsLoader.getOrgansDirectoryPrefix() + "/" + partDetails.meta);
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
};
|
|
843
|
+
/**
|
|
844
|
+
* Return an array containing name(s) of species that also contains the
|
|
845
|
+
* currently displayed organs.
|
|
846
|
+
*
|
|
847
|
+
* @returns {Array} containing species name
|
|
848
|
+
*/
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
this.getAvailableSpecies = function (currentSpecies, currentSystem, currentPart) {
|
|
852
|
+
var availableSpecies = new Array();
|
|
853
|
+
availableSpecies.push("none");
|
|
854
|
+
var keysArray = Object.keys(organsFileMap);
|
|
855
|
+
|
|
856
|
+
for (index in keysArray) {
|
|
857
|
+
var species = keysArray[index];
|
|
858
|
+
|
|
859
|
+
if (species != currentSpecies) {
|
|
860
|
+
if (organsFileMap[species].hasOwnProperty(currentSystem) && organsFileMap[species][currentSystem].hasOwnProperty(currentPart)) {
|
|
861
|
+
availableSpecies.push(species);
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
return availableSpecies;
|
|
867
|
+
};
|
|
868
|
+
|
|
869
|
+
var setSceneData = function setSceneData(speciesName, systemName, partName, organsDetails) {
|
|
870
|
+
_this.sceneData.nerveMapIsActive = false;
|
|
871
|
+
_this.sceneData.nerveMap = undefined;
|
|
872
|
+
_this.sceneData.metaURL = "";
|
|
873
|
+
_this.sceneData.viewURL = "";
|
|
874
|
+
_this.sceneData.currentSpecies = speciesName;
|
|
875
|
+
_this.sceneData.currentSystem = systemName;
|
|
876
|
+
_this.sceneData.currentPart = partName;
|
|
877
|
+
_this.sceneData.currentTime = 0.0;
|
|
878
|
+
|
|
879
|
+
_this.sceneData.geometries.splice(0);
|
|
880
|
+
|
|
881
|
+
_this.sceneData.lines.splice(0);
|
|
882
|
+
|
|
883
|
+
_this.sceneData.glyphsets.splice(0);
|
|
884
|
+
|
|
885
|
+
_this.sceneData.pointsets.splice(0);
|
|
886
|
+
|
|
887
|
+
_this.sceneData.timeVarying = false; // This is used as title
|
|
888
|
+
|
|
889
|
+
var name = "";
|
|
890
|
+
if (speciesName) name = speciesName + "/";
|
|
891
|
+
if (systemName) name = systemName + "/";
|
|
892
|
+
if (partName) name = partName;
|
|
893
|
+
_this.sceneData.currentName = name;
|
|
894
|
+
};
|
|
895
|
+
|
|
896
|
+
this.loadOrgansFromURL = function (url, speciesName, systemName, partName, viewURL) {
|
|
897
|
+
if (_this.zincRenderer) {
|
|
898
|
+
if (partName && _this.sceneData.metaURL !== url) {
|
|
899
|
+
setSceneData(speciesName, systemName, partName, undefined);
|
|
900
|
+
var name = _this.sceneData.currentName;
|
|
901
|
+
|
|
902
|
+
var organScene = _this.zincRenderer.getSceneByName(name);
|
|
903
|
+
|
|
904
|
+
if (organScene) {
|
|
905
|
+
organScene.clearAll();
|
|
906
|
+
} else {
|
|
907
|
+
organScene = _this.zincRenderer.createScene(name);
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
for (var i = 0; i < sceneChangedCallbacks.length; i++) {
|
|
911
|
+
sceneChangedCallbacks[i](_this.sceneData);
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
if (viewURL && viewURL != "") {
|
|
915
|
+
_this.sceneData.viewURL = viewURL;
|
|
916
|
+
organScene.loadViewURL(_this.sceneData.viewURL);
|
|
917
|
+
} else {
|
|
918
|
+
_this.sceneData.viewURL = undefined;
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
_this.sceneData.metaURL = url;
|
|
922
|
+
organScene.loadMetadataURL(url, _addOrganPartCallback(systemName, partName, false), downloadCompletedCallback());
|
|
923
|
+
_this.scene = organScene;
|
|
924
|
+
|
|
925
|
+
_this.zincRenderer.setCurrentScene(organScene);
|
|
926
|
+
|
|
927
|
+
_this.graphicsHighlight.reset();
|
|
928
|
+
|
|
929
|
+
var zincCameraControl = organScene.getZincCameraControls();
|
|
930
|
+
zincCameraControl.enableRaycaster(organScene, _pickingCallback(), _hoverCallback());
|
|
931
|
+
zincCameraControl.setMouseButtonAction("AUXILIARY", "ZOOM");
|
|
932
|
+
zincCameraControl.setMouseButtonAction("SECONDARY", "PAN");
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
};
|
|
936
|
+
|
|
937
|
+
this.alignCameraWithSelectedObject = function (transitionTime) {
|
|
938
|
+
var objects = _this.graphicsHighlight.getSelected();
|
|
939
|
+
|
|
940
|
+
if (objects && objects[0] && objects[0].userData) {
|
|
941
|
+
_this.scene.alignObjectToCameraView(objects[0].userData, transitionTime);
|
|
942
|
+
}
|
|
943
|
+
};
|
|
944
|
+
|
|
945
|
+
this.exportSettings = function () {
|
|
946
|
+
var settings = {};
|
|
947
|
+
settings.name = _this.instanceName;
|
|
948
|
+
if (_this.sceneData.currentSystem) settings.system = _this.sceneData.currentSystem;
|
|
949
|
+
if (_this.sceneData.currentSpecies) settings.species = _this.sceneData.currentSpecies;
|
|
950
|
+
if (_this.sceneData.currentPart) settings.part = _this.sceneData.currentPart;
|
|
951
|
+
settings.metaURL = _this.sceneData.metaURL;
|
|
952
|
+
if (_this.sceneData.viewURL) settings.viewURL = _this.sceneData.viewURL;
|
|
953
|
+
settings.dialog = "Organ Viewer";
|
|
954
|
+
return settings;
|
|
955
|
+
};
|
|
956
|
+
|
|
957
|
+
this.importSettings = function (settings) {
|
|
958
|
+
if (settings && settings.dialog == this.typeName) {
|
|
959
|
+
_this.setName(settings.name);
|
|
960
|
+
|
|
961
|
+
if (settings.metaURL !== undefined && settings.metaURL != "") {
|
|
962
|
+
_this.loadOrgansFromURL(settings.metaURL, settings.species, settings.system, settings.part, settings.viewURL);
|
|
963
|
+
} else {
|
|
964
|
+
_this.loadOrgans(settings.species, settings.system, settings.part);
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
return true;
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
return false;
|
|
971
|
+
};
|
|
972
|
+
/**
|
|
973
|
+
* initialise loading of the html layout for the organs panel, this is
|
|
974
|
+
* called when the {@link PJP.OrgansViewer} is created.
|
|
975
|
+
*
|
|
976
|
+
* @async
|
|
977
|
+
*/
|
|
978
|
+
|
|
979
|
+
|
|
980
|
+
var initialise = function initialise() {
|
|
981
|
+
_this.initialiseRenderer(undefined);
|
|
982
|
+
|
|
983
|
+
if (_this.zincRenderer) {
|
|
984
|
+
_this.zincRenderer.addPreRenderCallbackFunction(preRenderUpdateCallback());
|
|
985
|
+
|
|
986
|
+
_this.zincRenderer.addPostRenderCallbackFunction(postRenderUpdateCallback());
|
|
987
|
+
}
|
|
988
|
+
};
|
|
989
|
+
|
|
990
|
+
initialise();
|
|
991
|
+
};
|
|
992
|
+
|
|
993
|
+
OrgansViewer.prototype = Object.create(__webpack_require__("8278").RendererModule.prototype);
|
|
994
|
+
exports.OrgansViewer = OrgansViewer;
|
|
995
|
+
|
|
996
|
+
/***/ }),
|
|
997
|
+
|
|
998
|
+
/***/ "55ee":
|
|
999
|
+
/***/ (function(module, exports) {
|
|
1000
|
+
|
|
1001
|
+
module.exports = require("element-ui/lib/theme-chalk/checkbox.css");
|
|
1002
|
+
|
|
1003
|
+
/***/ }),
|
|
1004
|
+
|
|
1005
|
+
/***/ "5810":
|
|
1006
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1007
|
+
|
|
1008
|
+
// extracted by mini-css-extract-plugin
|
|
1009
|
+
|
|
1010
|
+
/***/ }),
|
|
1011
|
+
|
|
1012
|
+
/***/ "5a43":
|
|
1013
|
+
/***/ (function(module, exports) {
|
|
1014
|
+
|
|
1015
|
+
function _arrayLikeToArray(arr, len) {
|
|
1016
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
1017
|
+
|
|
1018
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
|
1019
|
+
arr2[i] = arr[i];
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
return arr2;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
module.exports = _arrayLikeToArray;
|
|
1026
|
+
|
|
1027
|
+
/***/ }),
|
|
1028
|
+
|
|
1029
|
+
/***/ "5ec5":
|
|
1030
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1031
|
+
|
|
1032
|
+
var _toConsumableArray = __webpack_require__("448a");
|
|
1033
|
+
|
|
1034
|
+
var THREE = __webpack_require__("9206").THREE;
|
|
1035
|
+
/**
|
|
1036
|
+
* This module manages highlighted and selected objects in 3D modules.
|
|
1037
|
+
*
|
|
1038
|
+
* @class
|
|
1039
|
+
* @returns {exports.GraphicsHighlight}
|
|
1040
|
+
*/
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
exports.GraphicsHighlight = function () {
|
|
1044
|
+
var currentHighlightedObjects = [];
|
|
1045
|
+
var currentSelectedObjects = [];
|
|
1046
|
+
this.highlightColour = [1, 0, 0];
|
|
1047
|
+
this.selectColour = [0, 1, 0];
|
|
1048
|
+
this.originalColour = [0, 0, 0];
|
|
1049
|
+
|
|
1050
|
+
var _this = this;
|
|
1051
|
+
|
|
1052
|
+
var isDifferent = function isDifferent(array1, array2) {
|
|
1053
|
+
if (array1.length == 0 && array2.length == 0) return false;
|
|
1054
|
+
|
|
1055
|
+
for (var i = 0; i < array1.length; i++) {
|
|
1056
|
+
var matched = false;
|
|
1057
|
+
|
|
1058
|
+
for (var j = 0; j < array2.length; j++) {
|
|
1059
|
+
if (array1[i] === array2[j]) {
|
|
1060
|
+
matched = true;
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
if (!matched) return true;
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
for (var _i = 0; _i < array2.length; _i++) {
|
|
1068
|
+
var _matched = false;
|
|
1069
|
+
|
|
1070
|
+
for (var _j = 0; _j < array1.length; _j++) {
|
|
1071
|
+
if (array2[_i] === array1[_j]) {
|
|
1072
|
+
_matched = true;
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
if (!_matched) return true;
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
return false;
|
|
1080
|
+
};
|
|
1081
|
+
|
|
1082
|
+
var getUnmatchingObjects = function getUnmatchingObjects(objectsArray1, objectsArray2) {
|
|
1083
|
+
var unmatchingObjects = [];
|
|
1084
|
+
if (objectsArray2.length == 0) return objectsArray1;
|
|
1085
|
+
|
|
1086
|
+
for (var i = 0; i < objectsArray1.length; i++) {
|
|
1087
|
+
var matched = false;
|
|
1088
|
+
|
|
1089
|
+
for (var j = 0; j < objectsArray2.length; j++) {
|
|
1090
|
+
if (objectsArray1[i] === objectsArray2[j]) {
|
|
1091
|
+
matched = true;
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
if (!matched) unmatchingObjects.push(objectsArray1[i]);
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
return unmatchingObjects;
|
|
1099
|
+
};
|
|
1100
|
+
|
|
1101
|
+
this.setHighlighted = function (objects) {
|
|
1102
|
+
var previousHighlightedObjects = currentHighlightedObjects;
|
|
1103
|
+
|
|
1104
|
+
_this.resetHighlighted(); // Selected object cannot be highlighted
|
|
1105
|
+
|
|
1106
|
+
|
|
1107
|
+
var array = getUnmatchingObjects(objects, currentSelectedObjects);
|
|
1108
|
+
var fullList = getFullListOfObjects(array);
|
|
1109
|
+
|
|
1110
|
+
for (var i = 0; i < fullList.length; i++) {
|
|
1111
|
+
var _fullList$i$material$;
|
|
1112
|
+
|
|
1113
|
+
if (fullList[i] && fullList[i].material && fullList[i].material.emissive) (_fullList$i$material$ = fullList[i].material.emissive).setRGB.apply(_fullList$i$material$, _toConsumableArray(_this.highlightColour));
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
currentHighlightedObjects = array;
|
|
1117
|
+
return isDifferent(currentHighlightedObjects, previousHighlightedObjects);
|
|
1118
|
+
};
|
|
1119
|
+
|
|
1120
|
+
this.setSelected = function (objects) {
|
|
1121
|
+
// first find highlighted object that are not selected
|
|
1122
|
+
var previousHSelectedObjects = currentSelectedObjects;
|
|
1123
|
+
var array = getUnmatchingObjects(currentHighlightedObjects, objects);
|
|
1124
|
+
currentHighlightedObjects = array;
|
|
1125
|
+
|
|
1126
|
+
_this.resetSelected();
|
|
1127
|
+
|
|
1128
|
+
var fullList = getFullListOfObjects(objects);
|
|
1129
|
+
|
|
1130
|
+
for (var i = 0; i < fullList.length; i++) {
|
|
1131
|
+
var _fullList$i$material$2;
|
|
1132
|
+
|
|
1133
|
+
if (fullList[i] && fullList[i].material && fullList[i].material.emissive) (_fullList$i$material$2 = fullList[i].material.emissive).setRGB.apply(_fullList$i$material$2, _toConsumableArray(_this.selectColour));
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
currentSelectedObjects = objects;
|
|
1137
|
+
return isDifferent(currentSelectedObjects, previousHSelectedObjects);
|
|
1138
|
+
};
|
|
1139
|
+
|
|
1140
|
+
var getFullListOfObjects = function getFullListOfObjects(objects) {
|
|
1141
|
+
var fullList = [];
|
|
1142
|
+
|
|
1143
|
+
for (var i = 0; i < objects.length; i++) {
|
|
1144
|
+
if (objects[i].material) fullList.push(objects[i]);
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
return fullList;
|
|
1148
|
+
};
|
|
1149
|
+
|
|
1150
|
+
this.resetHighlighted = function () {
|
|
1151
|
+
var fullList = getFullListOfObjects(currentHighlightedObjects);
|
|
1152
|
+
|
|
1153
|
+
for (var i = 0; i < fullList.length; i++) {
|
|
1154
|
+
if (fullList[i] && fullList[i].material) {
|
|
1155
|
+
var _fullList$i$material$3;
|
|
1156
|
+
|
|
1157
|
+
if (fullList[i].material.emissive) (_fullList$i$material$3 = fullList[i].material.emissive).setRGB.apply(_fullList$i$material$3, _toConsumableArray(_this.originalColour));
|
|
1158
|
+
if (fullList[i].material.depthFunc) fullList[i].material.depthFunc = THREE.LessEqualDepth;
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
currentHighlightedObjects = [];
|
|
1163
|
+
};
|
|
1164
|
+
|
|
1165
|
+
this.resetSelected = function () {
|
|
1166
|
+
var fullList = getFullListOfObjects(currentSelectedObjects);
|
|
1167
|
+
|
|
1168
|
+
for (var i = 0; i < fullList.length; i++) {
|
|
1169
|
+
if (fullList[i] && fullList[i].material) {
|
|
1170
|
+
var _fullList$i$material$4;
|
|
1171
|
+
|
|
1172
|
+
if (fullList[i].material.emissive) (_fullList$i$material$4 = fullList[i].material.emissive).setRGB.apply(_fullList$i$material$4, _toConsumableArray(_this.originalColour));
|
|
1173
|
+
if (fullList[i].material.depthFunc) fullList[i].material.depthFunc = THREE.LessEqualDepth;
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
currentSelectedObjects = [];
|
|
1178
|
+
};
|
|
1179
|
+
|
|
1180
|
+
this.getSelected = function () {
|
|
1181
|
+
return currentSelectedObjects;
|
|
1182
|
+
};
|
|
1183
|
+
|
|
1184
|
+
this.reset = function () {
|
|
1185
|
+
_this.resetSelected();
|
|
1186
|
+
|
|
1187
|
+
_this.resetHighlighted();
|
|
1188
|
+
};
|
|
1189
|
+
};
|
|
1190
|
+
|
|
1191
|
+
/***/ }),
|
|
1192
|
+
|
|
1193
|
+
/***/ "5fef":
|
|
1194
|
+
/***/ (function(module, exports) {
|
|
1195
|
+
|
|
1196
|
+
module.exports = require("core-js/modules/es.regexp.to-string");
|
|
1197
|
+
|
|
1198
|
+
/***/ }),
|
|
1199
|
+
|
|
1200
|
+
/***/ "6049":
|
|
1201
|
+
/***/ (function(module, exports) {
|
|
1202
|
+
|
|
1203
|
+
module.exports = require("core-js/modules/es.symbol");
|
|
1204
|
+
|
|
1205
|
+
/***/ }),
|
|
1206
|
+
|
|
1207
|
+
/***/ "642d":
|
|
1208
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1209
|
+
|
|
1210
|
+
"use strict";
|
|
1211
|
+
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7d9b");
|
|
1212
|
+
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
|
|
1213
|
+
/* unused harmony reexport * */
|
|
1214
|
+
|
|
1215
|
+
|
|
1216
|
+
/***/ }),
|
|
1217
|
+
|
|
1218
|
+
/***/ "6579":
|
|
1219
|
+
/***/ (function(module, exports) {
|
|
1220
|
+
|
|
1221
|
+
module.exports = require("core-js/modules/es.array.slice");
|
|
1222
|
+
|
|
1223
|
+
/***/ }),
|
|
1224
|
+
|
|
1225
|
+
/***/ "6613":
|
|
1226
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1227
|
+
|
|
1228
|
+
__webpack_require__("e42b");
|
|
1229
|
+
|
|
1230
|
+
__webpack_require__("6579");
|
|
1231
|
+
|
|
1232
|
+
__webpack_require__("bcd8");
|
|
1233
|
+
|
|
1234
|
+
__webpack_require__("850c");
|
|
1235
|
+
|
|
1236
|
+
__webpack_require__("5fef");
|
|
1237
|
+
|
|
1238
|
+
__webpack_require__("907b");
|
|
1239
|
+
|
|
1240
|
+
var arrayLikeToArray = __webpack_require__("5a43");
|
|
1241
|
+
|
|
1242
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
1243
|
+
if (!o) return;
|
|
1244
|
+
if (typeof o === "string") return arrayLikeToArray(o, minLen);
|
|
1245
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
1246
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
1247
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
1248
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
module.exports = _unsupportedIterableToArray;
|
|
1252
|
+
|
|
1253
|
+
/***/ }),
|
|
1254
|
+
|
|
1255
|
+
/***/ "6814":
|
|
1256
|
+
/***/ (function(module, exports) {
|
|
1257
|
+
|
|
1258
|
+
module.exports = require("lodash/orderBy");
|
|
1259
|
+
|
|
1260
|
+
/***/ }),
|
|
1261
|
+
|
|
1262
|
+
/***/ "6aa6":
|
|
1263
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1264
|
+
|
|
1265
|
+
__webpack_require__("ab7e");
|
|
1266
|
+
|
|
1267
|
+
__webpack_require__("6bb1");
|
|
1268
|
+
|
|
1269
|
+
__webpack_require__("6579");
|
|
1270
|
+
|
|
1271
|
+
__webpack_require__("7c81");
|
|
1272
|
+
|
|
1273
|
+
__webpack_require__("bcd8");
|
|
1274
|
+
|
|
1275
|
+
__webpack_require__("fd48");
|
|
1276
|
+
|
|
1277
|
+
var MODULE_CHANGE = {
|
|
1278
|
+
ALL: 0,
|
|
1279
|
+
DESTROYED: 1,
|
|
1280
|
+
NAME_CHANGED: 2,
|
|
1281
|
+
SETTINGS_CHANGED: 3
|
|
1282
|
+
};
|
|
1283
|
+
|
|
1284
|
+
var BaseModule = function BaseModule() {
|
|
1285
|
+
this.typeName = "Base Module";
|
|
1286
|
+
this.instanceName = "default";
|
|
1287
|
+
this.onChangedCallbacks = [];
|
|
1288
|
+
/** Notifier handle for informing other modules of any changes **/
|
|
1289
|
+
|
|
1290
|
+
this.eventNotifiers = [];
|
|
1291
|
+
};
|
|
1292
|
+
|
|
1293
|
+
BaseModule.prototype.setName = function (name) {
|
|
1294
|
+
if (name && this.instanceName !== name) {
|
|
1295
|
+
this.instanceName = name;
|
|
1296
|
+
var callbackArray = this.onChangedCallbacks.slice();
|
|
1297
|
+
|
|
1298
|
+
for (var i = 0; i < callbackArray.length; i++) {
|
|
1299
|
+
callbackArray[i](this, MODULE_CHANGE.NAME_CHANGED);
|
|
1300
|
+
}
|
|
851
1301
|
}
|
|
852
|
-
|
|
853
|
-
/**
|
|
854
|
-
* Callback function when a pickable object has been picked. It will then
|
|
855
|
-
* call functions in tissueViewer and cellPanel to show corresponding
|
|
856
|
-
* informations.
|
|
857
|
-
*
|
|
858
|
-
* @callback
|
|
859
|
-
*/
|
|
860
|
-
var _pickingCallback = function() {
|
|
861
|
-
return function(intersects, window_x, window_y) {
|
|
862
|
-
var intersected = _this.getIntersectedObject(intersects);
|
|
863
|
-
var idObject = getIdObjectFromIntersect(intersected);
|
|
864
|
-
if (idObject.id) {
|
|
865
|
-
if (_this.toolTip !== undefined) {
|
|
866
|
-
_this.toolTip.setText(idObject.id);
|
|
867
|
-
_this.toolTip.show(window_x, window_y);
|
|
868
|
-
}
|
|
869
|
-
_this.displayMessage(idObject.object.name + " selected.");
|
|
1302
|
+
};
|
|
870
1303
|
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
} else {
|
|
877
|
-
_this.setSelectedByObjects([idObject.object], true);
|
|
878
|
-
}
|
|
879
|
-
return;
|
|
880
|
-
} else {
|
|
881
|
-
if (_this.toolTip !== undefined) {
|
|
882
|
-
_this.toolTip.hide();
|
|
883
|
-
}
|
|
884
|
-
_this.setSelectedByObjects([], true);
|
|
885
|
-
}
|
|
886
|
-
}
|
|
887
|
-
};
|
|
888
|
-
|
|
889
|
-
/**
|
|
890
|
-
* Callback function when a pickable object has been hovered over. It will
|
|
891
|
-
* show objecty id/name as _this.toolTip text.
|
|
892
|
-
*
|
|
893
|
-
* @callback
|
|
894
|
-
*/
|
|
895
|
-
var _hoverCallback = function() {
|
|
896
|
-
return function(intersects, window_x, window_y) {
|
|
897
|
-
var intersected = _this.getIntersectedObject(intersects);
|
|
898
|
-
var idObject = getIdObjectFromIntersect(intersected);
|
|
899
|
-
if (idObject.id) {
|
|
900
|
-
_this.displayArea.style.cursor = "pointer";
|
|
901
|
-
if (_this.toolTip !== undefined) {
|
|
902
|
-
_this.toolTip.setText(idObject.id);
|
|
903
|
-
_this.toolTip.show(window_x, window_y);
|
|
904
|
-
}
|
|
905
|
-
_this.setHighlightedByObjects([idObject.object], true);
|
|
906
|
-
return;
|
|
907
|
-
}
|
|
908
|
-
else {
|
|
909
|
-
if (_this.toolTip !== undefined) {
|
|
910
|
-
_this.toolTip.hide();
|
|
911
|
-
}
|
|
912
|
-
_this.displayArea.style.cursor = "auto";
|
|
913
|
-
_this.setHighlightedByObjects([], true);
|
|
914
|
-
}
|
|
915
|
-
}
|
|
916
|
-
};
|
|
917
|
-
|
|
918
|
-
var changeOrganPartsVisibilityForScene = function(scene, name, value, type) {
|
|
919
|
-
if (type == "all" || type == "geometries") {
|
|
920
|
-
var geometries = scene.findGeometriesWithGroupName(name);
|
|
921
|
-
for (var i = 0; i < geometries.length; i ++ ) {
|
|
922
|
-
geometries[i].setVisibility(value);
|
|
923
|
-
}
|
|
924
|
-
}
|
|
925
|
-
if (type == "all" || type == "glyphsets") {
|
|
926
|
-
var glyphsets = scene.findGlyphsetsWithGroupName(name);
|
|
927
|
-
for (var i = 0; i < glyphsets.length; i ++ ) {
|
|
928
|
-
glyphsets[i].setVisibility(value);
|
|
929
|
-
}
|
|
930
|
-
}
|
|
931
|
-
if (type == "all" || type == "pointsets") {
|
|
932
|
-
var pointsets = scene.findPointsetsWithGroupName(name);
|
|
933
|
-
for (var i = 0; i < pointsets.length; i ++ ) {
|
|
934
|
-
pointsets[i].setVisibility(value);
|
|
935
|
-
}
|
|
936
|
-
}
|
|
937
|
-
if (type == "all" || type == "lines") {
|
|
938
|
-
var lines = scene.findLinesWithGroupName(name);
|
|
939
|
-
for (var i = 0; i < lines.length; i ++ ) {
|
|
940
|
-
lines[i].setVisibility(value);
|
|
941
|
-
}
|
|
942
|
-
}
|
|
943
|
-
}
|
|
944
|
-
|
|
945
|
-
/**
|
|
946
|
-
* Change visibility for parts of the current scene.
|
|
947
|
-
*/
|
|
948
|
-
this.changeGeometriesVisibility = function(name, value) {
|
|
949
|
-
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'geometries');
|
|
950
|
-
if (pickerScene)
|
|
951
|
-
changeOrganPartsVisibilityForScene(pickerScene, name, value, 'geometries');
|
|
952
|
-
}
|
|
953
|
-
|
|
954
|
-
/**
|
|
955
|
-
* Change visibility for parts of the current scene.
|
|
956
|
-
*/
|
|
957
|
-
this.changeGlyphsetsVisibility = function(name, value) {
|
|
958
|
-
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'glyphsets');
|
|
959
|
-
if (pickerScene)
|
|
960
|
-
changeOrganPartsVisibilityForScene(pickerScene, name, value, 'glyphsets');
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
/**
|
|
964
|
-
* Change visibility for parts of the current scene.
|
|
965
|
-
*/
|
|
966
|
-
this.changeLinesVisibility = function(name, value) {
|
|
967
|
-
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'lines');
|
|
968
|
-
if (pickerScene)
|
|
969
|
-
changeOrganPartsVisibilityForScene(pickerScene, name, value, 'lines');
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
/**
|
|
973
|
-
* Change visibility for parts of the current scene.
|
|
974
|
-
*/
|
|
975
|
-
this.changePointsetsVisibility = function(name, value) {
|
|
976
|
-
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'pointsets');
|
|
977
|
-
if (pickerScene)
|
|
978
|
-
changeOrganPartsVisibilityForScene(pickerScene, name, value, 'pointsets');
|
|
1304
|
+
BaseModule.prototype.settingsChanged = function () {
|
|
1305
|
+
var callbackArray = this.onChangedCallbacks.slice();
|
|
1306
|
+
|
|
1307
|
+
for (var i = 0; i < callbackArray.length; i++) {
|
|
1308
|
+
callbackArray[i](this, MODULE_CHANGE.SETTINGS_CHANGED);
|
|
979
1309
|
}
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
this.changeOrganPartsVisibilityCallback = function(name) {
|
|
994
|
-
return function(value) {
|
|
995
|
-
_this.changeOrganPartsVisibility(name, value);
|
|
996
|
-
}
|
|
997
|
-
}
|
|
998
|
-
|
|
999
|
-
/**
|
|
1000
|
-
* Change some of the ZincGeometry property for never map geometry
|
|
1001
|
-
*
|
|
1002
|
-
* @callback
|
|
1003
|
-
*/
|
|
1004
|
-
var _addNerveMapGeometryCallback = function(GroupName) {
|
|
1005
|
-
return function(geometry) {
|
|
1006
|
-
geometry.groupName = GroupName;
|
|
1007
|
-
if (imageCombiner && geometry.morph && geometry.morph.material.map) {
|
|
1008
|
-
geometry.morph.material.map = new THREE.Texture(imageCombiner.getCombinedImage());
|
|
1009
|
-
geometry.morph.material.map.needsUpdate = true;
|
|
1010
|
-
geometry.morph.material.needsUpdate = true;
|
|
1011
|
-
}
|
|
1012
|
-
}
|
|
1013
|
-
}
|
|
1014
|
-
|
|
1015
|
-
/**
|
|
1016
|
-
* Read in the nerve map models onto the primary renderer when nerve map has
|
|
1017
|
-
* been toggled on.
|
|
1018
|
-
*/
|
|
1019
|
-
var setupNerveMapPrimaryRenderer = function() {
|
|
1020
|
-
var sceneName = _this.sceneData.currentName + "_nervemap";
|
|
1021
|
-
nerveMapScene = _this.zincRenderer.getSceneByName(sceneName);
|
|
1022
|
-
if (nerveMapScene == undefined) {
|
|
1023
|
-
var downloadPath = modelsLoader.getOrgansDirectoryPrefix() + "/" + _this.sceneData.nerveMap.threed.meta;
|
|
1024
|
-
nerveMapScene = _this.zincRenderer.createScene(sceneName);
|
|
1025
|
-
nerveMapScene.loadMetadataURL(downloadPath, _addNerveMapGeometryCallback("threed"));
|
|
1026
|
-
if (_this.sceneData.nerveMap.threed.view !== undefined)
|
|
1027
|
-
nerveMapScene.loadViewURL(modelsLoader.getOrgansDirectoryPrefix() + "/" + _this.sceneData.nerveMap.threed.view);
|
|
1028
|
-
else {
|
|
1029
|
-
nerveMapScene.loadViewURL(modelsLoader.getBodyDirectoryPrefix() + "/body_view.json");
|
|
1030
|
-
}
|
|
1031
|
-
nerveMapScene.ambient.intensity = 8.0;
|
|
1032
|
-
nerveMapScene.directionalLight.intensity = 0;
|
|
1033
|
-
var zincCameraControl = nerveMapScene.getZincCameraControls();
|
|
1034
|
-
zincCameraControl.setMouseButtonAction("AUXILIARY", "ZOOM");
|
|
1035
|
-
zincCameraControl.setMouseButtonAction("SECONDARY", "PAN");
|
|
1036
|
-
_this.sceneData.nerveMap.additionalReader = new (__webpack_require__("6fd2").VaryingTexCoordsReader)(nerveMapScene);
|
|
1037
|
-
var urlsArray = [ modelsLoader.getOrgansDirectoryPrefix() + "/digestive/stomach/nerve_map/3d/xi1_time_0.json",
|
|
1038
|
-
modelsLoader.getOrgansDirectoryPrefix() + "/digestive/stomach/nerve_map/3d/xi1_time_1.json",
|
|
1039
|
-
modelsLoader.getOrgansDirectoryPrefix() + "/digestive/stomach/nerve_map/3d/xi0_time_0.json"];
|
|
1040
|
-
_this.sceneData.nerveMap.additionalReader.loadURLsIntoBufferGeometry(urlsArray);
|
|
1041
|
-
}
|
|
1042
|
-
_this.zincRenderer.setCurrentScene(nerveMapScene);
|
|
1043
|
-
_this.graphicsHighlight.reset();
|
|
1044
|
-
}
|
|
1045
|
-
|
|
1046
|
-
var activateAdditionalNerveMapRenderer = function() {
|
|
1047
|
-
for (var i = 0; i < layoutUpdateRequiredCallbacks.length;i++) {
|
|
1048
|
-
layoutUpdateRequiredCallbacks[i](false, true);
|
|
1049
|
-
}
|
|
1050
|
-
}
|
|
1051
|
-
|
|
1052
|
-
/**
|
|
1053
|
-
* Nerve map has been toggled on/off, change organs renderer layput.
|
|
1054
|
-
*/
|
|
1055
|
-
this.changeNerveMapVisibility = function() {
|
|
1056
|
-
_this.sceneData.nerveMapIsActive = !_this.sceneData.nerveMapIsActive;
|
|
1057
|
-
if (_this.sceneData.nerveMapIsActive)
|
|
1058
|
-
setupNerveMapPrimaryRenderer();
|
|
1059
|
-
else {
|
|
1060
|
-
_this.zincRenderer.setCurrentScene(_this.scene);
|
|
1061
|
-
_this.graphicsHighlight.reset();
|
|
1062
|
-
}
|
|
1063
|
-
activateAdditionalNerveMapRenderer();
|
|
1064
|
-
}
|
|
1065
|
-
|
|
1066
|
-
this.changeBackgroundColour = function(backgroundColourString) {
|
|
1067
|
-
var colour = new THREE.Color(backgroundColourString);
|
|
1068
|
-
if (_this.zincRenderer) {
|
|
1069
|
-
var internalRenderer = _this.zincRenderer.getThreeJSRenderer();
|
|
1070
|
-
internalRenderer.setClearColor( colour, 1 );
|
|
1071
|
-
}
|
|
1072
|
-
}
|
|
1073
|
-
|
|
1074
|
-
var addOrganPartToSceneData = function(zincObject) {
|
|
1075
|
-
if (zincObject.groupName) {
|
|
1076
|
-
if (zincObject.isGeometry) {
|
|
1077
|
-
if (!_this.sceneData.geometries.includes(zincObject.groupName)) {
|
|
1078
|
-
_this.sceneData.geometries.push(zincObject.groupName);
|
|
1079
|
-
}
|
|
1080
|
-
} else if (zincObject.isGlyphset) {
|
|
1081
|
-
if (!_this.sceneData.glyphsets.includes(zincObject.groupName)) {
|
|
1082
|
-
_this.sceneData.glyphsets.push(zincObject.groupName);
|
|
1083
|
-
}
|
|
1084
|
-
} else if (zincObject.isLines) {
|
|
1085
|
-
if (!_this.sceneData.lines.includes(zincObject.groupName)) {
|
|
1086
|
-
_this.sceneData.lines.push(zincObject.groupName);
|
|
1087
|
-
}
|
|
1088
|
-
} else if (zincObject.isPointset) {
|
|
1089
|
-
if (!_this.sceneData.pointsets.includes(zincObject.groupName)) {
|
|
1090
|
-
_this.sceneData.pointsets.push(zincObject.groupName);
|
|
1091
|
-
}
|
|
1092
|
-
}
|
|
1093
|
-
}
|
|
1094
|
-
}
|
|
1095
|
-
|
|
1096
|
-
var addOrganPart = function(systemName, partName, useDefautColour, zincObject) {
|
|
1097
|
-
for (var i = 0; i < organPartAddedCallbacks.length;i++) {
|
|
1098
|
-
organPartAddedCallbacks[i](zincObject.groupName, _this.scene.isTimeVarying(), zincObject);
|
|
1099
|
-
}
|
|
1100
|
-
if (useDefautColour)
|
|
1101
|
-
modelsLoader.setGeometryColour(zincObject, systemName, partName);
|
|
1102
|
-
addOrganPartToSceneData(zincObject);
|
|
1103
|
-
if (zincObject.groupName) {
|
|
1104
|
-
_this.displayMessage(zincObject.groupName + " loaded.");
|
|
1105
|
-
} else {
|
|
1106
|
-
_this.displayMessage("Resource loaded.");
|
|
1107
|
-
}
|
|
1108
|
-
var annotation = new (__webpack_require__("a0d7").annotation)();
|
|
1109
|
-
annotation.data = {species:_this.sceneData.currentSpecies, system:systemName, part:partName, group:zincObject.groupName};
|
|
1110
|
-
zincObject.userData = [annotation];
|
|
1111
|
-
}
|
|
1112
|
-
|
|
1113
|
-
/**
|
|
1114
|
-
* New organs geometry has been added to the scene, add UIs and make
|
|
1115
|
-
* sure the viewport is correct.
|
|
1116
|
-
*/
|
|
1117
|
-
var _addOrganPartCallback = function(systemName, partName, useDefautColour) {
|
|
1118
|
-
return function(zincObject) {
|
|
1119
|
-
addOrganPart(systemName, partName, useDefautColour, zincObject);
|
|
1120
|
-
}
|
|
1121
|
-
}
|
|
1122
|
-
|
|
1123
|
-
var downloadCompletedCallback = function() {
|
|
1124
|
-
return function() {
|
|
1125
|
-
_this.settingsChanged();
|
|
1126
|
-
_this.sceneData.timeVarying = _this.scene.isTimeVarying();
|
|
1127
|
-
_this.displayMessage("All resources loaded.");
|
|
1128
|
-
if (finishDownloadCallback)
|
|
1129
|
-
finishDownloadCallback();
|
|
1130
|
-
}
|
|
1131
|
-
}
|
|
1132
|
-
|
|
1133
|
-
var singleItemDownloadCompletedCallback = function(systemName, partName, useDefautColour) {
|
|
1134
|
-
return function(geometry) {
|
|
1135
|
-
addOrganPart(systemName, partName, useDefautColour, geometry);
|
|
1136
|
-
_this.settingsChanged();
|
|
1137
|
-
}
|
|
1138
|
-
}
|
|
1139
|
-
|
|
1140
|
-
/**
|
|
1141
|
-
* Toggle data field displays. Data fields displays flow/pressure and <button @click="play">Play</button>
|
|
1142
|
-
* other activities of the organs.
|
|
1143
|
-
*/
|
|
1144
|
-
this.updateFieldvisibility = function(dataFields, value) {
|
|
1145
|
-
for ( var i = 0; i < dataFields.length; i ++ ) {
|
|
1146
|
-
if (value != i) {
|
|
1147
|
-
var geometryName = dataFields[i].PartName;
|
|
1148
|
-
_this.changeOrganPartsVisibility(geometryName, false);
|
|
1149
|
-
}
|
|
1150
|
-
}
|
|
1151
|
-
if (value > -1) {
|
|
1152
|
-
var partName = dataFields[value].PartName;
|
|
1153
|
-
if ((_this.scene.findGeometriesWithGroupName(partName).length > 0) ||
|
|
1154
|
-
(_this.scene.findGlyphsetsWithGroupName(partName).length > 0)) {
|
|
1155
|
-
_this.changeOrganPartsVisibility(partName, true);
|
|
1156
|
-
} else {
|
|
1157
|
-
var partDetails = getOrganDetails(dataFields[value].SystemName, partName);
|
|
1158
|
-
if (partDetails != undefined) {
|
|
1159
|
-
_this.scene.loadMetadataURL(modelsLoader.getOrgansDirectoryPrefix() + "/" + partDetails.meta);
|
|
1160
|
-
}
|
|
1161
|
-
}
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
|
|
1165
|
-
/**
|
|
1166
|
-
* Return an array containing name(s) of species that also contains the
|
|
1167
|
-
* currently displayed organs.
|
|
1168
|
-
*
|
|
1169
|
-
* @returns {Array} containing species name
|
|
1170
|
-
*/
|
|
1171
|
-
this.getAvailableSpecies = function(currentSpecies, currentSystem, currentPart) {
|
|
1172
|
-
var availableSpecies = new Array();
|
|
1173
|
-
availableSpecies.push("none");
|
|
1174
|
-
var keysArray = Object.keys(organsFileMap);
|
|
1175
|
-
for (index in keysArray) {
|
|
1176
|
-
var species = keysArray[index];
|
|
1177
|
-
if (species != currentSpecies) {
|
|
1178
|
-
if (organsFileMap[species].hasOwnProperty(currentSystem) &&
|
|
1179
|
-
organsFileMap[species][currentSystem].hasOwnProperty(currentPart)) {
|
|
1180
|
-
availableSpecies.push(species);
|
|
1181
|
-
}
|
|
1182
|
-
}
|
|
1183
|
-
}
|
|
1184
|
-
return availableSpecies;
|
|
1185
|
-
}
|
|
1186
|
-
|
|
1187
|
-
var setSceneData = function(speciesName, systemName, partName, organsDetails) {
|
|
1188
|
-
_this.sceneData.nerveMapIsActive = false;
|
|
1189
|
-
_this.sceneData.nerveMap = undefined;
|
|
1190
|
-
_this.sceneData.metaURL = "";
|
|
1191
|
-
_this.sceneData.viewURL = "";
|
|
1192
|
-
_this.sceneData.currentSpecies = speciesName;
|
|
1193
|
-
_this.sceneData.currentSystem = systemName;
|
|
1194
|
-
_this.sceneData.currentPart = partName;
|
|
1195
|
-
_this.sceneData.currentTime = 0.0;
|
|
1196
|
-
_this.sceneData.geometries.splice(0);
|
|
1197
|
-
_this.sceneData.lines.splice(0);
|
|
1198
|
-
_this.sceneData.glyphsets.splice(0);
|
|
1199
|
-
_this.sceneData.pointsets.splice(0);
|
|
1200
|
-
_this.sceneData.timeVarying = false;
|
|
1201
|
-
// This is used as title
|
|
1202
|
-
var name = "";
|
|
1203
|
-
if (speciesName)
|
|
1204
|
-
name = speciesName + "/";
|
|
1205
|
-
if (systemName)
|
|
1206
|
-
name = systemName + "/";
|
|
1207
|
-
if (partName)
|
|
1208
|
-
name = partName;
|
|
1209
|
-
_this.sceneData.currentName = name;
|
|
1210
|
-
}
|
|
1211
|
-
|
|
1212
|
-
this.loadOrgansFromURL = function(url, speciesName, systemName, partName, viewURL) {
|
|
1213
|
-
if (_this.zincRenderer) {
|
|
1214
|
-
if (partName && (_this.sceneData.metaURL !== url)) {
|
|
1215
|
-
setSceneData(speciesName, systemName, partName, undefined);
|
|
1216
|
-
var name = _this.sceneData.currentName;
|
|
1217
|
-
var organScene = _this.zincRenderer.getSceneByName(name);
|
|
1218
|
-
if (organScene) {
|
|
1219
|
-
organScene.clearAll();
|
|
1220
|
-
} else {
|
|
1221
|
-
organScene = _this.zincRenderer.createScene(name);
|
|
1222
|
-
}
|
|
1223
|
-
for (var i = 0; i < sceneChangedCallbacks.length;i++) {
|
|
1224
|
-
sceneChangedCallbacks[i](_this.sceneData);
|
|
1225
|
-
}
|
|
1226
|
-
if (viewURL && viewURL != "") {
|
|
1227
|
-
_this.sceneData.viewURL = viewURL;
|
|
1228
|
-
organScene.loadViewURL(_this.sceneData.viewURL);
|
|
1229
|
-
} else
|
|
1230
|
-
_this.sceneData.viewURL = undefined;
|
|
1231
|
-
_this.sceneData.metaURL = url;
|
|
1232
|
-
_this.displayMessage("Downloading...");
|
|
1233
|
-
organScene.loadMetadataURL(url, _addOrganPartCallback(systemName, partName, false),
|
|
1234
|
-
downloadCompletedCallback());
|
|
1235
|
-
_this.scene = organScene;
|
|
1236
|
-
_this.zincRenderer.setCurrentScene(organScene);
|
|
1237
|
-
_this.graphicsHighlight.reset();
|
|
1238
|
-
var zincCameraControl = organScene.getZincCameraControls();
|
|
1239
|
-
zincCameraControl.enableRaycaster(organScene, _pickingCallback(), _hoverCallback());
|
|
1240
|
-
zincCameraControl.setMouseButtonAction("AUXILIARY", "ZOOM");
|
|
1241
|
-
zincCameraControl.setMouseButtonAction("SECONDARY", "PAN");
|
|
1242
|
-
}
|
|
1243
|
-
}
|
|
1244
|
-
}
|
|
1245
|
-
|
|
1246
|
-
this.alignCameraWithSelectedObject = function(transitionTime) {
|
|
1247
|
-
var objects = _this.graphicsHighlight.getSelected();
|
|
1248
|
-
if (objects && objects[0] && objects[0].userData) {
|
|
1249
|
-
_this.scene.alignObjectToCameraView(objects[0].userData, transitionTime);
|
|
1250
|
-
}
|
|
1251
|
-
}
|
|
1252
|
-
|
|
1253
|
-
this.exportSettings = function() {
|
|
1254
|
-
var settings = {};
|
|
1255
|
-
settings.name = _this.instanceName;
|
|
1256
|
-
if (_this.sceneData.currentSystem)
|
|
1257
|
-
settings.system = _this.sceneData.currentSystem;
|
|
1258
|
-
if (_this.sceneData.currentSpecies)
|
|
1259
|
-
settings.species = _this.sceneData.currentSpecies;
|
|
1260
|
-
if (_this.sceneData.currentPart)
|
|
1261
|
-
settings.part = _this.sceneData.currentPart;
|
|
1262
|
-
settings.metaURL = _this.sceneData.metaURL;
|
|
1263
|
-
if (_this.sceneData.viewURL)
|
|
1264
|
-
settings.viewURL = _this.sceneData.viewURL;
|
|
1265
|
-
settings.dialog = "Organ Viewer";
|
|
1266
|
-
return settings;
|
|
1267
|
-
}
|
|
1268
|
-
|
|
1269
|
-
this.importSettings = function(settings) {
|
|
1270
|
-
if (settings && (settings.dialog == this.typeName)) {
|
|
1271
|
-
_this.setName(settings.name);
|
|
1272
|
-
if (settings.metaURL !== undefined && settings.metaURL != "") {
|
|
1273
|
-
_this.loadOrgansFromURL(settings.metaURL, settings.species,
|
|
1274
|
-
settings.system, settings.part, settings.viewURL);
|
|
1275
|
-
} else {
|
|
1276
|
-
_this.loadOrgans(settings.species, settings.system, settings.part);
|
|
1277
|
-
}
|
|
1278
|
-
return true;
|
|
1279
|
-
}
|
|
1280
|
-
return false;
|
|
1281
|
-
}
|
|
1282
|
-
|
|
1283
|
-
/**
|
|
1284
|
-
* initialise loading of the html layout for the organs panel, this is
|
|
1285
|
-
* called when the {@link PJP.OrgansViewer} is created.
|
|
1286
|
-
*
|
|
1287
|
-
* @async
|
|
1288
|
-
*/
|
|
1289
|
-
var initialise = function() {
|
|
1290
|
-
_this.initialiseRenderer(undefined);
|
|
1291
|
-
if (_this.zincRenderer) {
|
|
1292
|
-
_this.zincRenderer.addPreRenderCallbackFunction(preRenderUpdateCallback());
|
|
1293
|
-
_this.zincRenderer.addPostRenderCallbackFunction(postRenderUpdateCallback());
|
|
1294
|
-
}
|
|
1310
|
+
};
|
|
1311
|
+
|
|
1312
|
+
BaseModule.prototype.exportSettings = function () {
|
|
1313
|
+
var settings = {};
|
|
1314
|
+
settings.dialog = this.typeName;
|
|
1315
|
+
settings.name = this.instanceName;
|
|
1316
|
+
return settings;
|
|
1317
|
+
};
|
|
1318
|
+
|
|
1319
|
+
BaseModule.prototype.importSettings = function (settings) {
|
|
1320
|
+
if (settings.dialog == this.typeName) {
|
|
1321
|
+
this.setName(settings.name);
|
|
1322
|
+
return true;
|
|
1295
1323
|
}
|
|
1296
|
-
|
|
1297
|
-
initialise();
|
|
1298
1324
|
|
|
1299
|
-
|
|
1325
|
+
return false;
|
|
1326
|
+
};
|
|
1300
1327
|
|
|
1301
|
-
|
|
1302
|
-
|
|
1328
|
+
BaseModule.prototype.publishChanges = function (annotations, eventType) {
|
|
1329
|
+
for (var i = 0; i < this.eventNotifiers.length; i++) {
|
|
1330
|
+
this.eventNotifiers[i].publish(this, eventType, annotations);
|
|
1331
|
+
}
|
|
1332
|
+
};
|
|
1303
1333
|
|
|
1334
|
+
BaseModule.prototype.getName = function () {
|
|
1335
|
+
return this.instanceName;
|
|
1336
|
+
};
|
|
1304
1337
|
|
|
1305
|
-
|
|
1338
|
+
BaseModule.prototype.destroy = function () {
|
|
1339
|
+
//Make a temorary copy as the array may be altered during the loop
|
|
1340
|
+
var callbackArray = this.onChangedCallbacks.slice();
|
|
1306
1341
|
|
|
1307
|
-
|
|
1308
|
-
|
|
1342
|
+
for (var i = 0; i < callbackArray.length; i++) {
|
|
1343
|
+
callbackArray[i](this, MODULE_CHANGE.DESTROYED);
|
|
1344
|
+
}
|
|
1309
1345
|
|
|
1310
|
-
|
|
1346
|
+
delete this;
|
|
1347
|
+
};
|
|
1348
|
+
|
|
1349
|
+
BaseModule.prototype.addChangedCallback = function (callback) {
|
|
1350
|
+
if (this.onChangedCallbacks.includes(callback) == false) this.onChangedCallbacks.push(callback);
|
|
1351
|
+
};
|
|
1352
|
+
|
|
1353
|
+
BaseModule.prototype.removeChangedCallback = function (callback) {
|
|
1354
|
+
var index = this.onChangedCallbacks.indexOf(callback);
|
|
1355
|
+
|
|
1356
|
+
if (index > -1) {
|
|
1357
|
+
this.onChangedCallbacks.splice(index, 1);
|
|
1358
|
+
}
|
|
1359
|
+
};
|
|
1360
|
+
|
|
1361
|
+
BaseModule.prototype.addNotifier = function (eventNotifier) {
|
|
1362
|
+
this.eventNotifiers.push(eventNotifier);
|
|
1363
|
+
};
|
|
1364
|
+
|
|
1365
|
+
exports.BaseModule = BaseModule;
|
|
1366
|
+
exports.MODULE_CHANGE = MODULE_CHANGE;
|
|
1311
1367
|
|
|
1312
1368
|
/***/ }),
|
|
1313
1369
|
|
|
@@ -1332,160 +1388,40 @@ module.exports = require("element-ui/lib/row");
|
|
|
1332
1388
|
|
|
1333
1389
|
/***/ }),
|
|
1334
1390
|
|
|
1335
|
-
/***/ "
|
|
1391
|
+
/***/ "7037":
|
|
1336
1392
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1337
1393
|
|
|
1338
|
-
|
|
1394
|
+
__webpack_require__("6049");
|
|
1395
|
+
|
|
1396
|
+
__webpack_require__("51e9");
|
|
1397
|
+
|
|
1398
|
+
__webpack_require__("02ac");
|
|
1399
|
+
|
|
1400
|
+
__webpack_require__("8c84");
|
|
1401
|
+
|
|
1402
|
+
__webpack_require__("850c");
|
|
1339
1403
|
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
ambient : { type: "c", value: new THREE.Color( 0x000000 ) },
|
|
1359
|
-
diffuse : { type: "c", value: new THREE.Color( 0xffffff ) },
|
|
1360
|
-
emissive : { type: "c", value: new THREE.Color( 0xbbbbbb ) },
|
|
1361
|
-
specular : { type: "c", value: new THREE.Color( 0x111111 ) },
|
|
1362
|
-
shininess: { type: "f", value: 100 },
|
|
1363
|
-
opacity: { type: "f", value: 1.0 },
|
|
1364
|
-
ambientLightColor: { type: "c", value: new THREE.Color( 0xF0F0F0 ) },
|
|
1365
|
-
directionalLightColor: { type: "c", value: new THREE.Color( 0x555555) },
|
|
1366
|
-
directionalLightDirection: { type: "v3", value: new THREE.Vector3() },
|
|
1367
|
-
offsetRepeat: { value: new THREE.Vector4( 0, 0, 1, 1 ) },
|
|
1368
|
-
time: { type: "f", value: 0.0 },
|
|
1369
|
-
slide_pos: { type: "f", value: 1.0 },
|
|
1370
|
-
myTex: {type: 't', value: null}
|
|
1371
|
-
} ] );
|
|
1372
|
-
|
|
1373
|
-
var addGeometryIntoBufferGeometry = function(order, geometry)
|
|
1374
|
-
{
|
|
1375
|
-
var arrayLength = geometry.faces.length * 3 * 3;
|
|
1376
|
-
var positions = new Float32Array( arrayLength );
|
|
1377
|
-
var colors = new Float32Array( arrayLength );
|
|
1378
|
-
var normals = new Float32Array( arrayLength );
|
|
1379
|
-
var texCoords = new Float32Array( geometry.faces.length * 3 * 2 );
|
|
1380
|
-
if (bufferGeometry === undefined)
|
|
1381
|
-
bufferGeometry = new THREE.BufferGeometry();
|
|
1382
|
-
|
|
1383
|
-
geometry.faces.forEach( function ( face, index ) {
|
|
1384
|
-
positions[ index * 9 + 0 ] = geometry.vertices[ face.a ].x;
|
|
1385
|
-
positions[ index * 9 + 1 ] = geometry.vertices[ face.a ].y;
|
|
1386
|
-
positions[ index * 9 + 2 ] = geometry.vertices[ face.a ].z;
|
|
1387
|
-
positions[ index * 9 + 3 ] = geometry.vertices[ face.b ].x;
|
|
1388
|
-
positions[ index * 9 + 4 ] = geometry.vertices[ face.b ].y;
|
|
1389
|
-
positions[ index * 9 + 5 ] = geometry.vertices[ face.b ].z;
|
|
1390
|
-
positions[ index * 9 + 6 ] = geometry.vertices[ face.c ].x;
|
|
1391
|
-
positions[ index * 9 + 7 ] = geometry.vertices[ face.c ].y;
|
|
1392
|
-
positions[ index * 9 + 8 ] = geometry.vertices[ face.c ].z;
|
|
1393
|
-
|
|
1394
|
-
normals[ index * 9 + 0 ] = face.vertexNormals[0].x;
|
|
1395
|
-
normals[ index * 9 + 1 ] = face.vertexNormals[0].y;
|
|
1396
|
-
normals[ index * 9 + 2 ] = face.vertexNormals[0].z;
|
|
1397
|
-
normals[ index * 9 + 3 ] = face.vertexNormals[1].x;
|
|
1398
|
-
normals[ index * 9 + 4 ] = face.vertexNormals[1].y;
|
|
1399
|
-
normals[ index * 9 + 5 ] = face.vertexNormals[1].z;
|
|
1400
|
-
normals[ index * 9 + 6 ] = face.vertexNormals[2].x;
|
|
1401
|
-
normals[ index * 9 + 7 ] = face.vertexNormals[2].y;
|
|
1402
|
-
normals[ index * 9 + 8 ] = face.vertexNormals[2].z;
|
|
1403
|
-
|
|
1404
|
-
texCoords[ index * 6 + 0] = geometry.faceVertexUvs[ 0 ][index][0].x;
|
|
1405
|
-
texCoords[ index * 6 + 1] = geometry.faceVertexUvs[ 0 ][index][0].y;
|
|
1406
|
-
texCoords[ index * 6 + 2] = geometry.faceVertexUvs[ 0 ][index][1].x;
|
|
1407
|
-
texCoords[ index * 6 + 3] = geometry.faceVertexUvs[ 0 ][index][1].y;
|
|
1408
|
-
texCoords[ index * 6 + 4] = geometry.faceVertexUvs[ 0 ][index][2].x;
|
|
1409
|
-
texCoords[ index * 6 + 5] = geometry.faceVertexUvs[ 0 ][index][2].y;
|
|
1410
|
-
} );
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
if (order == 0) {
|
|
1414
|
-
bufferGeometry.addAttribute( "position", new THREE.BufferAttribute( positions, 3) );
|
|
1415
|
-
bufferGeometry.addAttribute( "normal", new THREE.BufferAttribute( normals, 3 ) );
|
|
1416
|
-
bufferGeometry.addAttribute( "uv", new THREE.BufferAttribute( texCoords, 2 ) );
|
|
1417
|
-
} else {
|
|
1418
|
-
var positionStr = "position_" + order;
|
|
1419
|
-
var normalStr = "normal_" + order;
|
|
1420
|
-
var uvsStr = "uv_" + order;
|
|
1421
|
-
bufferGeometry.addAttribute( positionStr, new THREE.BufferAttribute( positions, 3) );
|
|
1422
|
-
bufferGeometry.addAttribute( normalStr, new THREE.BufferAttribute( normals, 3 ) );
|
|
1423
|
-
bufferGeometry.addAttribute( uvsStr, new THREE.BufferAttribute( texCoords, 2 ) );
|
|
1424
|
-
}
|
|
1425
|
-
|
|
1426
|
-
}
|
|
1427
|
-
|
|
1428
|
-
var meshReady = function(bufferGeometryIn, shaderText, material){
|
|
1429
|
-
var shaderMaterial = new THREE.RawShaderMaterial( {
|
|
1430
|
-
vertexShader: shaderText[0],
|
|
1431
|
-
fragmentShader: shaderText[1],
|
|
1432
|
-
uniforms: shadersUniforms
|
|
1433
|
-
} );
|
|
1434
|
-
shaderMaterial.uniforms.myTex.value = texture;
|
|
1435
|
-
shaderMaterial.side = THREE.DoubleSide;
|
|
1436
|
-
shaderMaterial.depthTest = true;
|
|
1437
|
-
shaderMaterial.needsUpdate = true;
|
|
1438
|
-
shaderMaterial.map = texture;
|
|
1439
|
-
shaderMaterial.uniforms.myTex.value.needsUpdate = true;
|
|
1440
|
-
shaderMaterial.opacity = 1.0;
|
|
1441
|
-
zincGeometry = scene.addZincGeometry(bufferGeometryIn, 30001, undefined, undefined, false, false, true, undefined, shaderMaterial);
|
|
1442
|
-
zincGeometry.groupName = "varyingTexture";
|
|
1443
|
-
}
|
|
1444
|
-
|
|
1445
|
-
var myLoader = function(order, shaderText) {
|
|
1446
|
-
return function(geometry, materials){
|
|
1447
|
-
var material = 0;
|
|
1448
|
-
addGeometryIntoBufferGeometry(order, geometry);
|
|
1449
|
-
completedInputs++;
|
|
1450
|
-
if (completedInputs == numberOfInputs) {
|
|
1451
|
-
meshReady(bufferGeometry, shaderText, material);
|
|
1452
|
-
if (finishCallbackFunction != undefined && (typeof finishCallbackFunction == 'function'))
|
|
1453
|
-
finishCallbackFunction(bufferGeometry);
|
|
1454
|
-
}
|
|
1455
|
-
}
|
|
1456
|
-
}
|
|
1457
|
-
|
|
1458
|
-
this.setSliderPos = function(pos) {
|
|
1459
|
-
if (zincGeometry)
|
|
1460
|
-
zincGeometry.morph.material.uniforms.slide_pos.value = pos;
|
|
1461
|
-
}
|
|
1462
|
-
|
|
1463
|
-
this.setTime = function(time) {
|
|
1464
|
-
if (zincGeometry) {
|
|
1465
|
-
zincGeometry.morph.material.uniforms.time.value = time;
|
|
1466
|
-
}
|
|
1467
|
-
}
|
|
1468
|
-
|
|
1469
|
-
this.setTexture = function(textureIn) {
|
|
1470
|
-
if (zincGeometry) {
|
|
1471
|
-
zincGeometry.morph.material.uniforms.myTex.value = textureIn;
|
|
1472
|
-
zincGeometry.morph.material.uniforms.myTex.value.needsUpdate = true;
|
|
1473
|
-
}
|
|
1474
|
-
}
|
|
1475
|
-
|
|
1476
|
-
this.loadURLsIntoBufferGeometry = function(urls, finishCallback, progressCallback, errorCallback) {
|
|
1477
|
-
var loader = new THREE.JSONLoader( true );
|
|
1478
|
-
numberOfInputs = urls.length;
|
|
1479
|
-
finishCallbackFunction = finishCallback;
|
|
1480
|
-
var shaderText = [
|
|
1481
|
-
__webpack_require__("1823"),
|
|
1482
|
-
__webpack_require__("4e8a")
|
|
1483
|
-
];
|
|
1484
|
-
for (var i = 0; i < numberOfInputs; i++)
|
|
1485
|
-
loader.load( urls[i], myLoader(i, shaderText), progressCallback, errorCallback);
|
|
1486
|
-
}
|
|
1404
|
+
__webpack_require__("907b");
|
|
1405
|
+
|
|
1406
|
+
__webpack_require__("1ce0");
|
|
1407
|
+
|
|
1408
|
+
function _typeof(obj) {
|
|
1409
|
+
"@babel/helpers - typeof";
|
|
1410
|
+
|
|
1411
|
+
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
|
1412
|
+
module.exports = _typeof = function _typeof(obj) {
|
|
1413
|
+
return typeof obj;
|
|
1414
|
+
};
|
|
1415
|
+
} else {
|
|
1416
|
+
module.exports = _typeof = function _typeof(obj) {
|
|
1417
|
+
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
1418
|
+
};
|
|
1419
|
+
}
|
|
1420
|
+
|
|
1421
|
+
return _typeof(obj);
|
|
1487
1422
|
}
|
|
1488
1423
|
|
|
1424
|
+
module.exports = _typeof;
|
|
1489
1425
|
|
|
1490
1426
|
/***/ }),
|
|
1491
1427
|
|
|
@@ -1496,105 +1432,68 @@ module.exports = require("element-ui/lib/theme-chalk/col.css");
|
|
|
1496
1432
|
|
|
1497
1433
|
/***/ }),
|
|
1498
1434
|
|
|
1499
|
-
/***/ "
|
|
1500
|
-
/***/ (function(module,
|
|
1501
|
-
|
|
1502
|
-
"use strict";
|
|
1503
|
-
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_318fd7c8_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("24f0");
|
|
1504
|
-
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_318fd7c8_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_318fd7c8_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
|
|
1505
|
-
/* unused harmony reexport * */
|
|
1435
|
+
/***/ "73ef":
|
|
1436
|
+
/***/ (function(module, exports) {
|
|
1506
1437
|
|
|
1438
|
+
module.exports = require("element-ui/lib/theme-chalk/main.css");
|
|
1507
1439
|
|
|
1508
1440
|
/***/ }),
|
|
1509
1441
|
|
|
1510
|
-
/***/ "
|
|
1442
|
+
/***/ "7c81":
|
|
1511
1443
|
/***/ (function(module, exports) {
|
|
1512
1444
|
|
|
1513
|
-
module.exports = require("
|
|
1445
|
+
module.exports = require("core-js/modules/es.array.splice");
|
|
1514
1446
|
|
|
1515
1447
|
/***/ }),
|
|
1516
1448
|
|
|
1517
|
-
/***/ "
|
|
1449
|
+
/***/ "7d9b":
|
|
1518
1450
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1519
1451
|
|
|
1520
|
-
|
|
1452
|
+
// extracted by mini-css-extract-plugin
|
|
1521
1453
|
|
|
1522
|
-
|
|
1523
|
-
var tooltipcontainerElement = undefined;
|
|
1524
|
-
var tipElement = undefined;
|
|
1525
|
-
var tiptextElement = undefined;
|
|
1526
|
-
var template = '<div class="mptooltip" id="tip"><span class="mptooltiptext" id="tiptext"> Tooltip text</span></div>';
|
|
1527
|
-
var _this = this;
|
|
1528
|
-
|
|
1529
|
-
/**
|
|
1530
|
-
* Show tool tip on the specified windows coordinates.
|
|
1531
|
-
* @param {Number} x - Style sheet with the same title.
|
|
1532
|
-
* @param {Number} y - selector string to match.
|
|
1533
|
-
*/
|
|
1534
|
-
this.show = function(x, y) {
|
|
1535
|
-
tooltipcontainerElement.style.left = x +"px";
|
|
1536
|
-
tooltipcontainerElement.style.top = (y - 20) + "px";
|
|
1537
|
-
tipElement.style.visibility = "visible";
|
|
1538
|
-
tipElement.style.opacity = 1;
|
|
1539
|
-
tiptextElement.style.visibility = "visible";
|
|
1540
|
-
tiptextElement.style.opacity = 1;
|
|
1541
|
-
}
|
|
1542
|
-
|
|
1543
|
-
this.hide = function() {
|
|
1544
|
-
tipElement.style.visibility = "hidden";
|
|
1545
|
-
tipElement.style.opacity = 0;
|
|
1546
|
-
tiptextElement.style.visibility = "hidden";
|
|
1547
|
-
tiptextElement.style.opacity = 0;
|
|
1548
|
-
}
|
|
1549
|
-
|
|
1550
|
-
/**
|
|
1551
|
-
* Change the tooltip text.
|
|
1552
|
-
* @param {String} text - Text to update the tooltip to.
|
|
1553
|
-
*/
|
|
1554
|
-
this.setText = function(text) {
|
|
1555
|
-
tiptextElement.innerHTML = text;
|
|
1556
|
-
}
|
|
1454
|
+
/***/ }),
|
|
1557
1455
|
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
tooltipcontainerElement.id = "tooltipcontainer";
|
|
1561
|
-
tooltipcontainerElement.innerHTML = template;
|
|
1562
|
-
/*
|
|
1563
|
-
for (i = 0; i < childNodes.length; i++) {
|
|
1564
|
-
parent[0].appendChild(childNodes[i]);
|
|
1565
|
-
}
|
|
1566
|
-
*/
|
|
1567
|
-
tipElement = tooltipcontainerElement.querySelector("#tip");
|
|
1568
|
-
tiptextElement = tooltipcontainerElement.querySelector("#tiptext");
|
|
1569
|
-
container.appendChild(tooltipcontainerElement);
|
|
1570
|
-
|
|
1571
|
-
}
|
|
1572
|
-
|
|
1573
|
-
setupToolTipContainer();
|
|
1574
|
-
}
|
|
1456
|
+
/***/ "7f9f":
|
|
1457
|
+
/***/ (function(module, exports) {
|
|
1575
1458
|
|
|
1459
|
+
module.exports = require("element-ui/lib/locale");
|
|
1460
|
+
|
|
1461
|
+
/***/ }),
|
|
1462
|
+
|
|
1463
|
+
/***/ "80c4":
|
|
1464
|
+
/***/ (function(module, exports) {
|
|
1576
1465
|
|
|
1466
|
+
module.exports = require("element-ui/lib/theme-chalk/option.css");
|
|
1577
1467
|
|
|
1578
1468
|
/***/ }),
|
|
1579
1469
|
|
|
1580
|
-
/***/ "
|
|
1470
|
+
/***/ "8278":
|
|
1581
1471
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1582
1472
|
|
|
1583
|
-
|
|
1473
|
+
__webpack_require__("bcd8");
|
|
1584
1474
|
|
|
1475
|
+
var _readOnlyError = __webpack_require__("da60");
|
|
1476
|
+
|
|
1477
|
+
var THREE = __webpack_require__("9206").THREE;
|
|
1585
1478
|
/**
|
|
1586
1479
|
* Create a {@link Zinc.Renderer} on the dom element with corresponding elementID.
|
|
1587
1480
|
* @param {String} elementID - id of the target dom element.
|
|
1588
1481
|
* @returns {Zinc.Renderer}
|
|
1589
1482
|
*/
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
var
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
var createRenderer = function createRenderer() {
|
|
1486
|
+
var WEBGL = __webpack_require__("cf41").WEBGL;
|
|
1487
|
+
|
|
1488
|
+
var localContainer = document.createElement('div');
|
|
1489
|
+
var localRenderer = undefined;
|
|
1490
|
+
;
|
|
1594
1491
|
localContainer.style.height = "100%";
|
|
1492
|
+
|
|
1595
1493
|
if (WEBGL.isWebGLAvailable()) {
|
|
1596
1494
|
var Zinc = __webpack_require__("9206");
|
|
1597
|
-
|
|
1495
|
+
|
|
1496
|
+
localRenderer = new Zinc.Renderer(localContainer, window);
|
|
1598
1497
|
Zinc.defaultMaterialColor = 0xFFFF9C;
|
|
1599
1498
|
localRenderer.initialiseVisualisation();
|
|
1600
1499
|
localRenderer.playAnimation = false;
|
|
@@ -1602,278 +1501,253 @@ var createRenderer = function () {
|
|
|
1602
1501
|
var warning = WEBGL.getWebGLErrorMessage();
|
|
1603
1502
|
localContainer.appendChild(warning);
|
|
1604
1503
|
}
|
|
1605
|
-
return {"renderer":localRenderer, "container":localContainer};
|
|
1606
|
-
}
|
|
1607
1504
|
|
|
1608
|
-
|
|
1609
|
-
|
|
1505
|
+
return {
|
|
1506
|
+
"renderer": localRenderer,
|
|
1507
|
+
"container": localContainer
|
|
1508
|
+
};
|
|
1509
|
+
};
|
|
1510
|
+
|
|
1511
|
+
var RendererModule = function RendererModule() {
|
|
1512
|
+
__webpack_require__("6aa6").BaseModule.call(this);
|
|
1513
|
+
|
|
1610
1514
|
this.scene = undefined;
|
|
1611
|
-
this.toolTip = undefined;
|
|
1612
1515
|
this.rendererContainer = undefined;
|
|
1613
1516
|
this.displayArea = undefined;
|
|
1614
|
-
this.graphicsHighlight = new (__webpack_require__("
|
|
1517
|
+
this.graphicsHighlight = new (__webpack_require__("5ec5").GraphicsHighlight)();
|
|
1615
1518
|
this.zincRenderer = null;
|
|
1616
1519
|
this.selectedScreenCoordinates = new THREE.Vector3();
|
|
1617
1520
|
this.selectedCenter = undefined;
|
|
1618
|
-
}
|
|
1619
|
-
|
|
1620
|
-
RendererModule.prototype = Object.create((__webpack_require__("3966").BaseModule).prototype);
|
|
1521
|
+
};
|
|
1621
1522
|
|
|
1523
|
+
RendererModule.prototype = Object.create(__webpack_require__("6aa6").BaseModule.prototype);
|
|
1622
1524
|
/**
|
|
1623
1525
|
* This function will get the the first intersected object with name or
|
|
1624
1526
|
* the first glyph object with name.
|
|
1625
1527
|
*/
|
|
1626
|
-
RendererModule.prototype.getIntersectedObject = function(intersects) {
|
|
1627
|
-
if (intersects) {
|
|
1628
|
-
for (var i = 0; i < intersects.length; i++) {
|
|
1629
|
-
if (intersects[i] !== undefined) {
|
|
1630
|
-
if (intersects[i].object &&
|
|
1631
|
-
intersects[i].object.userData &&
|
|
1632
|
-
intersects[i].object.userData.isZincObject &&
|
|
1633
|
-
(intersects[i].object.name ||
|
|
1634
|
-
intersects[i].object.userData.isMarker))
|
|
1635
|
-
return intersects[i];
|
|
1636
|
-
}
|
|
1637
|
-
}
|
|
1638
|
-
}
|
|
1639
|
-
return undefined;
|
|
1640
|
-
}
|
|
1641
1528
|
|
|
1642
|
-
RendererModule.prototype.
|
|
1643
|
-
|
|
1644
|
-
for (var i = 0; i <
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1529
|
+
RendererModule.prototype.getIntersectedObject = function (intersects) {
|
|
1530
|
+
if (intersects) {
|
|
1531
|
+
for (var i = 0; i < intersects.length; i++) {
|
|
1532
|
+
if (intersects[i] !== undefined) {
|
|
1533
|
+
if (intersects[i].object && intersects[i].object.userData && intersects[i].object.userData.isZincObject && (intersects[i].object.name || intersects[i].object.userData.isMarker)) return intersects[i];
|
|
1534
|
+
}
|
|
1535
|
+
}
|
|
1536
|
+
}
|
|
1537
|
+
|
|
1538
|
+
return undefined;
|
|
1539
|
+
};
|
|
1540
|
+
|
|
1541
|
+
RendererModule.prototype.getAnnotationsFromObjects = function (objects) {
|
|
1542
|
+
var annotations = [];
|
|
1543
|
+
var count = 0;
|
|
1544
|
+
|
|
1545
|
+
for (var i = 0; i < objects.length; i++) {
|
|
1546
|
+
var zincObject = objects[i].userData;
|
|
1547
|
+
var annotation = undefined;
|
|
1548
|
+
|
|
1549
|
+
if (zincObject) {
|
|
1550
|
+
if (zincObject.isGlyph || zincObject.isGlyphset) {
|
|
1551
|
+
var glyphset = zincObject;
|
|
1552
|
+
if (zincObject.isGlyph) glyphset = (_readOnlyError("glyphset"), zincObject.getGlyphset());
|
|
1553
|
+
annotation = glyphset.userData ? glyphset.userData[0] : undefined;
|
|
1554
|
+
|
|
1555
|
+
if (annotation && annotation.data) {
|
|
1556
|
+
if (objects[i].name && objects[i].name != "") annotation.data.id = objects[i].name;else annotation.data.id = glyphset.groupName;
|
|
1557
|
+
}
|
|
1558
|
+
} else {
|
|
1559
|
+
annotation = zincObject.userData ? zincObject.userData[0] : undefined;
|
|
1560
|
+
|
|
1561
|
+
if (annotation && annotation.data) {
|
|
1562
|
+
annotation.data.id = objects[i].name;
|
|
1664
1563
|
}
|
|
1665
1564
|
}
|
|
1666
|
-
annotations[i] = annotation;
|
|
1667
1565
|
}
|
|
1668
|
-
return annotations;
|
|
1669
|
-
}
|
|
1670
1566
|
|
|
1671
|
-
|
|
1567
|
+
if (annotation) annotations[count++] = annotation;
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
return annotations;
|
|
1571
|
+
};
|
|
1572
|
+
|
|
1573
|
+
RendererModule.prototype.setHighlightedByObjects = function (objects, propagateChanges) {
|
|
1672
1574
|
var changed = this.graphicsHighlight.setHighlighted(objects);
|
|
1575
|
+
|
|
1673
1576
|
if (changed && propagateChanges) {
|
|
1674
|
-
var eventType = __webpack_require__("
|
|
1577
|
+
var eventType = __webpack_require__("9b21").EVENT_TYPE.HIGHLIGHTED;
|
|
1578
|
+
|
|
1675
1579
|
var annotations = this.getAnnotationsFromObjects(objects);
|
|
1676
1580
|
this.publishChanges(annotations, eventType);
|
|
1677
1581
|
}
|
|
1678
|
-
return changed;
|
|
1679
|
-
}
|
|
1680
1582
|
|
|
1583
|
+
return changed;
|
|
1584
|
+
};
|
|
1681
1585
|
|
|
1682
|
-
RendererModule.prototype.setHighlightedByZincObject = function(
|
|
1683
|
-
zincObject, propagateChanges)
|
|
1684
|
-
|
|
1685
|
-
}
|
|
1586
|
+
RendererModule.prototype.setHighlightedByZincObject = function (zincObject, propagateChanges) {
|
|
1587
|
+
return this.setHighlightedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
|
|
1588
|
+
};
|
|
1686
1589
|
|
|
1687
|
-
RendererModule.prototype.setupLiveCoordinates = function(zincObjects) {
|
|
1688
|
-
if (zincObjects &&
|
|
1590
|
+
RendererModule.prototype.setupLiveCoordinates = function (zincObjects) {
|
|
1591
|
+
if (zincObjects && zincObjects.length > 0) {
|
|
1689
1592
|
var boundingBox = this.scene.getBoundingBoxOfZincObjects(zincObjects);
|
|
1690
|
-
|
|
1593
|
+
var newSelectedCenter = new THREE.Vector3();
|
|
1691
1594
|
boundingBox.getCenter(newSelectedCenter);
|
|
1692
|
-
if (this.selectedCenter == undefined)
|
|
1693
|
-
this.selectedCenter = newSelectedCenter;
|
|
1694
|
-
else {
|
|
1595
|
+
if (this.selectedCenter == undefined) this.selectedCenter = newSelectedCenter;else {
|
|
1695
1596
|
this.selectedCenter.x = newSelectedCenter.x;
|
|
1696
1597
|
this.selectedCenter.y = newSelectedCenter.y;
|
|
1697
1598
|
}
|
|
1698
1599
|
} else {
|
|
1699
1600
|
this.selectedCenter = undefined;
|
|
1700
1601
|
}
|
|
1701
|
-
}
|
|
1602
|
+
};
|
|
1702
1603
|
|
|
1703
|
-
RendererModule.prototype.objectsToZincObjects = function(objects) {
|
|
1604
|
+
RendererModule.prototype.objectsToZincObjects = function (objects) {
|
|
1704
1605
|
var zincObjects = [];
|
|
1606
|
+
|
|
1705
1607
|
for (var i = 0; i < objects.length; i++) {
|
|
1706
1608
|
var zincObject = objects[i].userData;
|
|
1609
|
+
|
|
1707
1610
|
if (zincObject) {
|
|
1708
1611
|
if (zincObject.isGlyph || zincObject.isGlyphset) {
|
|
1709
1612
|
var glyphset = zincObject;
|
|
1710
|
-
if (zincObject.isGlyph)
|
|
1711
|
-
|
|
1712
|
-
zincObjects. push(glyphset);
|
|
1613
|
+
if (zincObject.isGlyph) glyphset = zincObject.getGlyphset();
|
|
1614
|
+
zincObjects.push(glyphset);
|
|
1713
1615
|
} else {
|
|
1714
|
-
zincObjects.
|
|
1616
|
+
zincObjects.push(zincObject);
|
|
1715
1617
|
}
|
|
1716
1618
|
}
|
|
1717
1619
|
}
|
|
1718
|
-
return zincObjects;
|
|
1719
|
-
}
|
|
1720
1620
|
|
|
1621
|
+
return zincObjects;
|
|
1622
|
+
};
|
|
1721
1623
|
|
|
1722
|
-
RendererModule.prototype.setSelectedByObjects = function(
|
|
1723
|
-
objects, propagateChanges) {
|
|
1624
|
+
RendererModule.prototype.setSelectedByObjects = function (objects, propagateChanges) {
|
|
1724
1625
|
var changed = this.graphicsHighlight.setSelected(objects);
|
|
1626
|
+
|
|
1725
1627
|
if (changed) {
|
|
1726
1628
|
var zincObjects = this.objectsToZincObjects(objects);
|
|
1727
1629
|
this.setupLiveCoordinates(zincObjects);
|
|
1630
|
+
|
|
1728
1631
|
if (propagateChanges) {
|
|
1729
|
-
var eventType = __webpack_require__("
|
|
1632
|
+
var eventType = __webpack_require__("9b21").EVENT_TYPE.SELECTED;
|
|
1633
|
+
|
|
1730
1634
|
var annotations = this.getAnnotationsFromObjects(objects);
|
|
1731
1635
|
this.publishChanges(annotations, eventType);
|
|
1732
1636
|
}
|
|
1733
1637
|
}
|
|
1638
|
+
|
|
1734
1639
|
return changed;
|
|
1735
|
-
}
|
|
1640
|
+
};
|
|
1736
1641
|
|
|
1737
|
-
RendererModule.prototype.setSelectedByZincObject = function(
|
|
1738
|
-
zincObject, propagateChanges) {
|
|
1642
|
+
RendererModule.prototype.setSelectedByZincObject = function (zincObject, propagateChanges) {
|
|
1739
1643
|
return this.setSelectedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
|
|
1740
|
-
}
|
|
1644
|
+
};
|
|
1741
1645
|
|
|
1742
|
-
var addGlyphToArray = function(objects) {
|
|
1743
|
-
return function(glyph) {
|
|
1646
|
+
var addGlyphToArray = function addGlyphToArray(objects) {
|
|
1647
|
+
return function (glyph) {
|
|
1744
1648
|
objects.push(glyph.getMesh());
|
|
1745
|
-
}
|
|
1746
|
-
}
|
|
1649
|
+
};
|
|
1650
|
+
};
|
|
1747
1651
|
|
|
1748
|
-
RendererModule.prototype.findObjectsByGroupName = function(groupName) {
|
|
1652
|
+
RendererModule.prototype.findObjectsByGroupName = function (groupName) {
|
|
1749
1653
|
var geometries = this.scene.findGeometriesWithGroupName(groupName);
|
|
1750
1654
|
var objects = [];
|
|
1751
|
-
|
|
1655
|
+
|
|
1656
|
+
for (var i = 0; i < geometries.length; i++) {
|
|
1752
1657
|
objects.push(geometries[i].morph);
|
|
1753
1658
|
}
|
|
1659
|
+
|
|
1754
1660
|
var glyphsets = this.scene.findGlyphsetsWithGroupName(groupName);
|
|
1755
|
-
|
|
1756
|
-
|
|
1661
|
+
|
|
1662
|
+
for (var _i = 0; _i < glyphsets.length; _i++) {
|
|
1663
|
+
glyphsets[_i].forEachGlyph(addGlyphToArray(objects));
|
|
1757
1664
|
}
|
|
1758
|
-
|
|
1665
|
+
|
|
1759
1666
|
return objects;
|
|
1760
|
-
}
|
|
1667
|
+
};
|
|
1761
1668
|
|
|
1762
|
-
RendererModule.prototype.setHighlightedByGroupName = function(groupName, propagateChanges) {
|
|
1669
|
+
RendererModule.prototype.setHighlightedByGroupName = function (groupName, propagateChanges) {
|
|
1763
1670
|
var objects = this.findObjectsByGroupName(groupName);
|
|
1764
1671
|
return this.setHighlightedByObjects(objects, propagateChanges);
|
|
1765
|
-
}
|
|
1672
|
+
};
|
|
1766
1673
|
|
|
1767
|
-
RendererModule.prototype.setSelectedByGroupName = function(groupName, propagateChanges) {
|
|
1674
|
+
RendererModule.prototype.setSelectedByGroupName = function (groupName, propagateChanges) {
|
|
1768
1675
|
var objects = this.findObjectsByGroupName(groupName);
|
|
1769
1676
|
return this.setSelectedByObjects(objects, propagateChanges);
|
|
1770
|
-
}
|
|
1677
|
+
};
|
|
1771
1678
|
|
|
1772
|
-
RendererModule.prototype.changeBackgroundColour = function(backgroundColourString) {
|
|
1679
|
+
RendererModule.prototype.changeBackgroundColour = function (backgroundColourString) {
|
|
1773
1680
|
var colour = new THREE.Color(backgroundColourString);
|
|
1681
|
+
|
|
1774
1682
|
if (this.zincRenderer) {
|
|
1775
1683
|
var internalRenderer = this.zincRenderer.getThreeJSRenderer();
|
|
1776
|
-
internalRenderer.setClearColor(
|
|
1684
|
+
internalRenderer.setClearColor(colour, 1);
|
|
1777
1685
|
}
|
|
1778
|
-
}
|
|
1686
|
+
};
|
|
1779
1687
|
|
|
1780
|
-
RendererModule.prototype.resetView = function() {
|
|
1781
|
-
if (this.zincRenderer)
|
|
1782
|
-
|
|
1783
|
-
}
|
|
1784
|
-
|
|
1785
|
-
RendererModule.prototype.viewAll = function() {
|
|
1786
|
-
if (this.zincRenderer)
|
|
1787
|
-
this.zincRenderer.viewAll();
|
|
1788
|
-
}
|
|
1688
|
+
RendererModule.prototype.resetView = function () {
|
|
1689
|
+
if (this.zincRenderer) this.zincRenderer.resetView();
|
|
1690
|
+
};
|
|
1789
1691
|
|
|
1692
|
+
RendererModule.prototype.viewAll = function () {
|
|
1693
|
+
if (this.zincRenderer) this.zincRenderer.viewAll();
|
|
1694
|
+
};
|
|
1790
1695
|
/**
|
|
1791
1696
|
* Start the animation and let the renderer to processs with
|
|
1792
1697
|
* time progression
|
|
1793
1698
|
*/
|
|
1794
|
-
RendererModule.prototype.playAnimation = function(flag) {
|
|
1795
|
-
if (this.zincRenderer)
|
|
1796
|
-
this.zincRenderer.playAnimation = flag;
|
|
1797
|
-
}
|
|
1798
1699
|
|
|
1700
|
+
|
|
1701
|
+
RendererModule.prototype.playAnimation = function (flag) {
|
|
1702
|
+
if (this.zincRenderer) this.zincRenderer.playAnimation = flag;
|
|
1703
|
+
};
|
|
1799
1704
|
/**
|
|
1800
1705
|
* Set the speed of playback
|
|
1801
1706
|
*/
|
|
1802
|
-
RendererModule.prototype.setPlayRate = function(value) {
|
|
1803
|
-
if (this.zincRenderer)
|
|
1804
|
-
this.zincRenderer.setPlayRate(value);
|
|
1805
|
-
}
|
|
1806
1707
|
|
|
1708
|
+
|
|
1709
|
+
RendererModule.prototype.setPlayRate = function (value) {
|
|
1710
|
+
if (this.zincRenderer) this.zincRenderer.setPlayRate(value);
|
|
1711
|
+
};
|
|
1807
1712
|
/**
|
|
1808
1713
|
* Get the speed of playback
|
|
1809
1714
|
*/
|
|
1810
|
-
RendererModule.prototype.getPlayRate = function(value) {
|
|
1811
|
-
if (this.zincRenderer)
|
|
1812
|
-
return this.zincRenderer.getPlayRate();
|
|
1813
|
-
else
|
|
1814
|
-
return 0.0;
|
|
1815
|
-
}
|
|
1816
|
-
|
|
1817
|
-
/** Initialise everything in the renderer, including the 3D renderer,
|
|
1818
|
-
* and picker for the 3D renderer.
|
|
1819
|
-
*
|
|
1820
|
-
*/
|
|
1821
|
-
RendererModule.prototype.initialiseRenderer = function(displayAreaIn) {
|
|
1822
|
-
if (this.zincRenderer === undefined || this.rendererContainer === undefined) {
|
|
1823
|
-
var returnedValue = createRenderer();
|
|
1824
|
-
this.zincRenderer = returnedValue["renderer"];
|
|
1825
|
-
this.rendererContainer = returnedValue["container"];
|
|
1826
|
-
}
|
|
1827
|
-
if (displayAreaIn) {
|
|
1828
|
-
this.displayArea = displayAreaIn;
|
|
1829
|
-
this.displayArea.appendChild( this.rendererContainer );
|
|
1830
|
-
if (this.zincRenderer) {
|
|
1831
|
-
this.zincRenderer.animate();
|
|
1832
|
-
if (this.toolTip === undefined)
|
|
1833
|
-
this.toolTip = new (__webpack_require__("76bf").ToolTip)(this.displayArea);
|
|
1834
|
-
}
|
|
1835
|
-
}
|
|
1836
|
-
}
|
|
1837
|
-
|
|
1838
|
-
RendererModule.prototype.destroy = function() {
|
|
1839
|
-
if (this.zincRenderer) {
|
|
1840
|
-
this.zincRenderer.dispose();
|
|
1841
|
-
this.zincRenderer.getThreeJSRenderer().dispose();
|
|
1842
|
-
this.zincRenderer = undefined;
|
|
1843
|
-
}
|
|
1844
|
-
(__webpack_require__("3966").BaseModule).prototype.destroy.call( this );
|
|
1845
|
-
}
|
|
1846
|
-
|
|
1847
|
-
exports.RendererModule = RendererModule;
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
/***/ }),
|
|
1851
|
-
|
|
1852
|
-
/***/ "7c81":
|
|
1853
|
-
/***/ (function(module, exports) {
|
|
1854
|
-
|
|
1855
|
-
module.exports = require("core-js/modules/es.array.splice");
|
|
1856
|
-
|
|
1857
|
-
/***/ }),
|
|
1858
|
-
|
|
1859
|
-
/***/ "7d9b":
|
|
1860
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
1861
1715
|
|
|
1862
|
-
// extracted by mini-css-extract-plugin
|
|
1863
1716
|
|
|
1864
|
-
|
|
1717
|
+
RendererModule.prototype.getPlayRate = function (value) {
|
|
1718
|
+
if (this.zincRenderer) return this.zincRenderer.getPlayRate();else return 0.0;
|
|
1719
|
+
};
|
|
1720
|
+
/** Initialise everything in the renderer, including the 3D renderer,
|
|
1721
|
+
* and picker for the 3D renderer.
|
|
1722
|
+
*
|
|
1723
|
+
*/
|
|
1865
1724
|
|
|
1866
|
-
/***/ "7f9f":
|
|
1867
|
-
/***/ (function(module, exports) {
|
|
1868
1725
|
|
|
1869
|
-
|
|
1726
|
+
RendererModule.prototype.initialiseRenderer = function (displayAreaIn) {
|
|
1727
|
+
if (this.zincRenderer === undefined || this.rendererContainer === undefined) {
|
|
1728
|
+
var returnedValue = createRenderer();
|
|
1729
|
+
this.zincRenderer = returnedValue["renderer"];
|
|
1730
|
+
this.rendererContainer = returnedValue["container"];
|
|
1731
|
+
}
|
|
1870
1732
|
|
|
1871
|
-
|
|
1733
|
+
if (displayAreaIn) {
|
|
1734
|
+
this.displayArea = displayAreaIn;
|
|
1735
|
+
this.displayArea.appendChild(this.rendererContainer);
|
|
1736
|
+
if (this.zincRenderer) this.zincRenderer.animate();
|
|
1737
|
+
}
|
|
1738
|
+
};
|
|
1872
1739
|
|
|
1873
|
-
|
|
1874
|
-
|
|
1740
|
+
RendererModule.prototype.destroy = function () {
|
|
1741
|
+
if (this.zincRenderer) {
|
|
1742
|
+
this.zincRenderer.dispose();
|
|
1743
|
+
this.zincRenderer.getThreeJSRenderer().dispose();
|
|
1744
|
+
this.zincRenderer = undefined;
|
|
1745
|
+
}
|
|
1875
1746
|
|
|
1876
|
-
|
|
1747
|
+
__webpack_require__("6aa6").BaseModule.prototype.destroy.call(this);
|
|
1748
|
+
};
|
|
1749
|
+
|
|
1750
|
+
exports.RendererModule = RendererModule;
|
|
1877
1751
|
|
|
1878
1752
|
/***/ }),
|
|
1879
1753
|
|
|
@@ -1903,146 +1777,6 @@ module.exports = require("element-ui/lib/tabs");
|
|
|
1903
1777
|
|
|
1904
1778
|
module.exports = require("core-js/modules/es.array.iterator");
|
|
1905
1779
|
|
|
1906
|
-
/***/ }),
|
|
1907
|
-
|
|
1908
|
-
/***/ "8cec":
|
|
1909
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
1910
|
-
|
|
1911
|
-
var THREE = __webpack_require__("9206").THREE;
|
|
1912
|
-
|
|
1913
|
-
/**
|
|
1914
|
-
* This module manages highlighted and selected objects in 3D modules.
|
|
1915
|
-
*
|
|
1916
|
-
* @class
|
|
1917
|
-
* @returns {exports.GraphicsHighlight}
|
|
1918
|
-
*/
|
|
1919
|
-
exports.GraphicsHighlight = function() {
|
|
1920
|
-
var currentHighlightedObjects = [];
|
|
1921
|
-
var currentSelectedObjects = [];
|
|
1922
|
-
this.highlightColour = 0x0000FF;
|
|
1923
|
-
this.selectColour = 0x00FF00;
|
|
1924
|
-
this.originalColour = 0x000000;
|
|
1925
|
-
var _this = this;
|
|
1926
|
-
|
|
1927
|
-
var isDifferent = function(array1, array2) {
|
|
1928
|
-
if ((array1.length == 0) && (array2.length == 0))
|
|
1929
|
-
return false;
|
|
1930
|
-
|
|
1931
|
-
for (var i = 0; i < array1.length; i++) {
|
|
1932
|
-
var matched = false;
|
|
1933
|
-
for (var j = 0; j < array2.length; j++) {
|
|
1934
|
-
if (array1[i] === array2[j]) {
|
|
1935
|
-
matched = true;
|
|
1936
|
-
}
|
|
1937
|
-
}
|
|
1938
|
-
if (!matched)
|
|
1939
|
-
return true;
|
|
1940
|
-
}
|
|
1941
|
-
for (var i = 0; i < array2.length; i++) {
|
|
1942
|
-
var matched = false;
|
|
1943
|
-
for (var j = 0; j < array1.length; j++) {
|
|
1944
|
-
if (array2[i] === array1[j]) {
|
|
1945
|
-
matched = true;
|
|
1946
|
-
}
|
|
1947
|
-
}
|
|
1948
|
-
if (!matched)
|
|
1949
|
-
return true;
|
|
1950
|
-
}
|
|
1951
|
-
return false;
|
|
1952
|
-
}
|
|
1953
|
-
|
|
1954
|
-
var getUnmatchingObjects = function(objectsArray1, objectsArray2) {
|
|
1955
|
-
var unmatchingObjects = [];
|
|
1956
|
-
if (objectsArray2.length == 0)
|
|
1957
|
-
return objectsArray1;
|
|
1958
|
-
for (var i = 0; i < objectsArray1.length; i++) {
|
|
1959
|
-
var matched = false;
|
|
1960
|
-
for (var j = 0; j < objectsArray2.length; j++) {
|
|
1961
|
-
if (objectsArray1[i] === objectsArray2[j]) {
|
|
1962
|
-
matched = true;
|
|
1963
|
-
}
|
|
1964
|
-
}
|
|
1965
|
-
if (!matched)
|
|
1966
|
-
unmatchingObjects.push(objectsArray1[i]);
|
|
1967
|
-
}
|
|
1968
|
-
return unmatchingObjects;
|
|
1969
|
-
}
|
|
1970
|
-
|
|
1971
|
-
this.setHighlighted = function(objects) {
|
|
1972
|
-
var previousHighlightedObjects = currentHighlightedObjects;
|
|
1973
|
-
_this.resetHighlighted();
|
|
1974
|
-
// Selected object cannot be highlighted
|
|
1975
|
-
var array = getUnmatchingObjects(objects, currentSelectedObjects);
|
|
1976
|
-
var fullList = getFullListOfObjects(array);
|
|
1977
|
-
for (var i = 0; i < fullList.length; i++) {
|
|
1978
|
-
if (fullList[i] && fullList[i].material && fullList[i].material.emissive)
|
|
1979
|
-
fullList[i].material.emissive.setHex(_this.highlightColour);
|
|
1980
|
-
}
|
|
1981
|
-
currentHighlightedObjects = array;
|
|
1982
|
-
return isDifferent(currentHighlightedObjects, previousHighlightedObjects);
|
|
1983
|
-
}
|
|
1984
|
-
|
|
1985
|
-
this.setSelected = function(objects) {
|
|
1986
|
-
// first find highlighted object that are not selected
|
|
1987
|
-
var previousHSelectedObjects = currentSelectedObjects;
|
|
1988
|
-
var array = getUnmatchingObjects(currentHighlightedObjects, objects);
|
|
1989
|
-
currentHighlightedObjects = array;
|
|
1990
|
-
_this.resetSelected();
|
|
1991
|
-
var fullList = getFullListOfObjects(objects);
|
|
1992
|
-
for (var i = 0; i < fullList.length; i++) {
|
|
1993
|
-
if (fullList[i] && fullList[i].material && fullList[i].material.emissive)
|
|
1994
|
-
fullList[i].material.emissive.setHex(_this.selectColour);
|
|
1995
|
-
}
|
|
1996
|
-
currentSelectedObjects = objects;
|
|
1997
|
-
return isDifferent(currentSelectedObjects, previousHSelectedObjects);
|
|
1998
|
-
}
|
|
1999
|
-
|
|
2000
|
-
var getFullListOfObjects = function(objects) {
|
|
2001
|
-
let fullList = [];
|
|
2002
|
-
for (var i = 0; i < objects.length; i++) {
|
|
2003
|
-
if (objects[i].material)
|
|
2004
|
-
fullList.push(objects[i]);
|
|
2005
|
-
}
|
|
2006
|
-
return fullList;
|
|
2007
|
-
}
|
|
2008
|
-
|
|
2009
|
-
this.resetHighlighted = function() {
|
|
2010
|
-
let fullList = getFullListOfObjects(currentHighlightedObjects);
|
|
2011
|
-
for (var i = 0; i < fullList.length; i++) {
|
|
2012
|
-
if (fullList[i] && fullList[i].material) {
|
|
2013
|
-
if (fullList[i].material.emissive)
|
|
2014
|
-
fullList[i].material.emissive.setHex(_this.originalColour);
|
|
2015
|
-
if (fullList[i].material.depthFunc)
|
|
2016
|
-
fullList[i].material.depthFunc = THREE.LessEqualDepth;
|
|
2017
|
-
}
|
|
2018
|
-
}
|
|
2019
|
-
currentHighlightedObjects = [];
|
|
2020
|
-
}
|
|
2021
|
-
|
|
2022
|
-
this.resetSelected = function() {
|
|
2023
|
-
let fullList = getFullListOfObjects(currentSelectedObjects);
|
|
2024
|
-
for (var i = 0; i < fullList.length; i++) {
|
|
2025
|
-
if (fullList[i] && fullList[i].material) {
|
|
2026
|
-
if (fullList[i].material.emissive)
|
|
2027
|
-
fullList[i].material.emissive.setHex(_this.originalColour);
|
|
2028
|
-
if (fullList[i].material.depthFunc)
|
|
2029
|
-
fullList[i].material.depthFunc = THREE.LessEqualDepth;
|
|
2030
|
-
}
|
|
2031
|
-
}
|
|
2032
|
-
currentSelectedObjects = [];
|
|
2033
|
-
}
|
|
2034
|
-
|
|
2035
|
-
this.getSelected = function() {
|
|
2036
|
-
return currentSelectedObjects;
|
|
2037
|
-
}
|
|
2038
|
-
|
|
2039
|
-
this.reset = function() {
|
|
2040
|
-
_this.resetSelected();
|
|
2041
|
-
_this.resetHighlighted();
|
|
2042
|
-
}
|
|
2043
|
-
}
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
1780
|
/***/ }),
|
|
2047
1781
|
|
|
2048
1782
|
/***/ "8f11":
|
|
@@ -2080,6 +1814,17 @@ module.exports = require("element-ui/lib/theme-chalk/slider.css");
|
|
|
2080
1814
|
|
|
2081
1815
|
/***/ }),
|
|
2082
1816
|
|
|
1817
|
+
/***/ "984d":
|
|
1818
|
+
/***/ (function(module, exports) {
|
|
1819
|
+
|
|
1820
|
+
exports.annotation = function () {
|
|
1821
|
+
this.type = "anatomical";
|
|
1822
|
+
this.data = undefined;
|
|
1823
|
+
this.isAnnotation = true;
|
|
1824
|
+
};
|
|
1825
|
+
|
|
1826
|
+
/***/ }),
|
|
1827
|
+
|
|
2083
1828
|
/***/ "9985":
|
|
2084
1829
|
/***/ (function(module, exports) {
|
|
2085
1830
|
|
|
@@ -2094,22 +1839,86 @@ module.exports = require("element-ui/lib/theme-chalk/base.css");
|
|
|
2094
1839
|
|
|
2095
1840
|
/***/ }),
|
|
2096
1841
|
|
|
2097
|
-
/***/ "
|
|
2098
|
-
/***/ (function(module, exports) {
|
|
1842
|
+
/***/ "9b21":
|
|
1843
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
2099
1844
|
|
|
2100
|
-
|
|
1845
|
+
__webpack_require__("7c81");
|
|
1846
|
+
|
|
1847
|
+
var EVENT_TYPE = {
|
|
1848
|
+
ALL: 0,
|
|
1849
|
+
SELECTED: 1,
|
|
1850
|
+
HIGHLIGHTED: 2
|
|
1851
|
+
};
|
|
1852
|
+
|
|
1853
|
+
var SelectionEvent = function SelectionEvent(eventTypeIn, identifiersIn) {
|
|
1854
|
+
this.eventType = eventTypeIn;
|
|
1855
|
+
this.identifiers = identifiersIn;
|
|
1856
|
+
};
|
|
1857
|
+
|
|
1858
|
+
var returnFullID = function returnFullID(sourceId) {//return full annotations with all different name
|
|
1859
|
+
};
|
|
1860
|
+
|
|
1861
|
+
var Subscription = function Subscription(subscriberIn, callbackIn, eventType) {
|
|
1862
|
+
this.targetedID = [];
|
|
1863
|
+
var subscriber = subscriberIn;
|
|
1864
|
+
var callback = callbackIn;
|
|
1865
|
+
this.targetEventType = eventType;
|
|
1866
|
+
|
|
1867
|
+
var _this = this;
|
|
1868
|
+
|
|
1869
|
+
if (eventType === undefined) this.targetEventType = EVENT_TYPE.ALL;
|
|
1870
|
+
|
|
1871
|
+
this.getEventType = function () {
|
|
1872
|
+
return eventType;
|
|
1873
|
+
};
|
|
1874
|
+
|
|
1875
|
+
this.notify = function (source, eventType, ids) {
|
|
1876
|
+
if (source !== subscriber && (_this.targetEventType === EVENT_TYPE.ALL || _this.targetEventType === eventType)) {
|
|
1877
|
+
//should support different type of id e.g lyph, name, fmas...
|
|
1878
|
+
//need a function that finds all relavant ids
|
|
1879
|
+
var event = new SelectionEvent(eventType, ids);
|
|
1880
|
+
callback(event);
|
|
1881
|
+
}
|
|
1882
|
+
};
|
|
1883
|
+
};
|
|
1884
|
+
|
|
1885
|
+
exports.EventNotifier = function () {
|
|
1886
|
+
var subscriptions = [];
|
|
1887
|
+
|
|
1888
|
+
this.publish = function (source, eventType, id) {
|
|
1889
|
+
for (var i = 0; i < subscriptions.length; i++) {
|
|
1890
|
+
subscriptions[i].notify(source, eventType, id);
|
|
1891
|
+
}
|
|
1892
|
+
};
|
|
1893
|
+
|
|
1894
|
+
this.subscribe = function (subscriber, callbackFunction, eventType) {
|
|
1895
|
+
if (typeof callbackFunction === "function") {
|
|
1896
|
+
var subscription = new Subscription(subscriber, callbackFunction, eventType);
|
|
1897
|
+
subscriptions.push(subscription);
|
|
1898
|
+
return subscription;
|
|
1899
|
+
}
|
|
1900
|
+
|
|
1901
|
+
return undefined;
|
|
1902
|
+
};
|
|
1903
|
+
|
|
1904
|
+
this.unsubscribe = function (subscription) {
|
|
1905
|
+
for (var i = 0; i < subscriptions.length; i++) {
|
|
1906
|
+
if (subscription === subscriptions[i]) {
|
|
1907
|
+
subscriptions.splice(i, 1);
|
|
1908
|
+
return;
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
};
|
|
1912
|
+
};
|
|
1913
|
+
|
|
1914
|
+
exports.EVENT_TYPE = EVENT_TYPE;
|
|
2101
1915
|
|
|
2102
1916
|
/***/ }),
|
|
2103
1917
|
|
|
2104
|
-
/***/ "
|
|
1918
|
+
/***/ "9bb0":
|
|
2105
1919
|
/***/ (function(module, exports) {
|
|
2106
1920
|
|
|
2107
|
-
exports
|
|
2108
|
-
this.type = "anatomical";
|
|
2109
|
-
this.data = undefined;
|
|
2110
|
-
this.isAnnotation = true;
|
|
2111
|
-
}
|
|
2112
|
-
|
|
1921
|
+
module.exports = require("@soda/get-current-script");
|
|
2113
1922
|
|
|
2114
1923
|
/***/ }),
|
|
2115
1924
|
|
|
@@ -2173,13 +1982,6 @@ module.exports = require("element-ui/lib/icon");
|
|
|
2173
1982
|
|
|
2174
1983
|
/***/ }),
|
|
2175
1984
|
|
|
2176
|
-
/***/ "b723":
|
|
2177
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
2178
|
-
|
|
2179
|
-
// extracted by mini-css-extract-plugin
|
|
2180
|
-
|
|
2181
|
-
/***/ }),
|
|
2182
|
-
|
|
2183
1985
|
/***/ "b777":
|
|
2184
1986
|
/***/ (function(module, exports) {
|
|
2185
1987
|
|
|
@@ -2215,21 +2017,84 @@ module.exports = require("element-ui/lib/option");
|
|
|
2215
2017
|
|
|
2216
2018
|
/***/ }),
|
|
2217
2019
|
|
|
2218
|
-
/***/ "
|
|
2219
|
-
/***/ (function(module, exports) {
|
|
2020
|
+
/***/ "cf41":
|
|
2021
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
2022
|
+
|
|
2023
|
+
__webpack_require__("51f7");
|
|
2024
|
+
|
|
2025
|
+
__webpack_require__("bfab");
|
|
2026
|
+
|
|
2027
|
+
/**
|
|
2028
|
+
* @author alteredq / http://alteredqualia.com/
|
|
2029
|
+
* @author mr.doob / http://mrdoob.com/
|
|
2030
|
+
*/
|
|
2031
|
+
exports.WEBGL = {
|
|
2032
|
+
isWebGLAvailable: function isWebGLAvailable() {
|
|
2033
|
+
try {
|
|
2034
|
+
var canvas = document.createElement('canvas');
|
|
2035
|
+
return !!(window.WebGLRenderingContext && (canvas.getContext('webgl') || canvas.getContext('experimental-webgl')));
|
|
2036
|
+
} catch (e) {
|
|
2037
|
+
return false;
|
|
2038
|
+
}
|
|
2039
|
+
},
|
|
2040
|
+
isWebGL2Available: function isWebGL2Available() {
|
|
2041
|
+
try {
|
|
2042
|
+
var canvas = document.createElement('canvas');
|
|
2043
|
+
return !!(window.WebGL2RenderingContext && canvas.getContext('webgl2'));
|
|
2044
|
+
} catch (e) {
|
|
2045
|
+
return false;
|
|
2046
|
+
}
|
|
2047
|
+
},
|
|
2048
|
+
getWebGLErrorMessage: function getWebGLErrorMessage() {
|
|
2049
|
+
return this.getErrorMessage(1);
|
|
2050
|
+
},
|
|
2051
|
+
getWebGL2ErrorMessage: function getWebGL2ErrorMessage() {
|
|
2052
|
+
return this.getErrorMessage(2);
|
|
2053
|
+
},
|
|
2054
|
+
getErrorMessage: function getErrorMessage(version) {
|
|
2055
|
+
var names = {
|
|
2056
|
+
1: 'WebGL',
|
|
2057
|
+
2: 'WebGL 2'
|
|
2058
|
+
};
|
|
2059
|
+
var contexts = {
|
|
2060
|
+
1: window.WebGLRenderingContext,
|
|
2061
|
+
2: window.WebGL2RenderingContext
|
|
2062
|
+
};
|
|
2063
|
+
var message = 'This module requires <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#008">$1</a> support but your $0 does not seem to support it.';
|
|
2064
|
+
var element = document.createElement('div');
|
|
2065
|
+
element.id = 'webglmessage';
|
|
2066
|
+
element.style.fontFamily = 'monospace';
|
|
2067
|
+
element.style.fontSize = '20px';
|
|
2068
|
+
element.style.fontWeight = 'normal';
|
|
2069
|
+
element.style.textAlign = 'center';
|
|
2070
|
+
element.style.background = '#fff';
|
|
2071
|
+
element.style.color = '#000';
|
|
2072
|
+
element.style.padding = '1.5em';
|
|
2073
|
+
element.style.width = '400px';
|
|
2074
|
+
element.style.margin = '5em auto 0';
|
|
2075
|
+
|
|
2076
|
+
if (contexts[version]) {
|
|
2077
|
+
message = message.replace('$0', 'graphics card');
|
|
2078
|
+
} else {
|
|
2079
|
+
message = message.replace('$0', 'browser');
|
|
2080
|
+
}
|
|
2220
2081
|
|
|
2221
|
-
|
|
2082
|
+
message = message.replace('$1', names[version]);
|
|
2083
|
+
element.innerHTML = message;
|
|
2084
|
+
return element;
|
|
2085
|
+
}
|
|
2086
|
+
};
|
|
2222
2087
|
|
|
2223
2088
|
/***/ }),
|
|
2224
2089
|
|
|
2225
|
-
/***/ "
|
|
2226
|
-
/***/ (function(module,
|
|
2090
|
+
/***/ "da60":
|
|
2091
|
+
/***/ (function(module, exports) {
|
|
2227
2092
|
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
/* unused harmony reexport * */
|
|
2093
|
+
function _readOnlyError(name) {
|
|
2094
|
+
throw new Error("\"" + name + "\" is read-only");
|
|
2095
|
+
}
|
|
2232
2096
|
|
|
2097
|
+
module.exports = _readOnlyError;
|
|
2233
2098
|
|
|
2234
2099
|
/***/ }),
|
|
2235
2100
|
|
|
@@ -2247,13 +2112,6 @@ module.exports = require("core-js/modules/es.array.from");
|
|
|
2247
2112
|
|
|
2248
2113
|
/***/ }),
|
|
2249
2114
|
|
|
2250
|
-
/***/ "f8fb":
|
|
2251
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
2252
|
-
|
|
2253
|
-
// extracted by mini-css-extract-plugin
|
|
2254
|
-
|
|
2255
|
-
/***/ }),
|
|
2256
|
-
|
|
2257
2115
|
/***/ "fae3":
|
|
2258
2116
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2259
2117
|
|
|
@@ -2288,12 +2146,12 @@ if (typeof window !== 'undefined') {
|
|
|
2288
2146
|
// Indicate to webpack that this file can be concatenated
|
|
2289
2147
|
/* harmony default export */ var setPublicPath = (null);
|
|
2290
2148
|
|
|
2291
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
2292
|
-
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.loading),expression:"loading"}],ref:"scaffoldContainer",staticClass:"scaffold-container",attrs:{"element-loading-text":"Loading...","element-loading-spinner":"el-icon-loading","element-loading-background":"rgba(0, 0, 0, 0.3)"}},[_c('
|
|
2149
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"de8fb6da-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldVuer.vue?vue&type=template&id=023c058f&scoped=true&
|
|
2150
|
+
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.loading),expression:"loading"}],ref:"scaffoldContainer",staticClass:"scaffold-container",attrs:{"element-loading-text":"Loading...","element-loading-spinner":"el-icon-loading","element-loading-background":"rgba(0, 0, 0, 0.3)"}},[_c('map-svg-sprite-color'),_c('div',{ref:"display",staticStyle:{"height":"100%","width":"100%"},attrs:{"id":"organsDisplayArea","tabindex":"-1"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==66){ return null; }return _vm.backgroundChangeCallback($event)}}}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.displayUI && !_vm.isTransitioning),expression:"displayUI && !isTransitioning"}]},[(_vm.displayWarning)?_c('el-popover',{ref:"warningPopover",attrs:{"content":_vm.warningMessage,"placement":"right","append-to-body":false,"trigger":"manual","popper-class":"warning-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[6].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[6], "value", $$v)},expression:"hoverVisabilities[6].value"}}):_vm._e(),(_vm.displayWarning)?_c('i',{directives:[{name:"popover",rawName:"v-popover:warningPopover",arg:"warningPopover"}],staticClass:"el-icon-warning warning-icon",on:{"mouseover":function($event){return _vm.showToolitip(6)},"mouseout":function($event){return _vm.hideToolitip(6)}}},[_c('span',{staticClass:"warning-text"},[_vm._v("Beta")])]):_vm._e(),_c('el-popover',{ref:"checkBoxPopover",attrs:{"content":"Change region visibility","placement":"right","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[5].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[5], "value", $$v)},expression:"hoverVisabilities[5].value"}}),_c('TraditionalControls',{directives:[{name:"popover",rawName:"v-popover:checkBoxPopover",arg:"checkBoxPopover"}],ref:"traditionalControl",attrs:{"help-mode":_vm.helpMode,"module":_vm.$module,"show-colour-picker":_vm.showColourPicker},on:{"object-selected":_vm.objectSelected,"object-hovered":_vm.objectHovered,"drawer-toggled":_vm.drawerToggled}}),_c('div',{staticClass:"opacity-box"},[_c('OpacityControls',{ref:"opacityControl"})],1),(_vm.sceneData.timeVarying)?_c('el-popover',{ref:"sliderPopover",attrs:{"content":"Move the slider to animate the region","placement":"top","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper top-popper non-selectable"},model:{value:(_vm.hoverVisabilities[4].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[4], "value", $$v)},expression:"hoverVisabilities[4].value"}}):_vm._e(),(_vm.sceneData.timeVarying)?_c('div',{directives:[{name:"popover",rawName:"v-popover:sliderPopover",arg:"sliderPopover"}],staticClass:"time-slider-container",class:[ _vm.minimisedSlider ? 'minimised' : '', _vm.sliderPosition]},[_c('el-tabs',{attrs:{"type":"card"}},[_c('el-tab-pane',{attrs:{"label":"Animate scaffold"}},[_c('el-row',{staticClass:"tab-content"},[(_vm.isPlaying)?_c('map-svg-icon',{staticClass:"icon-button video-button",attrs:{"icon":"pause"},nativeOn:{"click":function($event){return _vm.play(false)}}}):_c('map-svg-icon',{staticClass:"video-button icon-button",attrs:{"icon":"play"},nativeOn:{"click":function($event){return _vm.play(true)}}}),_c('el-slider',{staticClass:"slider",attrs:{"min":0,"max":_vm.timeMax,"value":_vm.sceneData.currentTime / 100 * _vm.timeMax,"step":0.1,"tooltip-class":"time-slider-tooltip","format-tooltip":_vm.formatTooltip,"marks":_vm.timeStamps},on:{"input":function($event){return _vm.timeChange($event)}}})],1)],1),_c('el-tab-pane',{attrs:{"label":"Animation data"}},[_c('el-row',{staticClass:"tab-content"},[_c('div',{staticClass:"animation-data"},[_vm._v(" Original duration: "),_c('div',{staticClass:"purple"},[_vm._v(" "+_vm._s(_vm.orginalDuration)+" ")])]),_c('div',{staticClass:"animation-data"},[_vm._v(" Animation duration: "),_c('div',{staticClass:"purple"},[_vm._v(" "+_vm._s(_vm.animateDuration)+" ")])]),_c('div',{staticClass:"animation-data"},[_vm._v(" Playback speed "),_c('el-select',{staticClass:"select-box",attrs:{"popper-append-to-body":true,"value":_vm.currentSpeed,"placeholder":"Select","popper-class":"scaffold_viewer_dropdown"},on:{"change":function($event){return _vm.speedChanged($event)}}},_vm._l((_vm.playSpeed),function(item){return _c('el-option',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1)])],1)],1)],1):_vm._e(),_c('div',{staticClass:"bottom-right-control"},[_c('el-popover',{attrs:{"content":"Zoom in","placement":"left","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper left-popper non-selectable"},model:{value:(_vm.hoverVisabilities[0].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[0], "value", $$v)},expression:"hoverVisabilities[0].value"}},[_c('map-svg-icon',{staticClass:"icon-button zoomIn",attrs:{"slot":"reference","icon":"zoomIn"},nativeOn:{"click":function($event){return _vm.zoomIn()},"mouseover":function($event){return _vm.showToolitip(0)},"mouseout":function($event){return _vm.hideToolitip(0)}},slot:"reference"})],1),_c('el-popover',{attrs:{"content":"Zoom out","placement":"top-end","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper popper-zoomout non-selectable"},model:{value:(_vm.hoverVisabilities[1].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[1], "value", $$v)},expression:"hoverVisabilities[1].value"}},[_c('map-svg-icon',{staticClass:"icon-button zoomOut",attrs:{"slot":"reference","icon":"zoomOut"},nativeOn:{"click":function($event){return _vm.zoomOut()},"mouseover":function($event){return _vm.showToolitip(1)},"mouseout":function($event){return _vm.hideToolitip(1)}},slot:"reference"})],1),_c('el-popover',{attrs:{"placement":"top","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper non-selectable"},model:{value:(_vm.hoverVisabilities[2].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[2], "value", $$v)},expression:"hoverVisabilities[2].value"}},[_c('div',[_vm._v(" Fit to "),_c('br'),_vm._v(" window ")]),_c('map-svg-icon',{staticClass:"icon-button fitWindow",attrs:{"slot":"reference","icon":"fitWindow"},nativeOn:{"click":function($event){return _vm.fitWindow()},"mouseover":function($event){return _vm.showToolitip(2)},"mouseout":function($event){return _vm.hideToolitip(2)}},slot:"reference"})],1)],1),_c('el-popover',{ref:"backgroundPopover",attrs:{"placement":"top-start","width":"128","append-to-body":false,"trigger":"click","popper-class":"background-popper non-selectable"}},[_c('el-row',{staticClass:"backgroundText"},[_vm._v(" Change background ")]),_c('el-row',{staticClass:"backgroundChooser"},_vm._l((_vm.availableBackground),function(item){return _c('div',{key:item,class:['backgroundChoice', item, item == _vm.currentBackground ? 'active' :''],on:{"click":function($event){return _vm.backgroundChangeCallback(item)}}})}),0)],1),_c('el-popover',{attrs:{"content":"Change background color","placement":"right","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[3].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[3], "value", $$v)},expression:"hoverVisabilities[3].value"}},[_c('map-svg-icon',{directives:[{name:"popover",rawName:"v-popover:backgroundPopover",arg:"backgroundPopover"}],staticClass:"icon-button background-colour",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },attrs:{"slot":"reference","icon":"changeBckgd"},nativeOn:{"mouseover":function($event){return _vm.showToolitip(3)},"mouseout":function($event){return _vm.hideToolitip(3)}},slot:"reference"})],1)],1)],1)}
|
|
2293
2151
|
var staticRenderFns = []
|
|
2294
2152
|
|
|
2295
2153
|
|
|
2296
|
-
// CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=
|
|
2154
|
+
// CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=023c058f&scoped=true&
|
|
2297
2155
|
|
|
2298
2156
|
// EXTERNAL MODULE: external "core-js/modules/es.array.for-each"
|
|
2299
2157
|
var es_array_for_each_ = __webpack_require__("139f");
|
|
@@ -2392,7 +2250,7 @@ var col_default = /*#__PURE__*/__webpack_require__.n(col_);
|
|
|
2392
2250
|
var external_vue_ = __webpack_require__("8bbf");
|
|
2393
2251
|
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
|
|
2394
2252
|
|
|
2395
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
2253
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"de8fb6da-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OpacityControls.vue?vue&type=template&id=4c00a30f&scoped=true&
|
|
2396
2254
|
var OpacityControlsvue_type_template_id_4c00a30f_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.material!=undefined)?_c('div',{ref:"control",staticClass:"opacity-control"},[_c('el-drawer',{staticClass:"drawer-content",attrs:{"custom-class":"my-drawer","visible":_vm.drawerOpen,"append-to-body":false,"modal-append-to-body":false,"size":"300","with-header":false,"wrapper-closable":false,"modal":false},on:{"update:visible":function($event){_vm.drawerOpen=$event}}},[(_vm.drawerOpen)?_c('div',{staticClass:"tab-button close",on:{"click":_vm.toggleDrawer}},[_c('i',{staticClass:"el-icon-arrow-right"})]):_vm._e(),_c('el-container',{staticClass:"opacity-container"},[_c('el-header',{staticClass:"header",attrs:{"height":"37px"}},[_c('div',[_vm._v("Opacity")])]),_c('el-main',{staticClass:"main"},[_c('div',{staticClass:"block"},[_c('span',{staticClass:"display"},[_vm._v(_vm._s(_vm.displayString))]),_c('el-slider',{staticClass:"my-slider",attrs:{"step":0.01,"min":0,"max":1,"format-tooltip":_vm.formatTooltip,"show-tooltip":false},model:{value:(_vm.material.opacity),callback:function ($$v) {_vm.$set(_vm.material, "opacity", $$v)},expression:"material.opacity"}})],1)])],1)],1),(!_vm.drawerOpen)?_c('div',{staticClass:"tab-button open",on:{"click":_vm.toggleDrawer}},[_c('i',{staticClass:"el-icon-arrow-left"})]):_vm._e()],1):_vm._e()}
|
|
2397
2255
|
var OpacityControlsvue_type_template_id_4c00a30f_scoped_true_staticRenderFns = []
|
|
2398
2256
|
|
|
@@ -2693,13 +2551,13 @@ var component = normalizeComponent(
|
|
|
2693
2551
|
)
|
|
2694
2552
|
|
|
2695
2553
|
/* harmony default export */ var OpacityControls = (component.exports);
|
|
2696
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
2697
|
-
var
|
|
2554
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"de8fb6da-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TraditionalControls.vue?vue&type=template&id=335c5764&scoped=true&
|
|
2555
|
+
var TraditionalControlsvue_type_template_id_335c5764_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"traditional-location",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen }},[_c('div',{staticClass:"traditional-container"},[_c('el-row',[_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"regions-display-text"},[_vm._v(" Regions ")])]),_c('el-col',{attrs:{"span":12}},[_c('el-checkbox',{staticClass:"all-checkbox",attrs:{"indeterminate":_vm.isIndeterminate},on:{"change":_vm.handleCheckAllChange},model:{value:(_vm.checkAll),callback:function ($$v) {_vm.checkAll=$$v},expression:"checkAll"}},[_vm._v(" Display all ")])],1)],1),_c('el-checkbox-group',{staticClass:"checkbox-group",attrs:{"size":"small"},on:{"change":_vm.handleCheckedItemsChange},model:{value:(_vm.checkedItems),callback:function ($$v) {_vm.checkedItems=$$v},expression:"checkedItems"}},[_c('div',{staticClass:"checkbox-group-inner"},_vm._l((_vm.sortedPrimitiveGroups),function(item){return _c('el-row',{key:item,attrs:{"label":item}},[_c('div',{staticClass:"checkbox-container"},[_c('el-checkbox',{staticClass:"my-checkbox",class:{ activeItem: _vm.activeRegion === item,
|
|
2698
2556
|
hoverItem: _vm.hoverRegion === item },attrs:{"label":item,"checked":true},on:{"change":function($event){return _vm.visibilityToggle(item, $event)}},nativeOn:{"click":function($event){return _vm.itemClicked(item, $event)},"mouseover":function($event){return _vm.checkboxHover(item)}}},[_c('el-color-picker',{class:{ 'show-picker' : _vm.showColourPicker },attrs:{"value":_vm.getColour(item),"size":"small","popper-class":_vm.myPopperClass},on:{"change":function($event){return _vm.setColour(item, $event)}}}),_vm._v(" "+_vm._s(item)+" ")],1)],1)])}),1)])],1),_c('div',{staticClass:"drawer-button",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },on:{"click":_vm.toggleDrawer}},[_c('i',{staticClass:"el-icon-arrow-left"})])])}
|
|
2699
|
-
var
|
|
2557
|
+
var TraditionalControlsvue_type_template_id_335c5764_scoped_true_staticRenderFns = []
|
|
2700
2558
|
|
|
2701
2559
|
|
|
2702
|
-
// CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=template&id=
|
|
2560
|
+
// CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=template&id=335c5764&scoped=true&
|
|
2703
2561
|
|
|
2704
2562
|
// EXTERNAL MODULE: external "core-js/modules/es.array.concat"
|
|
2705
2563
|
var es_array_concat_ = __webpack_require__("18d2");
|
|
@@ -2971,7 +2829,6 @@ external_vue_default.a.use(row_default.a);
|
|
|
2971
2829
|
tmpArray = uniq(tmpArray.concat(this.module.sceneData.pointset));
|
|
2972
2830
|
this.sortedPrimitiveGroups = orderBy(tmpArray);
|
|
2973
2831
|
this.module.addOrganPartAddedCallback(this.organsAdded);
|
|
2974
|
-
this.module.graphicsHighlight.selectColour = 0x444444;
|
|
2975
2832
|
},
|
|
2976
2833
|
destroyed: function destroyed() {
|
|
2977
2834
|
this.sortedPrimitiveGroups = undefined;
|
|
@@ -2997,55 +2854,47 @@ external_vue_default.a.use(row_default.a);
|
|
|
2997
2854
|
/**
|
|
2998
2855
|
* Select a region by its name.
|
|
2999
2856
|
*/
|
|
3000
|
-
changeActiveByName: function changeActiveByName(name) {
|
|
2857
|
+
changeActiveByName: function changeActiveByName(name, propagate) {
|
|
3001
2858
|
var targetObject = this.getFirstZincObjectWithGroupName(name);
|
|
3002
2859
|
|
|
3003
2860
|
if (targetObject && targetObject.getVisibility()) {
|
|
3004
2861
|
this.activeRegion = name;
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
* @property {object} target selected object.
|
|
3009
|
-
*/
|
|
3010
|
-
|
|
3011
|
-
this.$emit("object-selected", targetObject);
|
|
2862
|
+
this.$emit("object-selected", targetObject, propagate);
|
|
2863
|
+
} else {
|
|
2864
|
+
this.removeActive(propagate);
|
|
3012
2865
|
}
|
|
3013
2866
|
|
|
3014
|
-
this.removeHover();
|
|
2867
|
+
this.removeHover(propagate);
|
|
3015
2868
|
},
|
|
3016
2869
|
|
|
3017
2870
|
/**
|
|
3018
2871
|
* Hover a region by its name.
|
|
3019
2872
|
*/
|
|
3020
|
-
changeHoverByName: function changeHoverByName(name) {
|
|
2873
|
+
changeHoverByName: function changeHoverByName(name, propagate) {
|
|
3021
2874
|
var targetObject = this.getFirstZincObjectWithGroupName(name);
|
|
3022
2875
|
|
|
3023
2876
|
if (targetObject) {
|
|
3024
2877
|
this.hoverRegion = name;
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
* @property {object} target hovered object.
|
|
3029
|
-
*/
|
|
3030
|
-
|
|
3031
|
-
this.$emit("object-hovered", targetObject);
|
|
2878
|
+
this.$emit("object-hovered", targetObject, propagate);
|
|
2879
|
+
} else {
|
|
2880
|
+
this.removeHover(propagate);
|
|
3032
2881
|
}
|
|
3033
2882
|
},
|
|
3034
2883
|
|
|
3035
2884
|
/**
|
|
3036
2885
|
* Unselect the current selected region.
|
|
3037
2886
|
*/
|
|
3038
|
-
removeActive: function removeActive() {
|
|
2887
|
+
removeActive: function removeActive(propagate) {
|
|
3039
2888
|
this.activeRegion = "";
|
|
3040
|
-
this.$emit("object-selected", undefined);
|
|
2889
|
+
this.$emit("object-selected", undefined, propagate);
|
|
3041
2890
|
},
|
|
3042
2891
|
|
|
3043
2892
|
/**
|
|
3044
2893
|
* Unselect the current hover region.
|
|
3045
2894
|
*/
|
|
3046
|
-
removeHover: function removeHover() {
|
|
2895
|
+
removeHover: function removeHover(propagate) {
|
|
3047
2896
|
this.hoverRegion = "";
|
|
3048
|
-
this.$emit("object-hovered", undefined);
|
|
2897
|
+
this.$emit("object-hovered", undefined, propagate);
|
|
3049
2898
|
},
|
|
3050
2899
|
|
|
3051
2900
|
/**
|
|
@@ -3093,11 +2942,11 @@ external_vue_default.a.use(row_default.a);
|
|
|
3093
2942
|
}
|
|
3094
2943
|
},
|
|
3095
2944
|
checkboxHover: function checkboxHover(name) {
|
|
3096
|
-
this.changeHoverByName(name);
|
|
2945
|
+
this.changeHoverByName(name, true);
|
|
3097
2946
|
},
|
|
3098
2947
|
itemClicked: function itemClicked(name, event) {
|
|
3099
2948
|
if (!(event.target.classList.contains("el-checkbox__inner") || event.target.classList.contains("el-checkbox__original"))) {
|
|
3100
|
-
this.changeActiveByName(name);
|
|
2949
|
+
this.changeActiveByName(name, true);
|
|
3101
2950
|
event.preventDefault();
|
|
3102
2951
|
}
|
|
3103
2952
|
},
|
|
@@ -3124,11 +2973,11 @@ external_vue_default.a.use(row_default.a);
|
|
|
3124
2973
|
|
|
3125
2974
|
if (event == false) {
|
|
3126
2975
|
if (this.activeRegion === item) {
|
|
3127
|
-
this.removeActive();
|
|
2976
|
+
this.removeActive(true);
|
|
3128
2977
|
}
|
|
3129
2978
|
|
|
3130
2979
|
if (this.hoverRegion === item) {
|
|
3131
|
-
this.removeHover();
|
|
2980
|
+
this.removeHover(true);
|
|
3132
2981
|
}
|
|
3133
2982
|
}
|
|
3134
2983
|
},
|
|
@@ -3179,8 +3028,8 @@ external_vue_default.a.use(row_default.a);
|
|
|
3179
3028
|
});
|
|
3180
3029
|
// CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=script&lang=js&
|
|
3181
3030
|
/* harmony default export */ var components_TraditionalControlsvue_type_script_lang_js_ = (TraditionalControlsvue_type_script_lang_js_);
|
|
3182
|
-
// EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=0&id=
|
|
3183
|
-
var
|
|
3031
|
+
// EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=0&id=335c5764&scoped=true&lang=scss&
|
|
3032
|
+
var TraditionalControlsvue_type_style_index_0_id_335c5764_scoped_true_lang_scss_ = __webpack_require__("3a59");
|
|
3184
3033
|
|
|
3185
3034
|
// EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=1&lang=css&
|
|
3186
3035
|
var TraditionalControlsvue_type_style_index_1_lang_css_ = __webpack_require__("add8");
|
|
@@ -3197,11 +3046,11 @@ var TraditionalControlsvue_type_style_index_1_lang_css_ = __webpack_require__("a
|
|
|
3197
3046
|
|
|
3198
3047
|
var TraditionalControls_component = normalizeComponent(
|
|
3199
3048
|
components_TraditionalControlsvue_type_script_lang_js_,
|
|
3200
|
-
|
|
3201
|
-
|
|
3049
|
+
TraditionalControlsvue_type_template_id_335c5764_scoped_true_render,
|
|
3050
|
+
TraditionalControlsvue_type_template_id_335c5764_scoped_true_staticRenderFns,
|
|
3202
3051
|
false,
|
|
3203
3052
|
null,
|
|
3204
|
-
"
|
|
3053
|
+
"335c5764",
|
|
3205
3054
|
null
|
|
3206
3055
|
|
|
3207
3056
|
)
|
|
@@ -3504,9 +3353,9 @@ external_vue_default.a.use(slider_default.a);
|
|
|
3504
3353
|
external_vue_default.a.use(tab_pane_default.a);
|
|
3505
3354
|
external_vue_default.a.use(tabs_default.a);
|
|
3506
3355
|
|
|
3507
|
-
var OrgansViewer = __webpack_require__("
|
|
3356
|
+
var OrgansViewer = __webpack_require__("53d7").OrgansViewer;
|
|
3508
3357
|
|
|
3509
|
-
var EventNotifier = __webpack_require__("
|
|
3358
|
+
var EventNotifier = __webpack_require__("9b21").EventNotifier;
|
|
3510
3359
|
/**
|
|
3511
3360
|
* A vue component of the scaffold viewer.
|
|
3512
3361
|
*
|
|
@@ -3519,8 +3368,8 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3519
3368
|
name: "ScaffoldVuer",
|
|
3520
3369
|
components: {
|
|
3521
3370
|
OpacityControls: OpacityControls,
|
|
3522
|
-
|
|
3523
|
-
|
|
3371
|
+
MapSvgIcon: svg_sprite_["MapSvgIcon"],
|
|
3372
|
+
MapSvgSpriteColor: svg_sprite_["MapSvgSpriteColor"],
|
|
3524
3373
|
TraditionalControls: TraditionalControls
|
|
3525
3374
|
},
|
|
3526
3375
|
props: {
|
|
@@ -3783,7 +3632,6 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3783
3632
|
this.$module.addOrganPartAddedCallback(this.organsAdded);
|
|
3784
3633
|
this.$module.initialiseRenderer(this.$refs.display);
|
|
3785
3634
|
this.toggleRendering(this.render);
|
|
3786
|
-
this.$module.toolTip = undefined;
|
|
3787
3635
|
this.ro = new ResizeObserver(this.adjustLayout).observe(this.$refs.scaffoldContainer);
|
|
3788
3636
|
this.defaultRate = this.$module.getPlayRate();
|
|
3789
3637
|
},
|
|
@@ -3943,6 +3791,13 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3943
3791
|
}
|
|
3944
3792
|
}
|
|
3945
3793
|
},
|
|
3794
|
+
getRendererInfo: function getRendererInfo() {
|
|
3795
|
+
if (this.$module.zincRenderer) {
|
|
3796
|
+
return this.$module.zincRenderer.getThreeJSRenderer().info;
|
|
3797
|
+
}
|
|
3798
|
+
|
|
3799
|
+
return undefined;
|
|
3800
|
+
},
|
|
3946
3801
|
|
|
3947
3802
|
/**
|
|
3948
3803
|
* Function used to rotate the scene.
|
|
@@ -3966,12 +3821,12 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3966
3821
|
*/
|
|
3967
3822
|
eventNotifierCallback: function eventNotifierCallback(event) {
|
|
3968
3823
|
if (event.eventType == 1) {
|
|
3969
|
-
if (this.
|
|
3824
|
+
if (this.$refs.traditionalControl) {
|
|
3970
3825
|
if (event.identifiers[0]) {
|
|
3971
3826
|
var id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
|
|
3972
|
-
this.
|
|
3827
|
+
this.$refs.traditionalControl.changeActiveByName(id, true);
|
|
3973
3828
|
} else {
|
|
3974
|
-
this.
|
|
3829
|
+
this.$refs.traditionalControl.removeActive(true);
|
|
3975
3830
|
}
|
|
3976
3831
|
}
|
|
3977
3832
|
/**
|
|
@@ -3984,12 +3839,12 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3984
3839
|
|
|
3985
3840
|
this.$emit("scaffold-selected", event.identifiers);
|
|
3986
3841
|
} else if (event.eventType == 2) {
|
|
3987
|
-
if (this.
|
|
3842
|
+
if (this.$refs.traditionalControl) {
|
|
3988
3843
|
if (event.identifiers[0]) {
|
|
3989
3844
|
var _id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
|
|
3990
3845
|
|
|
3991
|
-
this.
|
|
3992
|
-
} else this.
|
|
3846
|
+
this.$refs.traditionalControl.changeHoverByName(_id, true);
|
|
3847
|
+
} else this.$refs.traditionalControl.removeHover(true);
|
|
3993
3848
|
}
|
|
3994
3849
|
/**
|
|
3995
3850
|
* Triggers when an object has been highlighted
|
|
@@ -4036,30 +3891,48 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
4036
3891
|
},
|
|
4037
3892
|
|
|
4038
3893
|
/**
|
|
4039
|
-
* Set the selected zinc object
|
|
3894
|
+
* A callback used by children components. Set the selected zinc object
|
|
4040
3895
|
*
|
|
4041
3896
|
* @param {object} object Zinc object
|
|
4042
3897
|
*/
|
|
4043
|
-
objectSelected: function objectSelected(object) {
|
|
3898
|
+
objectSelected: function objectSelected(object, propagate) {
|
|
4044
3899
|
if (object !== this.selectedObject) {
|
|
4045
3900
|
this.selectedObject = object;
|
|
4046
3901
|
this.$refs.opacityControl.setObject(this.selectedObject);
|
|
4047
|
-
if (object) this.$module.setSelectedByZincObject(object,
|
|
3902
|
+
if (object) this.$module.setSelectedByZincObject(object, propagate);else this.$module.setSelectedByObjects([], propagate);
|
|
4048
3903
|
}
|
|
4049
3904
|
},
|
|
4050
3905
|
|
|
4051
3906
|
/**
|
|
4052
|
-
* Set the highlighted zinc object
|
|
3907
|
+
* A callback used by children components. Set the highlighted zinc object
|
|
4053
3908
|
*
|
|
4054
3909
|
* @param {object} object Zinc object
|
|
4055
3910
|
*/
|
|
4056
|
-
objectHovered: function objectHovered(object) {
|
|
3911
|
+
objectHovered: function objectHovered(object, propagate) {
|
|
4057
3912
|
if (object !== this.hoveredObject) {
|
|
4058
3913
|
this.hoveredObject = object;
|
|
4059
|
-
if (object) this.$module.setHighlightedByZincObject(object,
|
|
3914
|
+
if (object) this.$module.setHighlightedByZincObject(object, propagate);else this.$module.setHighlightedByObjects([], propagate);
|
|
4060
3915
|
}
|
|
4061
3916
|
},
|
|
4062
3917
|
|
|
3918
|
+
/**
|
|
3919
|
+
* Set the selected by name.
|
|
3920
|
+
*
|
|
3921
|
+
* @param {name} name Name of the region
|
|
3922
|
+
*/
|
|
3923
|
+
changeActiveByName: function changeActiveByName(name, propagate) {
|
|
3924
|
+
if (name === undefined) this.$refs.traditionalControl.removeActive(propagate);else this.$refs.traditionalControl.changeActiveByName(name, propagate);
|
|
3925
|
+
},
|
|
3926
|
+
|
|
3927
|
+
/**
|
|
3928
|
+
* Set the highlighted by name.
|
|
3929
|
+
*
|
|
3930
|
+
* @param {name} name Name of the region
|
|
3931
|
+
*/
|
|
3932
|
+
changeHighlightedByName: function changeHighlightedByName(name, propagate) {
|
|
3933
|
+
if (name === undefined) this.$refs.traditionalControl.removeHover(propagate);else this.$refs.traditionalControl.changeHoverByName(name, propagate);
|
|
3934
|
+
},
|
|
3935
|
+
|
|
4063
3936
|
/**
|
|
4064
3937
|
* Start the animation.
|
|
4065
3938
|
*
|
|
@@ -4222,6 +4095,9 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
4222
4095
|
}
|
|
4223
4096
|
}
|
|
4224
4097
|
},
|
|
4098
|
+
exportGLTF: function exportGLTF(binary) {
|
|
4099
|
+
return this.$module.scene.exportGLTF(binary);
|
|
4100
|
+
},
|
|
4225
4101
|
|
|
4226
4102
|
/**
|
|
4227
4103
|
* Function used for reading in new scaffold metadata and a custom
|
|
@@ -4302,8 +4178,8 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
4302
4178
|
});
|
|
4303
4179
|
// CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=script&lang=js&
|
|
4304
4180
|
/* harmony default export */ var components_ScaffoldVuervue_type_script_lang_js_ = (ScaffoldVuervue_type_script_lang_js_);
|
|
4305
|
-
// EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=
|
|
4306
|
-
var
|
|
4181
|
+
// EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=023c058f&scoped=true&lang=scss&
|
|
4182
|
+
var ScaffoldVuervue_type_style_index_0_id_023c058f_scoped_true_lang_scss_ = __webpack_require__("1f67");
|
|
4307
4183
|
|
|
4308
4184
|
// EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=1&lang=scss&
|
|
4309
4185
|
var ScaffoldVuervue_type_style_index_1_lang_scss_ = __webpack_require__("642d");
|
|
@@ -4324,7 +4200,7 @@ var ScaffoldVuer_component = normalizeComponent(
|
|
|
4324
4200
|
staticRenderFns,
|
|
4325
4201
|
false,
|
|
4326
4202
|
null,
|
|
4327
|
-
"
|
|
4203
|
+
"023c058f",
|
|
4328
4204
|
null
|
|
4329
4205
|
|
|
4330
4206
|
)
|