@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
|
@@ -101,125 +101,69 @@ module.exports = require("element-ui/lib/checkbox-group");
|
|
|
101
101
|
|
|
102
102
|
/***/ }),
|
|
103
103
|
|
|
104
|
-
/***/ "
|
|
104
|
+
/***/ "0676":
|
|
105
105
|
/***/ (function(module, exports) {
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
function _nonIterableSpread() {
|
|
108
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
module.exports = _nonIterableSpread;
|
|
108
112
|
|
|
109
113
|
/***/ }),
|
|
110
114
|
|
|
111
|
-
/***/ "
|
|
112
|
-
/***/ (function(module, exports) {
|
|
115
|
+
/***/ "09a4":
|
|
116
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
113
117
|
|
|
114
|
-
|
|
118
|
+
// extracted by mini-css-extract-plugin
|
|
115
119
|
|
|
116
120
|
/***/ }),
|
|
117
121
|
|
|
118
|
-
/***/ "
|
|
122
|
+
/***/ "0cf4":
|
|
119
123
|
/***/ (function(module, exports) {
|
|
120
124
|
|
|
121
|
-
module.exports = require("element-ui/lib/theme-chalk/
|
|
125
|
+
module.exports = require("element-ui/lib/theme-chalk/checkbox-group.css");
|
|
122
126
|
|
|
123
127
|
/***/ }),
|
|
124
128
|
|
|
125
|
-
/***/ "
|
|
129
|
+
/***/ "0de2":
|
|
126
130
|
/***/ (function(module, exports) {
|
|
127
131
|
|
|
128
|
-
|
|
129
|
-
* @author alteredq / http://alteredqualia.com/
|
|
130
|
-
* @author mr.doob / http://mrdoob.com/
|
|
131
|
-
*/
|
|
132
|
-
|
|
133
|
-
exports.WEBGL = {
|
|
134
|
-
|
|
135
|
-
isWebGLAvailable: function () {
|
|
136
|
-
|
|
137
|
-
try {
|
|
138
|
-
|
|
139
|
-
var canvas = document.createElement( 'canvas' );
|
|
140
|
-
return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) );
|
|
141
|
-
|
|
142
|
-
} catch ( e ) {
|
|
143
|
-
|
|
144
|
-
return false;
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
isWebGL2Available: function () {
|
|
151
|
-
|
|
152
|
-
try {
|
|
153
|
-
|
|
154
|
-
var canvas = document.createElement( 'canvas' );
|
|
155
|
-
return !! ( window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ) );
|
|
156
|
-
|
|
157
|
-
} catch ( e ) {
|
|
158
|
-
|
|
159
|
-
return false;
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
},
|
|
164
|
-
|
|
165
|
-
getWebGLErrorMessage: function () {
|
|
166
|
-
|
|
167
|
-
return this.getErrorMessage( 1 );
|
|
168
|
-
|
|
169
|
-
},
|
|
170
|
-
|
|
171
|
-
getWebGL2ErrorMessage: function () {
|
|
172
|
-
|
|
173
|
-
return this.getErrorMessage( 2 );
|
|
174
|
-
|
|
175
|
-
},
|
|
176
|
-
|
|
177
|
-
getErrorMessage: function ( version ) {
|
|
132
|
+
module.exports = require("element-ui/lib/select");
|
|
178
133
|
|
|
179
|
-
|
|
180
|
-
1: 'WebGL',
|
|
181
|
-
2: 'WebGL 2'
|
|
182
|
-
};
|
|
134
|
+
/***/ }),
|
|
183
135
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
2: window.WebGL2RenderingContext
|
|
187
|
-
};
|
|
136
|
+
/***/ "0fe2":
|
|
137
|
+
/***/ (function(module, exports) {
|
|
188
138
|
|
|
189
|
-
|
|
139
|
+
module.exports = require("element-ui/lib/theme-chalk/select.css");
|
|
190
140
|
|
|
191
|
-
|
|
192
|
-
element.id = 'webglmessage';
|
|
193
|
-
element.style.fontFamily = 'monospace';
|
|
194
|
-
element.style.fontSize = '20px';
|
|
195
|
-
element.style.fontWeight = 'normal';
|
|
196
|
-
element.style.textAlign = 'center';
|
|
197
|
-
element.style.background = '#fff';
|
|
198
|
-
element.style.color = '#000';
|
|
199
|
-
element.style.padding = '1.5em';
|
|
200
|
-
element.style.width = '400px';
|
|
201
|
-
element.style.margin = '5em auto 0';
|
|
141
|
+
/***/ }),
|
|
202
142
|
|
|
203
|
-
|
|
143
|
+
/***/ "11b0":
|
|
144
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
204
145
|
|
|
205
|
-
|
|
146
|
+
__webpack_require__("6049");
|
|
206
147
|
|
|
207
|
-
|
|
148
|
+
__webpack_require__("51e9");
|
|
208
149
|
|
|
209
|
-
|
|
150
|
+
__webpack_require__("02ac");
|
|
210
151
|
|
|
211
|
-
|
|
152
|
+
__webpack_require__("e42b");
|
|
212
153
|
|
|
213
|
-
|
|
154
|
+
__webpack_require__("8c84");
|
|
214
155
|
|
|
215
|
-
|
|
156
|
+
__webpack_require__("850c");
|
|
216
157
|
|
|
217
|
-
|
|
158
|
+
__webpack_require__("907b");
|
|
218
159
|
|
|
219
|
-
|
|
160
|
+
__webpack_require__("1ce0");
|
|
220
161
|
|
|
221
|
-
|
|
162
|
+
function _iterableToArray(iter) {
|
|
163
|
+
if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
|
|
164
|
+
}
|
|
222
165
|
|
|
166
|
+
module.exports = _iterableToArray;
|
|
223
167
|
|
|
224
168
|
/***/ }),
|
|
225
169
|
|
|
@@ -230,13 +174,6 @@ module.exports = require("core-js/modules/es.array.for-each");
|
|
|
230
174
|
|
|
231
175
|
/***/ }),
|
|
232
176
|
|
|
233
|
-
/***/ "1823":
|
|
234
|
-
/***/ (function(module, exports) {
|
|
235
|
-
|
|
236
|
-
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"
|
|
237
|
-
|
|
238
|
-
/***/ }),
|
|
239
|
-
|
|
240
177
|
/***/ "18d2":
|
|
241
178
|
/***/ (function(module, exports) {
|
|
242
179
|
|
|
@@ -256,6 +193,17 @@ module.exports = require("element-ui/lib/container");
|
|
|
256
193
|
|
|
257
194
|
module.exports = require("core-js/modules/web.dom-collections.iterator");
|
|
258
195
|
|
|
196
|
+
/***/ }),
|
|
197
|
+
|
|
198
|
+
/***/ "1f67":
|
|
199
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
200
|
+
|
|
201
|
+
"use strict";
|
|
202
|
+
/* 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");
|
|
203
|
+
/* 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__);
|
|
204
|
+
/* unused harmony reexport * */
|
|
205
|
+
|
|
206
|
+
|
|
259
207
|
/***/ }),
|
|
260
208
|
|
|
261
209
|
/***/ "1fe8":
|
|
@@ -283,10 +231,16 @@ module.exports = require("core-js/modules/es.object.keys");
|
|
|
283
231
|
|
|
284
232
|
/***/ }),
|
|
285
233
|
|
|
286
|
-
/***/ "
|
|
234
|
+
/***/ "2236":
|
|
287
235
|
/***/ (function(module, exports, __webpack_require__) {
|
|
288
236
|
|
|
289
|
-
|
|
237
|
+
var arrayLikeToArray = __webpack_require__("5a43");
|
|
238
|
+
|
|
239
|
+
function _arrayWithoutHoles(arr) {
|
|
240
|
+
if (Array.isArray(arr)) return arrayLikeToArray(arr);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
module.exports = _arrayWithoutHoles;
|
|
290
244
|
|
|
291
245
|
/***/ }),
|
|
292
246
|
|
|
@@ -346,133 +300,47 @@ module.exports = require("element-ui/lib/drawer");
|
|
|
346
300
|
|
|
347
301
|
/***/ }),
|
|
348
302
|
|
|
349
|
-
/***/ "
|
|
350
|
-
/***/ (function(module,
|
|
351
|
-
|
|
352
|
-
var MODULE_CHANGE = { ALL: 0, DESTROYED: 1, NAME_CHANGED: 2, SETTINGS_CHANGED: 3 };
|
|
353
|
-
|
|
354
|
-
var BaseModule = function() {
|
|
355
|
-
this.typeName = "Base Module";
|
|
356
|
-
this.instanceName = "default";
|
|
357
|
-
this.onChangedCallbacks = [];
|
|
358
|
-
this.messageFunction = undefined;
|
|
359
|
-
/** Notifier handle for informing other modules of any changes **/
|
|
360
|
-
this.eventNotifiers = [];
|
|
361
|
-
this.broadcastChannels = {};
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
BaseModule.prototype.setName = function(name) {
|
|
365
|
-
if (name && this.instanceName !== name) {
|
|
366
|
-
this.instanceName = name;
|
|
367
|
-
var callbackArray = this.onChangedCallbacks.slice();
|
|
368
|
-
for (var i = 0; i < callbackArray.length; i++) {
|
|
369
|
-
callbackArray[i]( this, MODULE_CHANGE.NAME_CHANGED );
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
BaseModule.prototype.addBroadcastChannels = function(ChannelName) {
|
|
375
|
-
if (ChannelName in this.broadcastChannels)
|
|
376
|
-
return false;
|
|
377
|
-
var newChannel = new (__webpack_require__("c45a")).default(ChannelName);
|
|
378
|
-
this.broadcastChannels[ChannelName] = newChannel;
|
|
379
|
-
return true;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
BaseModule.prototype.removeBroadcastChannels = function(ChannelName) {
|
|
383
|
-
if (ChannelName in this.broadcastChannels) {
|
|
384
|
-
this.broadcastChannels[ChannelName].close();
|
|
385
|
-
delete broadcastChannels[ChannelName];
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
}
|
|
303
|
+
/***/ "3a59":
|
|
304
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
389
305
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
}
|
|
395
|
-
}
|
|
306
|
+
"use strict";
|
|
307
|
+
/* 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");
|
|
308
|
+
/* 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__);
|
|
309
|
+
/* unused harmony reexport * */
|
|
396
310
|
|
|
397
|
-
BaseModule.prototype.exportSettings = function() {
|
|
398
|
-
var settings = {};
|
|
399
|
-
settings.dialog = this.typeName;
|
|
400
|
-
settings.name = this.instanceName;
|
|
401
|
-
return settings;
|
|
402
|
-
}
|
|
403
311
|
|
|
404
|
-
|
|
405
|
-
if (settings.dialog == this.typeName) {
|
|
406
|
-
this.setName(settings.name);
|
|
407
|
-
return true;
|
|
408
|
-
}
|
|
409
|
-
return false;
|
|
410
|
-
}
|
|
312
|
+
/***/ }),
|
|
411
313
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
this.eventNotifiers[i].publish(this, eventType, annotations);
|
|
415
|
-
}
|
|
416
|
-
if (eventType === __webpack_require__("549c").EVENT_TYPE.SELECTED) {
|
|
417
|
-
if (annotations && annotations[0]) {
|
|
418
|
-
var annotation = annotations[0];
|
|
419
|
-
var data = {action: "query-data", resource: annotation.data.id, data: annotation.data, sender: this.instanceName};
|
|
420
|
-
for (var key in this.broadcastChannels) {
|
|
421
|
-
this.broadcastChannels[key].postMessage(data);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
}
|
|
314
|
+
/***/ "429c":
|
|
315
|
+
/***/ (function(module, exports) {
|
|
426
316
|
|
|
427
|
-
|
|
428
|
-
this.messageFunction = functionIn;
|
|
429
|
-
}
|
|
317
|
+
module.exports = require("@abi-software/svg-sprite");
|
|
430
318
|
|
|
431
|
-
|
|
432
|
-
if (this.messageFunction)
|
|
433
|
-
this.messageFunction(message);
|
|
434
|
-
}
|
|
319
|
+
/***/ }),
|
|
435
320
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
}
|
|
321
|
+
/***/ "448a":
|
|
322
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
439
323
|
|
|
440
|
-
|
|
441
|
-
//Make a temorary copy as the array may be altered during the loop
|
|
442
|
-
var callbackArray = this.onChangedCallbacks.slice();
|
|
443
|
-
for (var i = 0; i < callbackArray.length; i++) {
|
|
444
|
-
callbackArray[i]( this, MODULE_CHANGE.DESTROYED );
|
|
445
|
-
}
|
|
324
|
+
var arrayWithoutHoles = __webpack_require__("2236");
|
|
446
325
|
|
|
447
|
-
|
|
448
|
-
}
|
|
326
|
+
var iterableToArray = __webpack_require__("11b0");
|
|
449
327
|
|
|
450
|
-
|
|
451
|
-
if (this.onChangedCallbacks.includes(callback) == false)
|
|
452
|
-
this.onChangedCallbacks.push(callback);
|
|
453
|
-
}
|
|
328
|
+
var unsupportedIterableToArray = __webpack_require__("6613");
|
|
454
329
|
|
|
455
|
-
|
|
456
|
-
var index = this.onChangedCallbacks.indexOf(callback);
|
|
457
|
-
if (index > -1) {
|
|
458
|
-
this.onChangedCallbacks.splice(index, 1);
|
|
459
|
-
}
|
|
460
|
-
}
|
|
330
|
+
var nonIterableSpread = __webpack_require__("0676");
|
|
461
331
|
|
|
462
|
-
|
|
463
|
-
|
|
332
|
+
function _toConsumableArray(arr) {
|
|
333
|
+
return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
|
|
464
334
|
}
|
|
465
335
|
|
|
466
|
-
exports
|
|
467
|
-
exports.MODULE_CHANGE = MODULE_CHANGE;
|
|
468
|
-
|
|
336
|
+
module.exports = _toConsumableArray;
|
|
469
337
|
|
|
470
338
|
/***/ }),
|
|
471
339
|
|
|
472
|
-
/***/ "
|
|
473
|
-
/***/ (function(module, exports) {
|
|
340
|
+
/***/ "4646":
|
|
341
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
474
342
|
|
|
475
|
-
|
|
343
|
+
// extracted by mini-css-extract-plugin
|
|
476
344
|
|
|
477
345
|
/***/ }),
|
|
478
346
|
|
|
@@ -497,13 +365,6 @@ module.exports = require("lodash/uniq");
|
|
|
497
365
|
|
|
498
366
|
/***/ }),
|
|
499
367
|
|
|
500
|
-
/***/ "4e8a":
|
|
501
|
-
/***/ (function(module, exports) {
|
|
502
|
-
|
|
503
|
-
module.exports = "precision highp float;\nuniform sampler2D myTex;\nvarying vec2 vUv;\n\nvoid main() {\n\tgl_FragColor = texture2D( myTex, vUv );\n\n}\n"
|
|
504
|
-
|
|
505
|
-
/***/ }),
|
|
506
|
-
|
|
507
368
|
/***/ "51c7":
|
|
508
369
|
/***/ (function(module, exports) {
|
|
509
370
|
|
|
@@ -525,139 +386,31 @@ module.exports = require("core-js/modules/es.regexp.exec");
|
|
|
525
386
|
|
|
526
387
|
/***/ }),
|
|
527
388
|
|
|
528
|
-
/***/ "
|
|
529
|
-
/***/ (function(module, exports) {
|
|
530
|
-
|
|
531
|
-
var EVENT_TYPE = { ALL: 0, SELECTED: 1, HIGHLIGHTED: 2 };
|
|
532
|
-
|
|
533
|
-
var SelectionEvent = function(eventTypeIn, identifiersIn) {
|
|
534
|
-
this.eventType = eventTypeIn;
|
|
535
|
-
this.identifiers = identifiersIn;
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
var returnFullID = function(sourceId) {
|
|
539
|
-
//return full annotations with all different name
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
var Subscription = function(subscriberIn, callbackIn, eventType) {
|
|
543
|
-
this.targetedID = [];
|
|
544
|
-
var subscriber = subscriberIn;
|
|
545
|
-
if (eventType === undefined)
|
|
546
|
-
this.targetEventType = EVENT_TYPE.ALL;
|
|
547
|
-
else
|
|
548
|
-
this.targetEventType = eventType;
|
|
549
|
-
var callback = callbackIn;
|
|
550
|
-
|
|
551
|
-
var _this = this;
|
|
552
|
-
|
|
553
|
-
this.getEventType = function() {
|
|
554
|
-
return eventType;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
this.notify = function(source, eventType, ids) {
|
|
558
|
-
if (source !== subscriber && (_this.targetEventType === EVENT_TYPE.ALL ||
|
|
559
|
-
_this.targetEventType === eventType)) {
|
|
560
|
-
//should support different type of id e.g lyph, name, fmas...
|
|
561
|
-
//need a function that finds all relavant ids
|
|
562
|
-
var event = new SelectionEvent(eventType, ids);
|
|
563
|
-
callback(event);
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
exports.EventNotifier = function() {
|
|
569
|
-
var events = [];
|
|
570
|
-
var subscriptions = [];
|
|
571
|
-
var _this = this;
|
|
572
|
-
|
|
573
|
-
this.publish = function(source, eventType, id) {
|
|
574
|
-
for (var i = 0; i < subscriptions.length;i++) {
|
|
575
|
-
subscriptions[i].notify(source, eventType, id);
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
|
|
579
|
-
this.subscribe = function(subscriber, callbackFunction, eventType) {
|
|
580
|
-
if (typeof callbackFunction === "function") {
|
|
581
|
-
var subscription = new Subscription(subscriber, callbackFunction, eventType);
|
|
582
|
-
subscriptions.push(subscription);
|
|
583
|
-
return subscription;
|
|
584
|
-
}
|
|
585
|
-
return undefined;
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
this.unsubscribe = function(subscription) {
|
|
589
|
-
for (var i = 0; i < subscriptions.length;i++) {
|
|
590
|
-
if (subscription === subscriptions[i]) {
|
|
591
|
-
subscriptions.splice(i, 1);
|
|
592
|
-
return;
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
|
|
598
|
-
exports.EVENT_TYPE = EVENT_TYPE;
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
/***/ }),
|
|
602
|
-
|
|
603
|
-
/***/ "55ee":
|
|
604
|
-
/***/ (function(module, exports) {
|
|
605
|
-
|
|
606
|
-
module.exports = require("element-ui/lib/theme-chalk/checkbox.css");
|
|
607
|
-
|
|
608
|
-
/***/ }),
|
|
609
|
-
|
|
610
|
-
/***/ "5810":
|
|
389
|
+
/***/ "53d7":
|
|
611
390
|
/***/ (function(module, exports, __webpack_require__) {
|
|
612
391
|
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
/***/ }),
|
|
616
|
-
|
|
617
|
-
/***/ "5fef":
|
|
618
|
-
/***/ (function(module, exports) {
|
|
619
|
-
|
|
620
|
-
module.exports = require("core-js/modules/es.regexp.to-string");
|
|
621
|
-
|
|
622
|
-
/***/ }),
|
|
623
|
-
|
|
624
|
-
/***/ "6049":
|
|
625
|
-
/***/ (function(module, exports) {
|
|
626
|
-
|
|
627
|
-
module.exports = require("core-js/modules/es.symbol");
|
|
628
|
-
|
|
629
|
-
/***/ }),
|
|
630
|
-
|
|
631
|
-
/***/ "642d":
|
|
632
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
633
|
-
|
|
634
|
-
"use strict";
|
|
635
|
-
/* 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");
|
|
636
|
-
/* 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__);
|
|
637
|
-
/* unused harmony reexport * */
|
|
638
|
-
|
|
392
|
+
__webpack_require__("ab7e");
|
|
639
393
|
|
|
640
|
-
|
|
394
|
+
__webpack_require__("7c81");
|
|
641
395
|
|
|
642
|
-
|
|
643
|
-
/***/ (function(module, exports) {
|
|
396
|
+
__webpack_require__("bcd8");
|
|
644
397
|
|
|
645
|
-
|
|
398
|
+
__webpack_require__("2175");
|
|
646
399
|
|
|
647
|
-
|
|
400
|
+
__webpack_require__("fd48");
|
|
648
401
|
|
|
649
|
-
|
|
650
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
402
|
+
var _typeof = __webpack_require__("7037");
|
|
651
403
|
|
|
652
|
-
var THREE = __webpack_require__("9206").THREE;
|
|
653
|
-
// Current model's associate data, data fields, external link, nerve map
|
|
404
|
+
var THREE = __webpack_require__("9206").THREE; // Current model's associate data, data fields, external link, nerve map
|
|
654
405
|
// informations,
|
|
655
406
|
// these are proived in the organsFileMap array.
|
|
656
|
-
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
var OrgansSceneData = function OrgansSceneData() {
|
|
657
410
|
this.currentName = "";
|
|
658
411
|
this.currentSystem = "";
|
|
659
412
|
this.currentPart = "";
|
|
660
|
-
this.currentSpecies
|
|
413
|
+
this.currentSpecies = "";
|
|
661
414
|
this.metaURL = "";
|
|
662
415
|
this.viewURL = "";
|
|
663
416
|
this.geometries = [];
|
|
@@ -666,12 +419,7 @@ var OrgansSceneData = function() {
|
|
|
666
419
|
this.pointsets = [];
|
|
667
420
|
this.currentTime = 0.0;
|
|
668
421
|
this.timeVarying = false;
|
|
669
|
-
|
|
670
|
-
// informations,
|
|
671
|
-
this.nerveMap = undefined;
|
|
672
|
-
this.nerveMapIsActive = false;
|
|
673
|
-
}
|
|
674
|
-
|
|
422
|
+
};
|
|
675
423
|
/**
|
|
676
424
|
* Viewer of 3D-organs models. Users can toggle on/off different views. Data is
|
|
677
425
|
* displayed instead if models are not available.
|
|
@@ -686,619 +434,927 @@ var OrgansSceneData = function() {
|
|
|
686
434
|
* @author Alan Wu
|
|
687
435
|
* @returns {PJP.OrgansViewer}
|
|
688
436
|
*/
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
|
|
440
|
+
__webpack_require__("8278").RendererModule.call(this);
|
|
441
|
+
|
|
442
|
+
var _this = this;
|
|
443
|
+
|
|
444
|
+
var pickerScene = undefined;
|
|
445
|
+
this.sceneData = new OrgansSceneData();
|
|
446
|
+
var timeChangedCallbacks = new Array();
|
|
447
|
+
var sceneChangedCallbacks = new Array();
|
|
696
448
|
var organPartAddedCallbacks = new Array();
|
|
697
449
|
var finishDownloadCallback = undefined;
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
if (_this.scene)
|
|
713
|
-
duration = _this.scene.getDuration();
|
|
450
|
+
var modelsLoader = ModelsLoaderIn;
|
|
451
|
+
_this.typeName = "Organ Viewer";
|
|
452
|
+
|
|
453
|
+
this.getSceneData = function () {
|
|
454
|
+
return _this.sceneData;
|
|
455
|
+
};
|
|
456
|
+
/**
|
|
457
|
+
* Used to update internal timer in scene when time slider has changed.
|
|
458
|
+
*/
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
this.updateTime = function (value) {
|
|
462
|
+
var duration = 6000;
|
|
463
|
+
if (_this.scene) duration = _this.scene.getDuration();
|
|
714
464
|
var actualTime = value / 100.0 * duration;
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
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
|
-
var coord = _this.scene.vectorToScreenXY(vector);
|
|
752
|
-
_this.selectedScreenCoordinates.x = coord.x;
|
|
465
|
+
|
|
466
|
+
if (!_this.sceneData.nerveMapIsActive) {
|
|
467
|
+
if (pickerScene) pickerScene.setMorphsTime(actualTime);
|
|
468
|
+
if (_this.scene) _this.scene.setMorphsTime(actualTime);
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
_this.sceneData.currentTime = value;
|
|
472
|
+
};
|
|
473
|
+
/**
|
|
474
|
+
* Update the time slider and other renderers/scenes when time has changed.
|
|
475
|
+
*/
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
var preRenderTimeUpdate = function preRenderTimeUpdate() {
|
|
479
|
+
var duration = 3000;
|
|
480
|
+
if (_this.scene) duration = _this.scene.getDuration();
|
|
481
|
+
|
|
482
|
+
var currentTime = _this.zincRenderer.getCurrentTime();
|
|
483
|
+
|
|
484
|
+
for (var i = 0; i < timeChangedCallbacks.length; i++) {
|
|
485
|
+
timeChangedCallbacks[i](currentTime);
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
if (!_this.sceneData.nerveMapIsActive && pickerScene) pickerScene.setMorphsTime(currentTime);
|
|
489
|
+
if (_this.sceneData.nerveMap && _this.sceneData.nerveMap.additionalReader) _this.sceneData.nerveMap.additionalReader.setTime(currentTime / duration);
|
|
490
|
+
_this.sceneData.currentTime = currentTime / duration * 100.0;
|
|
491
|
+
};
|
|
492
|
+
|
|
493
|
+
var postRenderSelectedCoordinatesUpdate = function postRenderSelectedCoordinatesUpdate() {
|
|
494
|
+
if (_this.selectedCenter) {
|
|
495
|
+
var vector = new THREE.Vector3();
|
|
496
|
+
vector.copy(_this.selectedCenter);
|
|
497
|
+
|
|
498
|
+
var coord = _this.scene.vectorToScreenXY(vector);
|
|
499
|
+
|
|
500
|
+
_this.selectedScreenCoordinates.x = coord.x;
|
|
753
501
|
_this.selectedScreenCoordinates.y = coord.y;
|
|
754
502
|
}
|
|
755
|
-
}
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
503
|
+
};
|
|
504
|
+
|
|
505
|
+
var preRenderUpdateCallback = function preRenderUpdateCallback() {
|
|
506
|
+
return function () {
|
|
759
507
|
preRenderTimeUpdate();
|
|
760
|
-
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
var postRenderUpdateCallback = function() {
|
|
764
|
-
|
|
508
|
+
};
|
|
509
|
+
};
|
|
510
|
+
|
|
511
|
+
var postRenderUpdateCallback = function postRenderUpdateCallback() {
|
|
512
|
+
return function () {
|
|
765
513
|
postRenderSelectedCoordinatesUpdate();
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
*/
|
|
772
|
-
this.addTimeChangedCallback = function(callback) {
|
|
773
|
-
if (typeof(callback === "function"))
|
|
774
|
-
timeChangedCallbacks.push(callback);
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
this.setTexturePos = function(value) {
|
|
778
|
-
if (_this.sceneData.nerveMap && _this.sceneData.nerveMap.additionalReader)
|
|
779
|
-
_this.sceneData.nerveMap.additionalReader.setSliderPos(value);
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
this.addLayoutUpdateRequiredCallback = function(callback) {
|
|
783
|
-
if (typeof(callback === "function")) {
|
|
784
|
-
layoutUpdateRequiredCallbacks.push(callback);
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
this.addSceneChangedCallback = function(callback) {
|
|
789
|
-
if (typeof(callback === "function")) {
|
|
790
|
-
sceneChangedCallbacks.push(callback);
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
|
|
794
|
-
this.addOrganPartAddedCallback = function(callback) {
|
|
795
|
-
if (typeof(callback === "function"))
|
|
796
|
-
organPartAddedCallbacks.push(callback);
|
|
797
|
-
}
|
|
514
|
+
};
|
|
515
|
+
};
|
|
516
|
+
/**
|
|
517
|
+
* Add a callback which will be called when time has changed
|
|
518
|
+
*/
|
|
798
519
|
|
|
799
|
-
this.setFinishDownloadCallback = function(callback) {
|
|
800
|
-
if (typeof(callback === "function"))
|
|
801
|
-
finishDownloadCallback = callback;
|
|
802
|
-
}
|
|
803
520
|
|
|
804
|
-
this.
|
|
521
|
+
this.addTimeChangedCallback = function (callback) {
|
|
522
|
+
if (_typeof(callback === "function")) timeChangedCallbacks.push(callback);
|
|
523
|
+
};
|
|
524
|
+
|
|
525
|
+
this.setTexturePos = function (value) {
|
|
526
|
+
if (_this.sceneData.nerveMap && _this.sceneData.nerveMap.additionalReader) _this.sceneData.nerveMap.additionalReader.setSliderPos(value);
|
|
527
|
+
};
|
|
528
|
+
|
|
529
|
+
this.addSceneChangedCallback = function (callback) {
|
|
530
|
+
if (_typeof(callback === "function")) {
|
|
531
|
+
sceneChangedCallbacks.push(callback);
|
|
532
|
+
}
|
|
533
|
+
};
|
|
534
|
+
|
|
535
|
+
this.addOrganPartAddedCallback = function (callback) {
|
|
536
|
+
if (_typeof(callback === "function")) organPartAddedCallbacks.push(callback);
|
|
537
|
+
};
|
|
538
|
+
|
|
539
|
+
this.setFinishDownloadCallback = function (callback) {
|
|
540
|
+
if (_typeof(callback === "function")) finishDownloadCallback = callback;
|
|
541
|
+
};
|
|
542
|
+
|
|
543
|
+
this.unsetFinishDownloadCallback = function () {
|
|
805
544
|
finishDownloadCallback = undefined;
|
|
806
|
-
}
|
|
545
|
+
};
|
|
807
546
|
|
|
808
|
-
this.getNamedObjectsToScreenCoordinates = function(name, camera) {
|
|
547
|
+
this.getNamedObjectsToScreenCoordinates = function (name, camera) {
|
|
809
548
|
var vector = new THREE.Vector3();
|
|
810
|
-
vector.setFromMatrixPosition(
|
|
811
|
-
var widthHalf =
|
|
812
|
-
var heightHalf =
|
|
549
|
+
vector.setFromMatrixPosition(obj.matrixWorld);
|
|
550
|
+
var widthHalf = width / 2;
|
|
551
|
+
var heightHalf = height / 2;
|
|
813
552
|
vector.project(camera);
|
|
814
|
-
vector.x =
|
|
815
|
-
vector.y = -
|
|
553
|
+
vector.x = vector.x * widthHalf + widthHalf;
|
|
554
|
+
vector.y = -(vector.y * heightHalf) + heightHalf;
|
|
816
555
|
return vector;
|
|
817
|
-
}
|
|
556
|
+
};
|
|
818
557
|
|
|
819
|
-
var getIdObjectFromIntersect = function(intersected) {
|
|
558
|
+
var getIdObjectFromIntersect = function getIdObjectFromIntersect(intersected) {
|
|
820
559
|
var id = undefined;
|
|
821
560
|
var intersectedObject = undefined;
|
|
561
|
+
|
|
822
562
|
if (intersected !== undefined) {
|
|
823
|
-
if (intersected.object.userData &&
|
|
824
|
-
intersected.object.userData.isMarker) {
|
|
563
|
+
if (intersected.object.userData && intersected.object.userData.isMarker) {
|
|
825
564
|
intersectedObject = intersected.object.userData.parent.morph;
|
|
826
565
|
} else {
|
|
827
566
|
intersectedObject = intersected.object;
|
|
828
567
|
}
|
|
568
|
+
|
|
829
569
|
if (intersectedObject) {
|
|
830
570
|
if (intersectedObject.name) {
|
|
831
571
|
id = intersectedObject.name;
|
|
832
572
|
} else {
|
|
833
|
-
var annotations = _this.getAnnotationsFromObjects(
|
|
834
|
-
|
|
573
|
+
var annotations = _this.getAnnotationsFromObjects([intersectedObject]);
|
|
574
|
+
|
|
835
575
|
if (annotations && annotations[0]) {
|
|
836
576
|
id = annotations[0].data.group;
|
|
837
577
|
}
|
|
838
578
|
}
|
|
839
579
|
}
|
|
840
580
|
}
|
|
841
|
-
|
|
581
|
+
|
|
582
|
+
return {
|
|
583
|
+
"id": id,
|
|
584
|
+
"object": intersectedObject
|
|
585
|
+
};
|
|
586
|
+
};
|
|
587
|
+
/**
|
|
588
|
+
* Callback function when a pickable object has been picked. It will then
|
|
589
|
+
* call functions in tissueViewer and cellPanel to show corresponding
|
|
590
|
+
* informations.
|
|
591
|
+
*
|
|
592
|
+
* @callback
|
|
593
|
+
*/
|
|
594
|
+
|
|
595
|
+
|
|
596
|
+
var _pickingCallback = function _pickingCallback() {
|
|
597
|
+
return function (intersects, window_x, window_y) {
|
|
598
|
+
var intersected = _this.getIntersectedObject(intersects);
|
|
599
|
+
|
|
600
|
+
var idObject = getIdObjectFromIntersect(intersected);
|
|
601
|
+
|
|
602
|
+
if (idObject.id) {
|
|
603
|
+
if (idObject.object.userData.isGlyph) {
|
|
604
|
+
if (idObject.object.name) _this.setSelectedByObjects([idObject.object], true);else _this.setSelectedByZincObject(idObject.object.userData.getGlyphset(), true);
|
|
605
|
+
} else {
|
|
606
|
+
_this.setSelectedByObjects([idObject.object], true);
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
return;
|
|
610
|
+
} else {
|
|
611
|
+
_this.setSelectedByObjects([], true);
|
|
612
|
+
}
|
|
613
|
+
};
|
|
614
|
+
};
|
|
615
|
+
/**
|
|
616
|
+
* Callback function when a pickable object has been hovered over.
|
|
617
|
+
*
|
|
618
|
+
* @callback
|
|
619
|
+
*/
|
|
620
|
+
|
|
621
|
+
|
|
622
|
+
var _hoverCallback = function _hoverCallback() {
|
|
623
|
+
return function (intersects, window_x, window_y) {
|
|
624
|
+
var intersected = _this.getIntersectedObject(intersects);
|
|
625
|
+
|
|
626
|
+
var idObject = getIdObjectFromIntersect(intersected);
|
|
627
|
+
|
|
628
|
+
if (idObject.id) {
|
|
629
|
+
_this.displayArea.style.cursor = "pointer";
|
|
630
|
+
|
|
631
|
+
_this.setHighlightedByObjects([idObject.object], true);
|
|
632
|
+
|
|
633
|
+
return;
|
|
634
|
+
} else {
|
|
635
|
+
_this.displayArea.style.cursor = "auto";
|
|
636
|
+
|
|
637
|
+
_this.setHighlightedByObjects([], true);
|
|
638
|
+
}
|
|
639
|
+
};
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
var changeOrganPartsVisibilityForScene = function changeOrganPartsVisibilityForScene(scene, name, value, type) {
|
|
643
|
+
if (type == "all" || type == "geometries") {
|
|
644
|
+
var geometries = scene.findGeometriesWithGroupName(name);
|
|
645
|
+
|
|
646
|
+
for (var i = 0; i < geometries.length; i++) {
|
|
647
|
+
geometries[i].setVisibility(value);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
if (type == "all" || type == "glyphsets") {
|
|
652
|
+
var glyphsets = scene.findGlyphsetsWithGroupName(name);
|
|
653
|
+
|
|
654
|
+
for (var _i = 0; _i < glyphsets.length; _i++) {
|
|
655
|
+
glyphsets[_i].setVisibility(value);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
if (type == "all" || type == "pointsets") {
|
|
660
|
+
var pointsets = scene.findPointsetsWithGroupName(name);
|
|
661
|
+
|
|
662
|
+
for (var _i2 = 0; _i2 < pointsets.length; _i2++) {
|
|
663
|
+
pointsets[_i2].setVisibility(value);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
if (type == "all" || type == "lines") {
|
|
668
|
+
var lines = scene.findLinesWithGroupName(name);
|
|
669
|
+
|
|
670
|
+
for (var _i3 = 0; _i3 < lines.length; _i3++) {
|
|
671
|
+
lines[_i3].setVisibility(value);
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
};
|
|
675
|
+
/**
|
|
676
|
+
* Change visibility for parts of the current scene.
|
|
677
|
+
*/
|
|
678
|
+
|
|
679
|
+
|
|
680
|
+
this.changeGeometriesVisibility = function (name, value) {
|
|
681
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'geometries');
|
|
682
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'geometries');
|
|
683
|
+
};
|
|
684
|
+
/**
|
|
685
|
+
* Change visibility for parts of the current scene.
|
|
686
|
+
*/
|
|
687
|
+
|
|
688
|
+
|
|
689
|
+
this.changeGlyphsetsVisibility = function (name, value) {
|
|
690
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'glyphsets');
|
|
691
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'glyphsets');
|
|
692
|
+
};
|
|
693
|
+
/**
|
|
694
|
+
* Change visibility for parts of the current scene.
|
|
695
|
+
*/
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
this.changeLinesVisibility = function (name, value) {
|
|
699
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'lines');
|
|
700
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'lines');
|
|
701
|
+
};
|
|
702
|
+
/**
|
|
703
|
+
* Change visibility for parts of the current scene.
|
|
704
|
+
*/
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
this.changePointsetsVisibility = function (name, value) {
|
|
708
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'pointsets');
|
|
709
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'pointsets');
|
|
710
|
+
};
|
|
711
|
+
/**
|
|
712
|
+
* Change visibility for parts of the current scene.
|
|
713
|
+
*/
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
this.changeOrganPartsVisibility = function (name, value, typeIn) {
|
|
717
|
+
var type = "all";
|
|
718
|
+
if (typeIn !== undefined) type = typeIn;
|
|
719
|
+
changeOrganPartsVisibilityForScene(_this.scene, name, value, type);
|
|
720
|
+
if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, type);
|
|
721
|
+
};
|
|
722
|
+
|
|
723
|
+
this.changeOrganPartsVisibilityCallback = function (name) {
|
|
724
|
+
return function (value) {
|
|
725
|
+
_this.changeOrganPartsVisibility(name, value);
|
|
726
|
+
};
|
|
727
|
+
};
|
|
728
|
+
|
|
729
|
+
this.changeBackgroundColour = function (backgroundColourString) {
|
|
730
|
+
var colour = new THREE.Color(backgroundColourString);
|
|
731
|
+
|
|
732
|
+
if (_this.zincRenderer) {
|
|
733
|
+
var internalRenderer = _this.zincRenderer.getThreeJSRenderer();
|
|
734
|
+
|
|
735
|
+
internalRenderer.setClearColor(colour, 1);
|
|
736
|
+
}
|
|
737
|
+
};
|
|
738
|
+
|
|
739
|
+
var addOrganPartToSceneData = function addOrganPartToSceneData(zincObject) {
|
|
740
|
+
if (zincObject.groupName) {
|
|
741
|
+
if (zincObject.isGeometry) {
|
|
742
|
+
if (!_this.sceneData.geometries.includes(zincObject.groupName)) {
|
|
743
|
+
_this.sceneData.geometries.push(zincObject.groupName);
|
|
744
|
+
}
|
|
745
|
+
} else if (zincObject.isGlyphset) {
|
|
746
|
+
if (!_this.sceneData.glyphsets.includes(zincObject.groupName)) {
|
|
747
|
+
_this.sceneData.glyphsets.push(zincObject.groupName);
|
|
748
|
+
}
|
|
749
|
+
} else if (zincObject.isLines) {
|
|
750
|
+
if (!_this.sceneData.lines.includes(zincObject.groupName)) {
|
|
751
|
+
_this.sceneData.lines.push(zincObject.groupName);
|
|
752
|
+
}
|
|
753
|
+
} else if (zincObject.isPointset) {
|
|
754
|
+
if (!_this.sceneData.pointsets.includes(zincObject.groupName)) {
|
|
755
|
+
_this.sceneData.pointsets.push(zincObject.groupName);
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
};
|
|
760
|
+
|
|
761
|
+
var addOrganPart = function addOrganPart(systemName, partName, useDefautColour, zincObject) {
|
|
762
|
+
for (var i = 0; i < organPartAddedCallbacks.length; i++) {
|
|
763
|
+
organPartAddedCallbacks[i](zincObject.groupName, _this.scene.isTimeVarying(), zincObject);
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
if (useDefautColour) modelsLoader.setGeometryColour(zincObject, systemName, partName);
|
|
767
|
+
addOrganPartToSceneData(zincObject);
|
|
768
|
+
var annotation = new (__webpack_require__("984d").annotation)();
|
|
769
|
+
annotation.data = {
|
|
770
|
+
species: _this.sceneData.currentSpecies,
|
|
771
|
+
system: systemName,
|
|
772
|
+
part: partName,
|
|
773
|
+
group: zincObject.groupName
|
|
774
|
+
};
|
|
775
|
+
zincObject.userData = [annotation];
|
|
776
|
+
};
|
|
777
|
+
/**
|
|
778
|
+
* New organs geometry has been added to the scene, add UIs and make
|
|
779
|
+
* sure the viewport is correct.
|
|
780
|
+
*/
|
|
781
|
+
|
|
782
|
+
|
|
783
|
+
var _addOrganPartCallback = function _addOrganPartCallback(systemName, partName, useDefautColour) {
|
|
784
|
+
return function (zincObject) {
|
|
785
|
+
addOrganPart(systemName, partName, useDefautColour, zincObject);
|
|
786
|
+
};
|
|
787
|
+
};
|
|
788
|
+
|
|
789
|
+
var downloadCompletedCallback = function downloadCompletedCallback() {
|
|
790
|
+
return function () {
|
|
791
|
+
_this.settingsChanged();
|
|
792
|
+
|
|
793
|
+
_this.sceneData.timeVarying = _this.scene.isTimeVarying();
|
|
794
|
+
if (finishDownloadCallback) finishDownloadCallback();
|
|
795
|
+
};
|
|
796
|
+
};
|
|
797
|
+
|
|
798
|
+
var singleItemDownloadCompletedCallback = function singleItemDownloadCompletedCallback(systemName, partName, useDefautColour) {
|
|
799
|
+
return function (geometry) {
|
|
800
|
+
addOrganPart(systemName, partName, useDefautColour, geometry);
|
|
801
|
+
|
|
802
|
+
_this.settingsChanged();
|
|
803
|
+
};
|
|
804
|
+
};
|
|
805
|
+
/**
|
|
806
|
+
* Toggle data field displays. Data fields displays flow/pressure and <button @click="play">Play</button>
|
|
807
|
+
* other activities of the organs.
|
|
808
|
+
*/
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
this.updateFieldvisibility = function (dataFields, value) {
|
|
812
|
+
for (var i = 0; i < dataFields.length; i++) {
|
|
813
|
+
if (value != i) {
|
|
814
|
+
var geometryName = dataFields[i].PartName;
|
|
815
|
+
|
|
816
|
+
_this.changeOrganPartsVisibility(geometryName, false);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
if (value > -1) {
|
|
821
|
+
var partName = dataFields[value].PartName;
|
|
822
|
+
|
|
823
|
+
if (_this.scene.findGeometriesWithGroupName(partName).length > 0 || _this.scene.findGlyphsetsWithGroupName(partName).length > 0) {
|
|
824
|
+
_this.changeOrganPartsVisibility(partName, true);
|
|
825
|
+
} else {
|
|
826
|
+
var partDetails = getOrganDetails(dataFields[value].SystemName, partName);
|
|
827
|
+
|
|
828
|
+
if (partDetails != undefined) {
|
|
829
|
+
_this.scene.loadMetadataURL(modelsLoader.getOrgansDirectoryPrefix() + "/" + partDetails.meta);
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
}
|
|
833
|
+
};
|
|
834
|
+
/**
|
|
835
|
+
* Return an array containing name(s) of species that also contains the
|
|
836
|
+
* currently displayed organs.
|
|
837
|
+
*
|
|
838
|
+
* @returns {Array} containing species name
|
|
839
|
+
*/
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
this.getAvailableSpecies = function (currentSpecies, currentSystem, currentPart) {
|
|
843
|
+
var availableSpecies = new Array();
|
|
844
|
+
availableSpecies.push("none");
|
|
845
|
+
var keysArray = Object.keys(organsFileMap);
|
|
846
|
+
|
|
847
|
+
for (index in keysArray) {
|
|
848
|
+
var species = keysArray[index];
|
|
849
|
+
|
|
850
|
+
if (species != currentSpecies) {
|
|
851
|
+
if (organsFileMap[species].hasOwnProperty(currentSystem) && organsFileMap[species][currentSystem].hasOwnProperty(currentPart)) {
|
|
852
|
+
availableSpecies.push(species);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
return availableSpecies;
|
|
858
|
+
};
|
|
859
|
+
|
|
860
|
+
var setSceneData = function setSceneData(speciesName, systemName, partName, organsDetails) {
|
|
861
|
+
_this.sceneData.nerveMapIsActive = false;
|
|
862
|
+
_this.sceneData.nerveMap = undefined;
|
|
863
|
+
_this.sceneData.metaURL = "";
|
|
864
|
+
_this.sceneData.viewURL = "";
|
|
865
|
+
_this.sceneData.currentSpecies = speciesName;
|
|
866
|
+
_this.sceneData.currentSystem = systemName;
|
|
867
|
+
_this.sceneData.currentPart = partName;
|
|
868
|
+
_this.sceneData.currentTime = 0.0;
|
|
869
|
+
|
|
870
|
+
_this.sceneData.geometries.splice(0);
|
|
871
|
+
|
|
872
|
+
_this.sceneData.lines.splice(0);
|
|
873
|
+
|
|
874
|
+
_this.sceneData.glyphsets.splice(0);
|
|
875
|
+
|
|
876
|
+
_this.sceneData.pointsets.splice(0);
|
|
877
|
+
|
|
878
|
+
_this.sceneData.timeVarying = false; // This is used as title
|
|
879
|
+
|
|
880
|
+
var name = "";
|
|
881
|
+
if (speciesName) name = speciesName + "/";
|
|
882
|
+
if (systemName) name = systemName + "/";
|
|
883
|
+
if (partName) name = partName;
|
|
884
|
+
_this.sceneData.currentName = name;
|
|
885
|
+
};
|
|
886
|
+
|
|
887
|
+
this.loadOrgansFromURL = function (url, speciesName, systemName, partName, viewURL) {
|
|
888
|
+
if (_this.zincRenderer) {
|
|
889
|
+
if (partName && _this.sceneData.metaURL !== url) {
|
|
890
|
+
setSceneData(speciesName, systemName, partName, undefined);
|
|
891
|
+
var name = _this.sceneData.currentName;
|
|
892
|
+
|
|
893
|
+
var organScene = _this.zincRenderer.getSceneByName(name);
|
|
894
|
+
|
|
895
|
+
if (organScene) {
|
|
896
|
+
organScene.clearAll();
|
|
897
|
+
} else {
|
|
898
|
+
organScene = _this.zincRenderer.createScene(name);
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
for (var i = 0; i < sceneChangedCallbacks.length; i++) {
|
|
902
|
+
sceneChangedCallbacks[i](_this.sceneData);
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
if (viewURL && viewURL != "") {
|
|
906
|
+
_this.sceneData.viewURL = viewURL;
|
|
907
|
+
organScene.loadViewURL(_this.sceneData.viewURL);
|
|
908
|
+
} else {
|
|
909
|
+
_this.sceneData.viewURL = undefined;
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
_this.sceneData.metaURL = url;
|
|
913
|
+
organScene.loadMetadataURL(url, _addOrganPartCallback(systemName, partName, false), downloadCompletedCallback());
|
|
914
|
+
_this.scene = organScene;
|
|
915
|
+
|
|
916
|
+
_this.zincRenderer.setCurrentScene(organScene);
|
|
917
|
+
|
|
918
|
+
_this.graphicsHighlight.reset();
|
|
919
|
+
|
|
920
|
+
var zincCameraControl = organScene.getZincCameraControls();
|
|
921
|
+
zincCameraControl.enableRaycaster(organScene, _pickingCallback(), _hoverCallback());
|
|
922
|
+
zincCameraControl.setMouseButtonAction("AUXILIARY", "ZOOM");
|
|
923
|
+
zincCameraControl.setMouseButtonAction("SECONDARY", "PAN");
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
};
|
|
927
|
+
|
|
928
|
+
this.alignCameraWithSelectedObject = function (transitionTime) {
|
|
929
|
+
var objects = _this.graphicsHighlight.getSelected();
|
|
930
|
+
|
|
931
|
+
if (objects && objects[0] && objects[0].userData) {
|
|
932
|
+
_this.scene.alignObjectToCameraView(objects[0].userData, transitionTime);
|
|
933
|
+
}
|
|
934
|
+
};
|
|
935
|
+
|
|
936
|
+
this.exportSettings = function () {
|
|
937
|
+
var settings = {};
|
|
938
|
+
settings.name = _this.instanceName;
|
|
939
|
+
if (_this.sceneData.currentSystem) settings.system = _this.sceneData.currentSystem;
|
|
940
|
+
if (_this.sceneData.currentSpecies) settings.species = _this.sceneData.currentSpecies;
|
|
941
|
+
if (_this.sceneData.currentPart) settings.part = _this.sceneData.currentPart;
|
|
942
|
+
settings.metaURL = _this.sceneData.metaURL;
|
|
943
|
+
if (_this.sceneData.viewURL) settings.viewURL = _this.sceneData.viewURL;
|
|
944
|
+
settings.dialog = "Organ Viewer";
|
|
945
|
+
return settings;
|
|
946
|
+
};
|
|
947
|
+
|
|
948
|
+
this.importSettings = function (settings) {
|
|
949
|
+
if (settings && settings.dialog == this.typeName) {
|
|
950
|
+
_this.setName(settings.name);
|
|
951
|
+
|
|
952
|
+
if (settings.metaURL !== undefined && settings.metaURL != "") {
|
|
953
|
+
_this.loadOrgansFromURL(settings.metaURL, settings.species, settings.system, settings.part, settings.viewURL);
|
|
954
|
+
} else {
|
|
955
|
+
_this.loadOrgans(settings.species, settings.system, settings.part);
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
return true;
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
return false;
|
|
962
|
+
};
|
|
963
|
+
/**
|
|
964
|
+
* initialise loading of the html layout for the organs panel, this is
|
|
965
|
+
* called when the {@link PJP.OrgansViewer} is created.
|
|
966
|
+
*
|
|
967
|
+
* @async
|
|
968
|
+
*/
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
var initialise = function initialise() {
|
|
972
|
+
_this.initialiseRenderer(undefined);
|
|
973
|
+
|
|
974
|
+
if (_this.zincRenderer) {
|
|
975
|
+
_this.zincRenderer.addPreRenderCallbackFunction(preRenderUpdateCallback());
|
|
976
|
+
|
|
977
|
+
_this.zincRenderer.addPostRenderCallbackFunction(postRenderUpdateCallback());
|
|
978
|
+
}
|
|
979
|
+
};
|
|
980
|
+
|
|
981
|
+
initialise();
|
|
982
|
+
};
|
|
983
|
+
|
|
984
|
+
OrgansViewer.prototype = Object.create(__webpack_require__("8278").RendererModule.prototype);
|
|
985
|
+
exports.OrgansViewer = OrgansViewer;
|
|
986
|
+
|
|
987
|
+
/***/ }),
|
|
988
|
+
|
|
989
|
+
/***/ "55ee":
|
|
990
|
+
/***/ (function(module, exports) {
|
|
991
|
+
|
|
992
|
+
module.exports = require("element-ui/lib/theme-chalk/checkbox.css");
|
|
993
|
+
|
|
994
|
+
/***/ }),
|
|
995
|
+
|
|
996
|
+
/***/ "5810":
|
|
997
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
998
|
+
|
|
999
|
+
// extracted by mini-css-extract-plugin
|
|
1000
|
+
|
|
1001
|
+
/***/ }),
|
|
1002
|
+
|
|
1003
|
+
/***/ "5a43":
|
|
1004
|
+
/***/ (function(module, exports) {
|
|
1005
|
+
|
|
1006
|
+
function _arrayLikeToArray(arr, len) {
|
|
1007
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
1008
|
+
|
|
1009
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
|
1010
|
+
arr2[i] = arr[i];
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
return arr2;
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
module.exports = _arrayLikeToArray;
|
|
1017
|
+
|
|
1018
|
+
/***/ }),
|
|
1019
|
+
|
|
1020
|
+
/***/ "5ec5":
|
|
1021
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1022
|
+
|
|
1023
|
+
var _toConsumableArray = __webpack_require__("448a");
|
|
1024
|
+
|
|
1025
|
+
var THREE = __webpack_require__("9206").THREE;
|
|
1026
|
+
/**
|
|
1027
|
+
* This module manages highlighted and selected objects in 3D modules.
|
|
1028
|
+
*
|
|
1029
|
+
* @class
|
|
1030
|
+
* @returns {exports.GraphicsHighlight}
|
|
1031
|
+
*/
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
exports.GraphicsHighlight = function () {
|
|
1035
|
+
var currentHighlightedObjects = [];
|
|
1036
|
+
var currentSelectedObjects = [];
|
|
1037
|
+
this.highlightColour = [1, 0, 0];
|
|
1038
|
+
this.selectColour = [0, 1, 0];
|
|
1039
|
+
this.originalColour = [0, 0, 0];
|
|
1040
|
+
|
|
1041
|
+
var _this = this;
|
|
1042
|
+
|
|
1043
|
+
var isDifferent = function isDifferent(array1, array2) {
|
|
1044
|
+
if (array1.length == 0 && array2.length == 0) return false;
|
|
1045
|
+
|
|
1046
|
+
for (var i = 0; i < array1.length; i++) {
|
|
1047
|
+
var matched = false;
|
|
1048
|
+
|
|
1049
|
+
for (var j = 0; j < array2.length; j++) {
|
|
1050
|
+
if (array1[i] === array2[j]) {
|
|
1051
|
+
matched = true;
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
if (!matched) return true;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
for (var _i = 0; _i < array2.length; _i++) {
|
|
1059
|
+
var _matched = false;
|
|
1060
|
+
|
|
1061
|
+
for (var _j = 0; _j < array1.length; _j++) {
|
|
1062
|
+
if (array2[_i] === array1[_j]) {
|
|
1063
|
+
_matched = true;
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
if (!_matched) return true;
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
return false;
|
|
1071
|
+
};
|
|
1072
|
+
|
|
1073
|
+
var getUnmatchingObjects = function getUnmatchingObjects(objectsArray1, objectsArray2) {
|
|
1074
|
+
var unmatchingObjects = [];
|
|
1075
|
+
if (objectsArray2.length == 0) return objectsArray1;
|
|
1076
|
+
|
|
1077
|
+
for (var i = 0; i < objectsArray1.length; i++) {
|
|
1078
|
+
var matched = false;
|
|
1079
|
+
|
|
1080
|
+
for (var j = 0; j < objectsArray2.length; j++) {
|
|
1081
|
+
if (objectsArray1[i] === objectsArray2[j]) {
|
|
1082
|
+
matched = true;
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
if (!matched) unmatchingObjects.push(objectsArray1[i]);
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
return unmatchingObjects;
|
|
1090
|
+
};
|
|
1091
|
+
|
|
1092
|
+
this.setHighlighted = function (objects) {
|
|
1093
|
+
var previousHighlightedObjects = currentHighlightedObjects;
|
|
1094
|
+
|
|
1095
|
+
_this.resetHighlighted(); // Selected object cannot be highlighted
|
|
1096
|
+
|
|
1097
|
+
|
|
1098
|
+
var array = getUnmatchingObjects(objects, currentSelectedObjects);
|
|
1099
|
+
var fullList = getFullListOfObjects(array);
|
|
1100
|
+
|
|
1101
|
+
for (var i = 0; i < fullList.length; i++) {
|
|
1102
|
+
var _fullList$i$material$;
|
|
1103
|
+
|
|
1104
|
+
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));
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
currentHighlightedObjects = array;
|
|
1108
|
+
return isDifferent(currentHighlightedObjects, previousHighlightedObjects);
|
|
1109
|
+
};
|
|
1110
|
+
|
|
1111
|
+
this.setSelected = function (objects) {
|
|
1112
|
+
// first find highlighted object that are not selected
|
|
1113
|
+
var previousHSelectedObjects = currentSelectedObjects;
|
|
1114
|
+
var array = getUnmatchingObjects(currentHighlightedObjects, objects);
|
|
1115
|
+
currentHighlightedObjects = array;
|
|
1116
|
+
|
|
1117
|
+
_this.resetSelected();
|
|
1118
|
+
|
|
1119
|
+
var fullList = getFullListOfObjects(objects);
|
|
1120
|
+
|
|
1121
|
+
for (var i = 0; i < fullList.length; i++) {
|
|
1122
|
+
var _fullList$i$material$2;
|
|
1123
|
+
|
|
1124
|
+
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));
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1127
|
+
currentSelectedObjects = objects;
|
|
1128
|
+
return isDifferent(currentSelectedObjects, previousHSelectedObjects);
|
|
1129
|
+
};
|
|
1130
|
+
|
|
1131
|
+
var getFullListOfObjects = function getFullListOfObjects(objects) {
|
|
1132
|
+
var fullList = [];
|
|
1133
|
+
|
|
1134
|
+
for (var i = 0; i < objects.length; i++) {
|
|
1135
|
+
if (objects[i].material) fullList.push(objects[i]);
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
return fullList;
|
|
1139
|
+
};
|
|
1140
|
+
|
|
1141
|
+
this.resetHighlighted = function () {
|
|
1142
|
+
var fullList = getFullListOfObjects(currentHighlightedObjects);
|
|
1143
|
+
|
|
1144
|
+
for (var i = 0; i < fullList.length; i++) {
|
|
1145
|
+
if (fullList[i] && fullList[i].material) {
|
|
1146
|
+
var _fullList$i$material$3;
|
|
1147
|
+
|
|
1148
|
+
if (fullList[i].material.emissive) (_fullList$i$material$3 = fullList[i].material.emissive).setRGB.apply(_fullList$i$material$3, _toConsumableArray(_this.originalColour));
|
|
1149
|
+
if (fullList[i].material.depthFunc) fullList[i].material.depthFunc = THREE.LessEqualDepth;
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
currentHighlightedObjects = [];
|
|
1154
|
+
};
|
|
1155
|
+
|
|
1156
|
+
this.resetSelected = function () {
|
|
1157
|
+
var fullList = getFullListOfObjects(currentSelectedObjects);
|
|
1158
|
+
|
|
1159
|
+
for (var i = 0; i < fullList.length; i++) {
|
|
1160
|
+
if (fullList[i] && fullList[i].material) {
|
|
1161
|
+
var _fullList$i$material$4;
|
|
1162
|
+
|
|
1163
|
+
if (fullList[i].material.emissive) (_fullList$i$material$4 = fullList[i].material.emissive).setRGB.apply(_fullList$i$material$4, _toConsumableArray(_this.originalColour));
|
|
1164
|
+
if (fullList[i].material.depthFunc) fullList[i].material.depthFunc = THREE.LessEqualDepth;
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
currentSelectedObjects = [];
|
|
1169
|
+
};
|
|
1170
|
+
|
|
1171
|
+
this.getSelected = function () {
|
|
1172
|
+
return currentSelectedObjects;
|
|
1173
|
+
};
|
|
1174
|
+
|
|
1175
|
+
this.reset = function () {
|
|
1176
|
+
_this.resetSelected();
|
|
1177
|
+
|
|
1178
|
+
_this.resetHighlighted();
|
|
1179
|
+
};
|
|
1180
|
+
};
|
|
1181
|
+
|
|
1182
|
+
/***/ }),
|
|
1183
|
+
|
|
1184
|
+
/***/ "5fef":
|
|
1185
|
+
/***/ (function(module, exports) {
|
|
1186
|
+
|
|
1187
|
+
module.exports = require("core-js/modules/es.regexp.to-string");
|
|
1188
|
+
|
|
1189
|
+
/***/ }),
|
|
1190
|
+
|
|
1191
|
+
/***/ "6049":
|
|
1192
|
+
/***/ (function(module, exports) {
|
|
1193
|
+
|
|
1194
|
+
module.exports = require("core-js/modules/es.symbol");
|
|
1195
|
+
|
|
1196
|
+
/***/ }),
|
|
1197
|
+
|
|
1198
|
+
/***/ "642d":
|
|
1199
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1200
|
+
|
|
1201
|
+
"use strict";
|
|
1202
|
+
/* 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");
|
|
1203
|
+
/* 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__);
|
|
1204
|
+
/* unused harmony reexport * */
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
/***/ }),
|
|
1208
|
+
|
|
1209
|
+
/***/ "6579":
|
|
1210
|
+
/***/ (function(module, exports) {
|
|
1211
|
+
|
|
1212
|
+
module.exports = require("core-js/modules/es.array.slice");
|
|
1213
|
+
|
|
1214
|
+
/***/ }),
|
|
1215
|
+
|
|
1216
|
+
/***/ "6613":
|
|
1217
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1218
|
+
|
|
1219
|
+
__webpack_require__("e42b");
|
|
1220
|
+
|
|
1221
|
+
__webpack_require__("6579");
|
|
1222
|
+
|
|
1223
|
+
__webpack_require__("bcd8");
|
|
1224
|
+
|
|
1225
|
+
__webpack_require__("850c");
|
|
1226
|
+
|
|
1227
|
+
__webpack_require__("5fef");
|
|
1228
|
+
|
|
1229
|
+
__webpack_require__("907b");
|
|
1230
|
+
|
|
1231
|
+
var arrayLikeToArray = __webpack_require__("5a43");
|
|
1232
|
+
|
|
1233
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
1234
|
+
if (!o) return;
|
|
1235
|
+
if (typeof o === "string") return arrayLikeToArray(o, minLen);
|
|
1236
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
1237
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
1238
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
1239
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
module.exports = _unsupportedIterableToArray;
|
|
1243
|
+
|
|
1244
|
+
/***/ }),
|
|
1245
|
+
|
|
1246
|
+
/***/ "6814":
|
|
1247
|
+
/***/ (function(module, exports) {
|
|
1248
|
+
|
|
1249
|
+
module.exports = require("lodash/orderBy");
|
|
1250
|
+
|
|
1251
|
+
/***/ }),
|
|
1252
|
+
|
|
1253
|
+
/***/ "6aa6":
|
|
1254
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1255
|
+
|
|
1256
|
+
__webpack_require__("ab7e");
|
|
1257
|
+
|
|
1258
|
+
__webpack_require__("6bb1");
|
|
1259
|
+
|
|
1260
|
+
__webpack_require__("6579");
|
|
1261
|
+
|
|
1262
|
+
__webpack_require__("7c81");
|
|
1263
|
+
|
|
1264
|
+
__webpack_require__("bcd8");
|
|
1265
|
+
|
|
1266
|
+
__webpack_require__("fd48");
|
|
1267
|
+
|
|
1268
|
+
var MODULE_CHANGE = {
|
|
1269
|
+
ALL: 0,
|
|
1270
|
+
DESTROYED: 1,
|
|
1271
|
+
NAME_CHANGED: 2,
|
|
1272
|
+
SETTINGS_CHANGED: 3
|
|
1273
|
+
};
|
|
1274
|
+
|
|
1275
|
+
var BaseModule = function BaseModule() {
|
|
1276
|
+
this.typeName = "Base Module";
|
|
1277
|
+
this.instanceName = "default";
|
|
1278
|
+
this.onChangedCallbacks = [];
|
|
1279
|
+
/** Notifier handle for informing other modules of any changes **/
|
|
1280
|
+
|
|
1281
|
+
this.eventNotifiers = [];
|
|
1282
|
+
};
|
|
1283
|
+
|
|
1284
|
+
BaseModule.prototype.setName = function (name) {
|
|
1285
|
+
if (name && this.instanceName !== name) {
|
|
1286
|
+
this.instanceName = name;
|
|
1287
|
+
var callbackArray = this.onChangedCallbacks.slice();
|
|
1288
|
+
|
|
1289
|
+
for (var i = 0; i < callbackArray.length; i++) {
|
|
1290
|
+
callbackArray[i](this, MODULE_CHANGE.NAME_CHANGED);
|
|
1291
|
+
}
|
|
842
1292
|
}
|
|
843
|
-
|
|
844
|
-
/**
|
|
845
|
-
* Callback function when a pickable object has been picked. It will then
|
|
846
|
-
* call functions in tissueViewer and cellPanel to show corresponding
|
|
847
|
-
* informations.
|
|
848
|
-
*
|
|
849
|
-
* @callback
|
|
850
|
-
*/
|
|
851
|
-
var _pickingCallback = function() {
|
|
852
|
-
return function(intersects, window_x, window_y) {
|
|
853
|
-
var intersected = _this.getIntersectedObject(intersects);
|
|
854
|
-
var idObject = getIdObjectFromIntersect(intersected);
|
|
855
|
-
if (idObject.id) {
|
|
856
|
-
if (_this.toolTip !== undefined) {
|
|
857
|
-
_this.toolTip.setText(idObject.id);
|
|
858
|
-
_this.toolTip.show(window_x, window_y);
|
|
859
|
-
}
|
|
860
|
-
_this.displayMessage(idObject.object.name + " selected.");
|
|
1293
|
+
};
|
|
861
1294
|
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
} else {
|
|
868
|
-
_this.setSelectedByObjects([idObject.object], true);
|
|
869
|
-
}
|
|
870
|
-
return;
|
|
871
|
-
} else {
|
|
872
|
-
if (_this.toolTip !== undefined) {
|
|
873
|
-
_this.toolTip.hide();
|
|
874
|
-
}
|
|
875
|
-
_this.setSelectedByObjects([], true);
|
|
876
|
-
}
|
|
877
|
-
}
|
|
878
|
-
};
|
|
879
|
-
|
|
880
|
-
/**
|
|
881
|
-
* Callback function when a pickable object has been hovered over. It will
|
|
882
|
-
* show objecty id/name as _this.toolTip text.
|
|
883
|
-
*
|
|
884
|
-
* @callback
|
|
885
|
-
*/
|
|
886
|
-
var _hoverCallback = function() {
|
|
887
|
-
return function(intersects, window_x, window_y) {
|
|
888
|
-
var intersected = _this.getIntersectedObject(intersects);
|
|
889
|
-
var idObject = getIdObjectFromIntersect(intersected);
|
|
890
|
-
if (idObject.id) {
|
|
891
|
-
_this.displayArea.style.cursor = "pointer";
|
|
892
|
-
if (_this.toolTip !== undefined) {
|
|
893
|
-
_this.toolTip.setText(idObject.id);
|
|
894
|
-
_this.toolTip.show(window_x, window_y);
|
|
895
|
-
}
|
|
896
|
-
_this.setHighlightedByObjects([idObject.object], true);
|
|
897
|
-
return;
|
|
898
|
-
}
|
|
899
|
-
else {
|
|
900
|
-
if (_this.toolTip !== undefined) {
|
|
901
|
-
_this.toolTip.hide();
|
|
902
|
-
}
|
|
903
|
-
_this.displayArea.style.cursor = "auto";
|
|
904
|
-
_this.setHighlightedByObjects([], true);
|
|
905
|
-
}
|
|
906
|
-
}
|
|
907
|
-
};
|
|
908
|
-
|
|
909
|
-
var changeOrganPartsVisibilityForScene = function(scene, name, value, type) {
|
|
910
|
-
if (type == "all" || type == "geometries") {
|
|
911
|
-
var geometries = scene.findGeometriesWithGroupName(name);
|
|
912
|
-
for (var i = 0; i < geometries.length; i ++ ) {
|
|
913
|
-
geometries[i].setVisibility(value);
|
|
914
|
-
}
|
|
915
|
-
}
|
|
916
|
-
if (type == "all" || type == "glyphsets") {
|
|
917
|
-
var glyphsets = scene.findGlyphsetsWithGroupName(name);
|
|
918
|
-
for (var i = 0; i < glyphsets.length; i ++ ) {
|
|
919
|
-
glyphsets[i].setVisibility(value);
|
|
920
|
-
}
|
|
921
|
-
}
|
|
922
|
-
if (type == "all" || type == "pointsets") {
|
|
923
|
-
var pointsets = scene.findPointsetsWithGroupName(name);
|
|
924
|
-
for (var i = 0; i < pointsets.length; i ++ ) {
|
|
925
|
-
pointsets[i].setVisibility(value);
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
if (type == "all" || type == "lines") {
|
|
929
|
-
var lines = scene.findLinesWithGroupName(name);
|
|
930
|
-
for (var i = 0; i < lines.length; i ++ ) {
|
|
931
|
-
lines[i].setVisibility(value);
|
|
932
|
-
}
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
|
|
936
|
-
/**
|
|
937
|
-
* Change visibility for parts of the current scene.
|
|
938
|
-
*/
|
|
939
|
-
this.changeGeometriesVisibility = function(name, value) {
|
|
940
|
-
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'geometries');
|
|
941
|
-
if (pickerScene)
|
|
942
|
-
changeOrganPartsVisibilityForScene(pickerScene, name, value, 'geometries');
|
|
943
|
-
}
|
|
944
|
-
|
|
945
|
-
/**
|
|
946
|
-
* Change visibility for parts of the current scene.
|
|
947
|
-
*/
|
|
948
|
-
this.changeGlyphsetsVisibility = function(name, value) {
|
|
949
|
-
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'glyphsets');
|
|
950
|
-
if (pickerScene)
|
|
951
|
-
changeOrganPartsVisibilityForScene(pickerScene, name, value, 'glyphsets');
|
|
952
|
-
}
|
|
953
|
-
|
|
954
|
-
/**
|
|
955
|
-
* Change visibility for parts of the current scene.
|
|
956
|
-
*/
|
|
957
|
-
this.changeLinesVisibility = function(name, value) {
|
|
958
|
-
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'lines');
|
|
959
|
-
if (pickerScene)
|
|
960
|
-
changeOrganPartsVisibilityForScene(pickerScene, name, value, 'lines');
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
/**
|
|
964
|
-
* Change visibility for parts of the current scene.
|
|
965
|
-
*/
|
|
966
|
-
this.changePointsetsVisibility = function(name, value) {
|
|
967
|
-
changeOrganPartsVisibilityForScene(_this.scene, name, value, 'pointsets');
|
|
968
|
-
if (pickerScene)
|
|
969
|
-
changeOrganPartsVisibilityForScene(pickerScene, name, value, 'pointsets');
|
|
1295
|
+
BaseModule.prototype.settingsChanged = function () {
|
|
1296
|
+
var callbackArray = this.onChangedCallbacks.slice();
|
|
1297
|
+
|
|
1298
|
+
for (var i = 0; i < callbackArray.length; i++) {
|
|
1299
|
+
callbackArray[i](this, MODULE_CHANGE.SETTINGS_CHANGED);
|
|
970
1300
|
}
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
this.changeOrganPartsVisibilityCallback = function(name) {
|
|
985
|
-
return function(value) {
|
|
986
|
-
_this.changeOrganPartsVisibility(name, value);
|
|
987
|
-
}
|
|
988
|
-
}
|
|
989
|
-
|
|
990
|
-
/**
|
|
991
|
-
* Change some of the ZincGeometry property for never map geometry
|
|
992
|
-
*
|
|
993
|
-
* @callback
|
|
994
|
-
*/
|
|
995
|
-
var _addNerveMapGeometryCallback = function(GroupName) {
|
|
996
|
-
return function(geometry) {
|
|
997
|
-
geometry.groupName = GroupName;
|
|
998
|
-
if (imageCombiner && geometry.morph && geometry.morph.material.map) {
|
|
999
|
-
geometry.morph.material.map = new THREE.Texture(imageCombiner.getCombinedImage());
|
|
1000
|
-
geometry.morph.material.map.needsUpdate = true;
|
|
1001
|
-
geometry.morph.material.needsUpdate = true;
|
|
1002
|
-
}
|
|
1003
|
-
}
|
|
1004
|
-
}
|
|
1005
|
-
|
|
1006
|
-
/**
|
|
1007
|
-
* Read in the nerve map models onto the primary renderer when nerve map has
|
|
1008
|
-
* been toggled on.
|
|
1009
|
-
*/
|
|
1010
|
-
var setupNerveMapPrimaryRenderer = function() {
|
|
1011
|
-
var sceneName = _this.sceneData.currentName + "_nervemap";
|
|
1012
|
-
nerveMapScene = _this.zincRenderer.getSceneByName(sceneName);
|
|
1013
|
-
if (nerveMapScene == undefined) {
|
|
1014
|
-
var downloadPath = modelsLoader.getOrgansDirectoryPrefix() + "/" + _this.sceneData.nerveMap.threed.meta;
|
|
1015
|
-
nerveMapScene = _this.zincRenderer.createScene(sceneName);
|
|
1016
|
-
nerveMapScene.loadMetadataURL(downloadPath, _addNerveMapGeometryCallback("threed"));
|
|
1017
|
-
if (_this.sceneData.nerveMap.threed.view !== undefined)
|
|
1018
|
-
nerveMapScene.loadViewURL(modelsLoader.getOrgansDirectoryPrefix() + "/" + _this.sceneData.nerveMap.threed.view);
|
|
1019
|
-
else {
|
|
1020
|
-
nerveMapScene.loadViewURL(modelsLoader.getBodyDirectoryPrefix() + "/body_view.json");
|
|
1021
|
-
}
|
|
1022
|
-
nerveMapScene.ambient.intensity = 8.0;
|
|
1023
|
-
nerveMapScene.directionalLight.intensity = 0;
|
|
1024
|
-
var zincCameraControl = nerveMapScene.getZincCameraControls();
|
|
1025
|
-
zincCameraControl.setMouseButtonAction("AUXILIARY", "ZOOM");
|
|
1026
|
-
zincCameraControl.setMouseButtonAction("SECONDARY", "PAN");
|
|
1027
|
-
_this.sceneData.nerveMap.additionalReader = new (__webpack_require__("6fd2").VaryingTexCoordsReader)(nerveMapScene);
|
|
1028
|
-
var urlsArray = [ modelsLoader.getOrgansDirectoryPrefix() + "/digestive/stomach/nerve_map/3d/xi1_time_0.json",
|
|
1029
|
-
modelsLoader.getOrgansDirectoryPrefix() + "/digestive/stomach/nerve_map/3d/xi1_time_1.json",
|
|
1030
|
-
modelsLoader.getOrgansDirectoryPrefix() + "/digestive/stomach/nerve_map/3d/xi0_time_0.json"];
|
|
1031
|
-
_this.sceneData.nerveMap.additionalReader.loadURLsIntoBufferGeometry(urlsArray);
|
|
1032
|
-
}
|
|
1033
|
-
_this.zincRenderer.setCurrentScene(nerveMapScene);
|
|
1034
|
-
_this.graphicsHighlight.reset();
|
|
1035
|
-
}
|
|
1036
|
-
|
|
1037
|
-
var activateAdditionalNerveMapRenderer = function() {
|
|
1038
|
-
for (var i = 0; i < layoutUpdateRequiredCallbacks.length;i++) {
|
|
1039
|
-
layoutUpdateRequiredCallbacks[i](false, true);
|
|
1040
|
-
}
|
|
1041
|
-
}
|
|
1042
|
-
|
|
1043
|
-
/**
|
|
1044
|
-
* Nerve map has been toggled on/off, change organs renderer layput.
|
|
1045
|
-
*/
|
|
1046
|
-
this.changeNerveMapVisibility = function() {
|
|
1047
|
-
_this.sceneData.nerveMapIsActive = !_this.sceneData.nerveMapIsActive;
|
|
1048
|
-
if (_this.sceneData.nerveMapIsActive)
|
|
1049
|
-
setupNerveMapPrimaryRenderer();
|
|
1050
|
-
else {
|
|
1051
|
-
_this.zincRenderer.setCurrentScene(_this.scene);
|
|
1052
|
-
_this.graphicsHighlight.reset();
|
|
1053
|
-
}
|
|
1054
|
-
activateAdditionalNerveMapRenderer();
|
|
1055
|
-
}
|
|
1056
|
-
|
|
1057
|
-
this.changeBackgroundColour = function(backgroundColourString) {
|
|
1058
|
-
var colour = new THREE.Color(backgroundColourString);
|
|
1059
|
-
if (_this.zincRenderer) {
|
|
1060
|
-
var internalRenderer = _this.zincRenderer.getThreeJSRenderer();
|
|
1061
|
-
internalRenderer.setClearColor( colour, 1 );
|
|
1062
|
-
}
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
var addOrganPartToSceneData = function(zincObject) {
|
|
1066
|
-
if (zincObject.groupName) {
|
|
1067
|
-
if (zincObject.isGeometry) {
|
|
1068
|
-
if (!_this.sceneData.geometries.includes(zincObject.groupName)) {
|
|
1069
|
-
_this.sceneData.geometries.push(zincObject.groupName);
|
|
1070
|
-
}
|
|
1071
|
-
} else if (zincObject.isGlyphset) {
|
|
1072
|
-
if (!_this.sceneData.glyphsets.includes(zincObject.groupName)) {
|
|
1073
|
-
_this.sceneData.glyphsets.push(zincObject.groupName);
|
|
1074
|
-
}
|
|
1075
|
-
} else if (zincObject.isLines) {
|
|
1076
|
-
if (!_this.sceneData.lines.includes(zincObject.groupName)) {
|
|
1077
|
-
_this.sceneData.lines.push(zincObject.groupName);
|
|
1078
|
-
}
|
|
1079
|
-
} else if (zincObject.isPointset) {
|
|
1080
|
-
if (!_this.sceneData.pointsets.includes(zincObject.groupName)) {
|
|
1081
|
-
_this.sceneData.pointsets.push(zincObject.groupName);
|
|
1082
|
-
}
|
|
1083
|
-
}
|
|
1084
|
-
}
|
|
1085
|
-
}
|
|
1086
|
-
|
|
1087
|
-
var addOrganPart = function(systemName, partName, useDefautColour, zincObject) {
|
|
1088
|
-
for (var i = 0; i < organPartAddedCallbacks.length;i++) {
|
|
1089
|
-
organPartAddedCallbacks[i](zincObject.groupName, _this.scene.isTimeVarying(), zincObject);
|
|
1090
|
-
}
|
|
1091
|
-
if (useDefautColour)
|
|
1092
|
-
modelsLoader.setGeometryColour(zincObject, systemName, partName);
|
|
1093
|
-
addOrganPartToSceneData(zincObject);
|
|
1094
|
-
if (zincObject.groupName) {
|
|
1095
|
-
_this.displayMessage(zincObject.groupName + " loaded.");
|
|
1096
|
-
} else {
|
|
1097
|
-
_this.displayMessage("Resource loaded.");
|
|
1098
|
-
}
|
|
1099
|
-
var annotation = new (__webpack_require__("a0d7").annotation)();
|
|
1100
|
-
annotation.data = {species:_this.sceneData.currentSpecies, system:systemName, part:partName, group:zincObject.groupName};
|
|
1101
|
-
zincObject.userData = [annotation];
|
|
1102
|
-
}
|
|
1103
|
-
|
|
1104
|
-
/**
|
|
1105
|
-
* New organs geometry has been added to the scene, add UIs and make
|
|
1106
|
-
* sure the viewport is correct.
|
|
1107
|
-
*/
|
|
1108
|
-
var _addOrganPartCallback = function(systemName, partName, useDefautColour) {
|
|
1109
|
-
return function(zincObject) {
|
|
1110
|
-
addOrganPart(systemName, partName, useDefautColour, zincObject);
|
|
1111
|
-
}
|
|
1112
|
-
}
|
|
1113
|
-
|
|
1114
|
-
var downloadCompletedCallback = function() {
|
|
1115
|
-
return function() {
|
|
1116
|
-
_this.settingsChanged();
|
|
1117
|
-
_this.sceneData.timeVarying = _this.scene.isTimeVarying();
|
|
1118
|
-
_this.displayMessage("All resources loaded.");
|
|
1119
|
-
if (finishDownloadCallback)
|
|
1120
|
-
finishDownloadCallback();
|
|
1121
|
-
}
|
|
1122
|
-
}
|
|
1123
|
-
|
|
1124
|
-
var singleItemDownloadCompletedCallback = function(systemName, partName, useDefautColour) {
|
|
1125
|
-
return function(geometry) {
|
|
1126
|
-
addOrganPart(systemName, partName, useDefautColour, geometry);
|
|
1127
|
-
_this.settingsChanged();
|
|
1128
|
-
}
|
|
1129
|
-
}
|
|
1130
|
-
|
|
1131
|
-
/**
|
|
1132
|
-
* Toggle data field displays. Data fields displays flow/pressure and <button @click="play">Play</button>
|
|
1133
|
-
* other activities of the organs.
|
|
1134
|
-
*/
|
|
1135
|
-
this.updateFieldvisibility = function(dataFields, value) {
|
|
1136
|
-
for ( var i = 0; i < dataFields.length; i ++ ) {
|
|
1137
|
-
if (value != i) {
|
|
1138
|
-
var geometryName = dataFields[i].PartName;
|
|
1139
|
-
_this.changeOrganPartsVisibility(geometryName, false);
|
|
1140
|
-
}
|
|
1141
|
-
}
|
|
1142
|
-
if (value > -1) {
|
|
1143
|
-
var partName = dataFields[value].PartName;
|
|
1144
|
-
if ((_this.scene.findGeometriesWithGroupName(partName).length > 0) ||
|
|
1145
|
-
(_this.scene.findGlyphsetsWithGroupName(partName).length > 0)) {
|
|
1146
|
-
_this.changeOrganPartsVisibility(partName, true);
|
|
1147
|
-
} else {
|
|
1148
|
-
var partDetails = getOrganDetails(dataFields[value].SystemName, partName);
|
|
1149
|
-
if (partDetails != undefined) {
|
|
1150
|
-
_this.scene.loadMetadataURL(modelsLoader.getOrgansDirectoryPrefix() + "/" + partDetails.meta);
|
|
1151
|
-
}
|
|
1152
|
-
}
|
|
1153
|
-
}
|
|
1154
|
-
}
|
|
1155
|
-
|
|
1156
|
-
/**
|
|
1157
|
-
* Return an array containing name(s) of species that also contains the
|
|
1158
|
-
* currently displayed organs.
|
|
1159
|
-
*
|
|
1160
|
-
* @returns {Array} containing species name
|
|
1161
|
-
*/
|
|
1162
|
-
this.getAvailableSpecies = function(currentSpecies, currentSystem, currentPart) {
|
|
1163
|
-
var availableSpecies = new Array();
|
|
1164
|
-
availableSpecies.push("none");
|
|
1165
|
-
var keysArray = Object.keys(organsFileMap);
|
|
1166
|
-
for (index in keysArray) {
|
|
1167
|
-
var species = keysArray[index];
|
|
1168
|
-
if (species != currentSpecies) {
|
|
1169
|
-
if (organsFileMap[species].hasOwnProperty(currentSystem) &&
|
|
1170
|
-
organsFileMap[species][currentSystem].hasOwnProperty(currentPart)) {
|
|
1171
|
-
availableSpecies.push(species);
|
|
1172
|
-
}
|
|
1173
|
-
}
|
|
1174
|
-
}
|
|
1175
|
-
return availableSpecies;
|
|
1176
|
-
}
|
|
1177
|
-
|
|
1178
|
-
var setSceneData = function(speciesName, systemName, partName, organsDetails) {
|
|
1179
|
-
_this.sceneData.nerveMapIsActive = false;
|
|
1180
|
-
_this.sceneData.nerveMap = undefined;
|
|
1181
|
-
_this.sceneData.metaURL = "";
|
|
1182
|
-
_this.sceneData.viewURL = "";
|
|
1183
|
-
_this.sceneData.currentSpecies = speciesName;
|
|
1184
|
-
_this.sceneData.currentSystem = systemName;
|
|
1185
|
-
_this.sceneData.currentPart = partName;
|
|
1186
|
-
_this.sceneData.currentTime = 0.0;
|
|
1187
|
-
_this.sceneData.geometries.splice(0);
|
|
1188
|
-
_this.sceneData.lines.splice(0);
|
|
1189
|
-
_this.sceneData.glyphsets.splice(0);
|
|
1190
|
-
_this.sceneData.pointsets.splice(0);
|
|
1191
|
-
_this.sceneData.timeVarying = false;
|
|
1192
|
-
// This is used as title
|
|
1193
|
-
var name = "";
|
|
1194
|
-
if (speciesName)
|
|
1195
|
-
name = speciesName + "/";
|
|
1196
|
-
if (systemName)
|
|
1197
|
-
name = systemName + "/";
|
|
1198
|
-
if (partName)
|
|
1199
|
-
name = partName;
|
|
1200
|
-
_this.sceneData.currentName = name;
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
this.loadOrgansFromURL = function(url, speciesName, systemName, partName, viewURL) {
|
|
1204
|
-
if (_this.zincRenderer) {
|
|
1205
|
-
if (partName && (_this.sceneData.metaURL !== url)) {
|
|
1206
|
-
setSceneData(speciesName, systemName, partName, undefined);
|
|
1207
|
-
var name = _this.sceneData.currentName;
|
|
1208
|
-
var organScene = _this.zincRenderer.getSceneByName(name);
|
|
1209
|
-
if (organScene) {
|
|
1210
|
-
organScene.clearAll();
|
|
1211
|
-
} else {
|
|
1212
|
-
organScene = _this.zincRenderer.createScene(name);
|
|
1213
|
-
}
|
|
1214
|
-
for (var i = 0; i < sceneChangedCallbacks.length;i++) {
|
|
1215
|
-
sceneChangedCallbacks[i](_this.sceneData);
|
|
1216
|
-
}
|
|
1217
|
-
if (viewURL && viewURL != "") {
|
|
1218
|
-
_this.sceneData.viewURL = viewURL;
|
|
1219
|
-
organScene.loadViewURL(_this.sceneData.viewURL);
|
|
1220
|
-
} else
|
|
1221
|
-
_this.sceneData.viewURL = undefined;
|
|
1222
|
-
_this.sceneData.metaURL = url;
|
|
1223
|
-
_this.displayMessage("Downloading...");
|
|
1224
|
-
organScene.loadMetadataURL(url, _addOrganPartCallback(systemName, partName, false),
|
|
1225
|
-
downloadCompletedCallback());
|
|
1226
|
-
_this.scene = organScene;
|
|
1227
|
-
_this.zincRenderer.setCurrentScene(organScene);
|
|
1228
|
-
_this.graphicsHighlight.reset();
|
|
1229
|
-
var zincCameraControl = organScene.getZincCameraControls();
|
|
1230
|
-
zincCameraControl.enableRaycaster(organScene, _pickingCallback(), _hoverCallback());
|
|
1231
|
-
zincCameraControl.setMouseButtonAction("AUXILIARY", "ZOOM");
|
|
1232
|
-
zincCameraControl.setMouseButtonAction("SECONDARY", "PAN");
|
|
1233
|
-
}
|
|
1234
|
-
}
|
|
1235
|
-
}
|
|
1236
|
-
|
|
1237
|
-
this.alignCameraWithSelectedObject = function(transitionTime) {
|
|
1238
|
-
var objects = _this.graphicsHighlight.getSelected();
|
|
1239
|
-
if (objects && objects[0] && objects[0].userData) {
|
|
1240
|
-
_this.scene.alignObjectToCameraView(objects[0].userData, transitionTime);
|
|
1241
|
-
}
|
|
1242
|
-
}
|
|
1243
|
-
|
|
1244
|
-
this.exportSettings = function() {
|
|
1245
|
-
var settings = {};
|
|
1246
|
-
settings.name = _this.instanceName;
|
|
1247
|
-
if (_this.sceneData.currentSystem)
|
|
1248
|
-
settings.system = _this.sceneData.currentSystem;
|
|
1249
|
-
if (_this.sceneData.currentSpecies)
|
|
1250
|
-
settings.species = _this.sceneData.currentSpecies;
|
|
1251
|
-
if (_this.sceneData.currentPart)
|
|
1252
|
-
settings.part = _this.sceneData.currentPart;
|
|
1253
|
-
settings.metaURL = _this.sceneData.metaURL;
|
|
1254
|
-
if (_this.sceneData.viewURL)
|
|
1255
|
-
settings.viewURL = _this.sceneData.viewURL;
|
|
1256
|
-
settings.dialog = "Organ Viewer";
|
|
1257
|
-
return settings;
|
|
1258
|
-
}
|
|
1259
|
-
|
|
1260
|
-
this.importSettings = function(settings) {
|
|
1261
|
-
if (settings && (settings.dialog == this.typeName)) {
|
|
1262
|
-
_this.setName(settings.name);
|
|
1263
|
-
if (settings.metaURL !== undefined && settings.metaURL != "") {
|
|
1264
|
-
_this.loadOrgansFromURL(settings.metaURL, settings.species,
|
|
1265
|
-
settings.system, settings.part, settings.viewURL);
|
|
1266
|
-
} else {
|
|
1267
|
-
_this.loadOrgans(settings.species, settings.system, settings.part);
|
|
1268
|
-
}
|
|
1269
|
-
return true;
|
|
1270
|
-
}
|
|
1271
|
-
return false;
|
|
1272
|
-
}
|
|
1273
|
-
|
|
1274
|
-
/**
|
|
1275
|
-
* initialise loading of the html layout for the organs panel, this is
|
|
1276
|
-
* called when the {@link PJP.OrgansViewer} is created.
|
|
1277
|
-
*
|
|
1278
|
-
* @async
|
|
1279
|
-
*/
|
|
1280
|
-
var initialise = function() {
|
|
1281
|
-
_this.initialiseRenderer(undefined);
|
|
1282
|
-
if (_this.zincRenderer) {
|
|
1283
|
-
_this.zincRenderer.addPreRenderCallbackFunction(preRenderUpdateCallback());
|
|
1284
|
-
_this.zincRenderer.addPostRenderCallbackFunction(postRenderUpdateCallback());
|
|
1285
|
-
}
|
|
1301
|
+
};
|
|
1302
|
+
|
|
1303
|
+
BaseModule.prototype.exportSettings = function () {
|
|
1304
|
+
var settings = {};
|
|
1305
|
+
settings.dialog = this.typeName;
|
|
1306
|
+
settings.name = this.instanceName;
|
|
1307
|
+
return settings;
|
|
1308
|
+
};
|
|
1309
|
+
|
|
1310
|
+
BaseModule.prototype.importSettings = function (settings) {
|
|
1311
|
+
if (settings.dialog == this.typeName) {
|
|
1312
|
+
this.setName(settings.name);
|
|
1313
|
+
return true;
|
|
1286
1314
|
}
|
|
1287
|
-
|
|
1288
|
-
initialise();
|
|
1289
1315
|
|
|
1290
|
-
|
|
1316
|
+
return false;
|
|
1317
|
+
};
|
|
1291
1318
|
|
|
1292
|
-
|
|
1293
|
-
|
|
1319
|
+
BaseModule.prototype.publishChanges = function (annotations, eventType) {
|
|
1320
|
+
for (var i = 0; i < this.eventNotifiers.length; i++) {
|
|
1321
|
+
this.eventNotifiers[i].publish(this, eventType, annotations);
|
|
1322
|
+
}
|
|
1323
|
+
};
|
|
1294
1324
|
|
|
1325
|
+
BaseModule.prototype.getName = function () {
|
|
1326
|
+
return this.instanceName;
|
|
1327
|
+
};
|
|
1295
1328
|
|
|
1296
|
-
|
|
1329
|
+
BaseModule.prototype.destroy = function () {
|
|
1330
|
+
//Make a temorary copy as the array may be altered during the loop
|
|
1331
|
+
var callbackArray = this.onChangedCallbacks.slice();
|
|
1297
1332
|
|
|
1298
|
-
|
|
1299
|
-
|
|
1333
|
+
for (var i = 0; i < callbackArray.length; i++) {
|
|
1334
|
+
callbackArray[i](this, MODULE_CHANGE.DESTROYED);
|
|
1335
|
+
}
|
|
1300
1336
|
|
|
1301
|
-
|
|
1337
|
+
delete this;
|
|
1338
|
+
};
|
|
1339
|
+
|
|
1340
|
+
BaseModule.prototype.addChangedCallback = function (callback) {
|
|
1341
|
+
if (this.onChangedCallbacks.includes(callback) == false) this.onChangedCallbacks.push(callback);
|
|
1342
|
+
};
|
|
1343
|
+
|
|
1344
|
+
BaseModule.prototype.removeChangedCallback = function (callback) {
|
|
1345
|
+
var index = this.onChangedCallbacks.indexOf(callback);
|
|
1346
|
+
|
|
1347
|
+
if (index > -1) {
|
|
1348
|
+
this.onChangedCallbacks.splice(index, 1);
|
|
1349
|
+
}
|
|
1350
|
+
};
|
|
1351
|
+
|
|
1352
|
+
BaseModule.prototype.addNotifier = function (eventNotifier) {
|
|
1353
|
+
this.eventNotifiers.push(eventNotifier);
|
|
1354
|
+
};
|
|
1355
|
+
|
|
1356
|
+
exports.BaseModule = BaseModule;
|
|
1357
|
+
exports.MODULE_CHANGE = MODULE_CHANGE;
|
|
1302
1358
|
|
|
1303
1359
|
/***/ }),
|
|
1304
1360
|
|
|
@@ -1323,160 +1379,40 @@ module.exports = require("element-ui/lib/row");
|
|
|
1323
1379
|
|
|
1324
1380
|
/***/ }),
|
|
1325
1381
|
|
|
1326
|
-
/***/ "
|
|
1382
|
+
/***/ "7037":
|
|
1327
1383
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1328
1384
|
|
|
1329
|
-
|
|
1385
|
+
__webpack_require__("6049");
|
|
1386
|
+
|
|
1387
|
+
__webpack_require__("51e9");
|
|
1388
|
+
|
|
1389
|
+
__webpack_require__("02ac");
|
|
1390
|
+
|
|
1391
|
+
__webpack_require__("8c84");
|
|
1392
|
+
|
|
1393
|
+
__webpack_require__("850c");
|
|
1330
1394
|
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
ambient : { type: "c", value: new THREE.Color( 0x000000 ) },
|
|
1350
|
-
diffuse : { type: "c", value: new THREE.Color( 0xffffff ) },
|
|
1351
|
-
emissive : { type: "c", value: new THREE.Color( 0xbbbbbb ) },
|
|
1352
|
-
specular : { type: "c", value: new THREE.Color( 0x111111 ) },
|
|
1353
|
-
shininess: { type: "f", value: 100 },
|
|
1354
|
-
opacity: { type: "f", value: 1.0 },
|
|
1355
|
-
ambientLightColor: { type: "c", value: new THREE.Color( 0xF0F0F0 ) },
|
|
1356
|
-
directionalLightColor: { type: "c", value: new THREE.Color( 0x555555) },
|
|
1357
|
-
directionalLightDirection: { type: "v3", value: new THREE.Vector3() },
|
|
1358
|
-
offsetRepeat: { value: new THREE.Vector4( 0, 0, 1, 1 ) },
|
|
1359
|
-
time: { type: "f", value: 0.0 },
|
|
1360
|
-
slide_pos: { type: "f", value: 1.0 },
|
|
1361
|
-
myTex: {type: 't', value: null}
|
|
1362
|
-
} ] );
|
|
1363
|
-
|
|
1364
|
-
var addGeometryIntoBufferGeometry = function(order, geometry)
|
|
1365
|
-
{
|
|
1366
|
-
var arrayLength = geometry.faces.length * 3 * 3;
|
|
1367
|
-
var positions = new Float32Array( arrayLength );
|
|
1368
|
-
var colors = new Float32Array( arrayLength );
|
|
1369
|
-
var normals = new Float32Array( arrayLength );
|
|
1370
|
-
var texCoords = new Float32Array( geometry.faces.length * 3 * 2 );
|
|
1371
|
-
if (bufferGeometry === undefined)
|
|
1372
|
-
bufferGeometry = new THREE.BufferGeometry();
|
|
1373
|
-
|
|
1374
|
-
geometry.faces.forEach( function ( face, index ) {
|
|
1375
|
-
positions[ index * 9 + 0 ] = geometry.vertices[ face.a ].x;
|
|
1376
|
-
positions[ index * 9 + 1 ] = geometry.vertices[ face.a ].y;
|
|
1377
|
-
positions[ index * 9 + 2 ] = geometry.vertices[ face.a ].z;
|
|
1378
|
-
positions[ index * 9 + 3 ] = geometry.vertices[ face.b ].x;
|
|
1379
|
-
positions[ index * 9 + 4 ] = geometry.vertices[ face.b ].y;
|
|
1380
|
-
positions[ index * 9 + 5 ] = geometry.vertices[ face.b ].z;
|
|
1381
|
-
positions[ index * 9 + 6 ] = geometry.vertices[ face.c ].x;
|
|
1382
|
-
positions[ index * 9 + 7 ] = geometry.vertices[ face.c ].y;
|
|
1383
|
-
positions[ index * 9 + 8 ] = geometry.vertices[ face.c ].z;
|
|
1384
|
-
|
|
1385
|
-
normals[ index * 9 + 0 ] = face.vertexNormals[0].x;
|
|
1386
|
-
normals[ index * 9 + 1 ] = face.vertexNormals[0].y;
|
|
1387
|
-
normals[ index * 9 + 2 ] = face.vertexNormals[0].z;
|
|
1388
|
-
normals[ index * 9 + 3 ] = face.vertexNormals[1].x;
|
|
1389
|
-
normals[ index * 9 + 4 ] = face.vertexNormals[1].y;
|
|
1390
|
-
normals[ index * 9 + 5 ] = face.vertexNormals[1].z;
|
|
1391
|
-
normals[ index * 9 + 6 ] = face.vertexNormals[2].x;
|
|
1392
|
-
normals[ index * 9 + 7 ] = face.vertexNormals[2].y;
|
|
1393
|
-
normals[ index * 9 + 8 ] = face.vertexNormals[2].z;
|
|
1394
|
-
|
|
1395
|
-
texCoords[ index * 6 + 0] = geometry.faceVertexUvs[ 0 ][index][0].x;
|
|
1396
|
-
texCoords[ index * 6 + 1] = geometry.faceVertexUvs[ 0 ][index][0].y;
|
|
1397
|
-
texCoords[ index * 6 + 2] = geometry.faceVertexUvs[ 0 ][index][1].x;
|
|
1398
|
-
texCoords[ index * 6 + 3] = geometry.faceVertexUvs[ 0 ][index][1].y;
|
|
1399
|
-
texCoords[ index * 6 + 4] = geometry.faceVertexUvs[ 0 ][index][2].x;
|
|
1400
|
-
texCoords[ index * 6 + 5] = geometry.faceVertexUvs[ 0 ][index][2].y;
|
|
1401
|
-
} );
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
if (order == 0) {
|
|
1405
|
-
bufferGeometry.addAttribute( "position", new THREE.BufferAttribute( positions, 3) );
|
|
1406
|
-
bufferGeometry.addAttribute( "normal", new THREE.BufferAttribute( normals, 3 ) );
|
|
1407
|
-
bufferGeometry.addAttribute( "uv", new THREE.BufferAttribute( texCoords, 2 ) );
|
|
1408
|
-
} else {
|
|
1409
|
-
var positionStr = "position_" + order;
|
|
1410
|
-
var normalStr = "normal_" + order;
|
|
1411
|
-
var uvsStr = "uv_" + order;
|
|
1412
|
-
bufferGeometry.addAttribute( positionStr, new THREE.BufferAttribute( positions, 3) );
|
|
1413
|
-
bufferGeometry.addAttribute( normalStr, new THREE.BufferAttribute( normals, 3 ) );
|
|
1414
|
-
bufferGeometry.addAttribute( uvsStr, new THREE.BufferAttribute( texCoords, 2 ) );
|
|
1415
|
-
}
|
|
1416
|
-
|
|
1417
|
-
}
|
|
1418
|
-
|
|
1419
|
-
var meshReady = function(bufferGeometryIn, shaderText, material){
|
|
1420
|
-
var shaderMaterial = new THREE.RawShaderMaterial( {
|
|
1421
|
-
vertexShader: shaderText[0],
|
|
1422
|
-
fragmentShader: shaderText[1],
|
|
1423
|
-
uniforms: shadersUniforms
|
|
1424
|
-
} );
|
|
1425
|
-
shaderMaterial.uniforms.myTex.value = texture;
|
|
1426
|
-
shaderMaterial.side = THREE.DoubleSide;
|
|
1427
|
-
shaderMaterial.depthTest = true;
|
|
1428
|
-
shaderMaterial.needsUpdate = true;
|
|
1429
|
-
shaderMaterial.map = texture;
|
|
1430
|
-
shaderMaterial.uniforms.myTex.value.needsUpdate = true;
|
|
1431
|
-
shaderMaterial.opacity = 1.0;
|
|
1432
|
-
zincGeometry = scene.addZincGeometry(bufferGeometryIn, 30001, undefined, undefined, false, false, true, undefined, shaderMaterial);
|
|
1433
|
-
zincGeometry.groupName = "varyingTexture";
|
|
1434
|
-
}
|
|
1435
|
-
|
|
1436
|
-
var myLoader = function(order, shaderText) {
|
|
1437
|
-
return function(geometry, materials){
|
|
1438
|
-
var material = 0;
|
|
1439
|
-
addGeometryIntoBufferGeometry(order, geometry);
|
|
1440
|
-
completedInputs++;
|
|
1441
|
-
if (completedInputs == numberOfInputs) {
|
|
1442
|
-
meshReady(bufferGeometry, shaderText, material);
|
|
1443
|
-
if (finishCallbackFunction != undefined && (typeof finishCallbackFunction == 'function'))
|
|
1444
|
-
finishCallbackFunction(bufferGeometry);
|
|
1445
|
-
}
|
|
1446
|
-
}
|
|
1447
|
-
}
|
|
1448
|
-
|
|
1449
|
-
this.setSliderPos = function(pos) {
|
|
1450
|
-
if (zincGeometry)
|
|
1451
|
-
zincGeometry.morph.material.uniforms.slide_pos.value = pos;
|
|
1452
|
-
}
|
|
1453
|
-
|
|
1454
|
-
this.setTime = function(time) {
|
|
1455
|
-
if (zincGeometry) {
|
|
1456
|
-
zincGeometry.morph.material.uniforms.time.value = time;
|
|
1457
|
-
}
|
|
1458
|
-
}
|
|
1459
|
-
|
|
1460
|
-
this.setTexture = function(textureIn) {
|
|
1461
|
-
if (zincGeometry) {
|
|
1462
|
-
zincGeometry.morph.material.uniforms.myTex.value = textureIn;
|
|
1463
|
-
zincGeometry.morph.material.uniforms.myTex.value.needsUpdate = true;
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
|
|
1467
|
-
this.loadURLsIntoBufferGeometry = function(urls, finishCallback, progressCallback, errorCallback) {
|
|
1468
|
-
var loader = new THREE.JSONLoader( true );
|
|
1469
|
-
numberOfInputs = urls.length;
|
|
1470
|
-
finishCallbackFunction = finishCallback;
|
|
1471
|
-
var shaderText = [
|
|
1472
|
-
__webpack_require__("1823"),
|
|
1473
|
-
__webpack_require__("4e8a")
|
|
1474
|
-
];
|
|
1475
|
-
for (var i = 0; i < numberOfInputs; i++)
|
|
1476
|
-
loader.load( urls[i], myLoader(i, shaderText), progressCallback, errorCallback);
|
|
1477
|
-
}
|
|
1395
|
+
__webpack_require__("907b");
|
|
1396
|
+
|
|
1397
|
+
__webpack_require__("1ce0");
|
|
1398
|
+
|
|
1399
|
+
function _typeof(obj) {
|
|
1400
|
+
"@babel/helpers - typeof";
|
|
1401
|
+
|
|
1402
|
+
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
|
1403
|
+
module.exports = _typeof = function _typeof(obj) {
|
|
1404
|
+
return typeof obj;
|
|
1405
|
+
};
|
|
1406
|
+
} else {
|
|
1407
|
+
module.exports = _typeof = function _typeof(obj) {
|
|
1408
|
+
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
1409
|
+
};
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1412
|
+
return _typeof(obj);
|
|
1478
1413
|
}
|
|
1479
1414
|
|
|
1415
|
+
module.exports = _typeof;
|
|
1480
1416
|
|
|
1481
1417
|
/***/ }),
|
|
1482
1418
|
|
|
@@ -1487,105 +1423,68 @@ module.exports = require("element-ui/lib/theme-chalk/col.css");
|
|
|
1487
1423
|
|
|
1488
1424
|
/***/ }),
|
|
1489
1425
|
|
|
1490
|
-
/***/ "
|
|
1491
|
-
/***/ (function(module,
|
|
1492
|
-
|
|
1493
|
-
"use strict";
|
|
1494
|
-
/* 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");
|
|
1495
|
-
/* 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__);
|
|
1496
|
-
/* unused harmony reexport * */
|
|
1426
|
+
/***/ "73ef":
|
|
1427
|
+
/***/ (function(module, exports) {
|
|
1497
1428
|
|
|
1429
|
+
module.exports = require("element-ui/lib/theme-chalk/main.css");
|
|
1498
1430
|
|
|
1499
1431
|
/***/ }),
|
|
1500
1432
|
|
|
1501
|
-
/***/ "
|
|
1433
|
+
/***/ "7c81":
|
|
1502
1434
|
/***/ (function(module, exports) {
|
|
1503
1435
|
|
|
1504
|
-
module.exports = require("
|
|
1436
|
+
module.exports = require("core-js/modules/es.array.splice");
|
|
1505
1437
|
|
|
1506
1438
|
/***/ }),
|
|
1507
1439
|
|
|
1508
|
-
/***/ "
|
|
1440
|
+
/***/ "7d9b":
|
|
1509
1441
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1510
1442
|
|
|
1511
|
-
|
|
1443
|
+
// extracted by mini-css-extract-plugin
|
|
1512
1444
|
|
|
1513
|
-
|
|
1514
|
-
var tooltipcontainerElement = undefined;
|
|
1515
|
-
var tipElement = undefined;
|
|
1516
|
-
var tiptextElement = undefined;
|
|
1517
|
-
var template = '<div class="mptooltip" id="tip"><span class="mptooltiptext" id="tiptext"> Tooltip text</span></div>';
|
|
1518
|
-
var _this = this;
|
|
1519
|
-
|
|
1520
|
-
/**
|
|
1521
|
-
* Show tool tip on the specified windows coordinates.
|
|
1522
|
-
* @param {Number} x - Style sheet with the same title.
|
|
1523
|
-
* @param {Number} y - selector string to match.
|
|
1524
|
-
*/
|
|
1525
|
-
this.show = function(x, y) {
|
|
1526
|
-
tooltipcontainerElement.style.left = x +"px";
|
|
1527
|
-
tooltipcontainerElement.style.top = (y - 20) + "px";
|
|
1528
|
-
tipElement.style.visibility = "visible";
|
|
1529
|
-
tipElement.style.opacity = 1;
|
|
1530
|
-
tiptextElement.style.visibility = "visible";
|
|
1531
|
-
tiptextElement.style.opacity = 1;
|
|
1532
|
-
}
|
|
1533
|
-
|
|
1534
|
-
this.hide = function() {
|
|
1535
|
-
tipElement.style.visibility = "hidden";
|
|
1536
|
-
tipElement.style.opacity = 0;
|
|
1537
|
-
tiptextElement.style.visibility = "hidden";
|
|
1538
|
-
tiptextElement.style.opacity = 0;
|
|
1539
|
-
}
|
|
1540
|
-
|
|
1541
|
-
/**
|
|
1542
|
-
* Change the tooltip text.
|
|
1543
|
-
* @param {String} text - Text to update the tooltip to.
|
|
1544
|
-
*/
|
|
1545
|
-
this.setText = function(text) {
|
|
1546
|
-
tiptextElement.innerHTML = text;
|
|
1547
|
-
}
|
|
1445
|
+
/***/ }),
|
|
1548
1446
|
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
tooltipcontainerElement.id = "tooltipcontainer";
|
|
1552
|
-
tooltipcontainerElement.innerHTML = template;
|
|
1553
|
-
/*
|
|
1554
|
-
for (i = 0; i < childNodes.length; i++) {
|
|
1555
|
-
parent[0].appendChild(childNodes[i]);
|
|
1556
|
-
}
|
|
1557
|
-
*/
|
|
1558
|
-
tipElement = tooltipcontainerElement.querySelector("#tip");
|
|
1559
|
-
tiptextElement = tooltipcontainerElement.querySelector("#tiptext");
|
|
1560
|
-
container.appendChild(tooltipcontainerElement);
|
|
1561
|
-
|
|
1562
|
-
}
|
|
1563
|
-
|
|
1564
|
-
setupToolTipContainer();
|
|
1565
|
-
}
|
|
1447
|
+
/***/ "7f9f":
|
|
1448
|
+
/***/ (function(module, exports) {
|
|
1566
1449
|
|
|
1450
|
+
module.exports = require("element-ui/lib/locale");
|
|
1451
|
+
|
|
1452
|
+
/***/ }),
|
|
1453
|
+
|
|
1454
|
+
/***/ "80c4":
|
|
1455
|
+
/***/ (function(module, exports) {
|
|
1567
1456
|
|
|
1457
|
+
module.exports = require("element-ui/lib/theme-chalk/option.css");
|
|
1568
1458
|
|
|
1569
1459
|
/***/ }),
|
|
1570
1460
|
|
|
1571
|
-
/***/ "
|
|
1461
|
+
/***/ "8278":
|
|
1572
1462
|
/***/ (function(module, exports, __webpack_require__) {
|
|
1573
1463
|
|
|
1574
|
-
|
|
1464
|
+
__webpack_require__("bcd8");
|
|
1575
1465
|
|
|
1466
|
+
var _readOnlyError = __webpack_require__("da60");
|
|
1467
|
+
|
|
1468
|
+
var THREE = __webpack_require__("9206").THREE;
|
|
1576
1469
|
/**
|
|
1577
1470
|
* Create a {@link Zinc.Renderer} on the dom element with corresponding elementID.
|
|
1578
1471
|
* @param {String} elementID - id of the target dom element.
|
|
1579
1472
|
* @returns {Zinc.Renderer}
|
|
1580
1473
|
*/
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
var
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
var createRenderer = function createRenderer() {
|
|
1477
|
+
var WEBGL = __webpack_require__("cf41").WEBGL;
|
|
1478
|
+
|
|
1479
|
+
var localContainer = document.createElement('div');
|
|
1480
|
+
var localRenderer = undefined;
|
|
1481
|
+
;
|
|
1585
1482
|
localContainer.style.height = "100%";
|
|
1483
|
+
|
|
1586
1484
|
if (WEBGL.isWebGLAvailable()) {
|
|
1587
1485
|
var Zinc = __webpack_require__("9206");
|
|
1588
|
-
|
|
1486
|
+
|
|
1487
|
+
localRenderer = new Zinc.Renderer(localContainer, window);
|
|
1589
1488
|
Zinc.defaultMaterialColor = 0xFFFF9C;
|
|
1590
1489
|
localRenderer.initialiseVisualisation();
|
|
1591
1490
|
localRenderer.playAnimation = false;
|
|
@@ -1593,278 +1492,253 @@ var createRenderer = function () {
|
|
|
1593
1492
|
var warning = WEBGL.getWebGLErrorMessage();
|
|
1594
1493
|
localContainer.appendChild(warning);
|
|
1595
1494
|
}
|
|
1596
|
-
return {"renderer":localRenderer, "container":localContainer};
|
|
1597
|
-
}
|
|
1598
1495
|
|
|
1599
|
-
|
|
1600
|
-
|
|
1496
|
+
return {
|
|
1497
|
+
"renderer": localRenderer,
|
|
1498
|
+
"container": localContainer
|
|
1499
|
+
};
|
|
1500
|
+
};
|
|
1501
|
+
|
|
1502
|
+
var RendererModule = function RendererModule() {
|
|
1503
|
+
__webpack_require__("6aa6").BaseModule.call(this);
|
|
1504
|
+
|
|
1601
1505
|
this.scene = undefined;
|
|
1602
|
-
this.toolTip = undefined;
|
|
1603
1506
|
this.rendererContainer = undefined;
|
|
1604
1507
|
this.displayArea = undefined;
|
|
1605
|
-
this.graphicsHighlight = new (__webpack_require__("
|
|
1508
|
+
this.graphicsHighlight = new (__webpack_require__("5ec5").GraphicsHighlight)();
|
|
1606
1509
|
this.zincRenderer = null;
|
|
1607
1510
|
this.selectedScreenCoordinates = new THREE.Vector3();
|
|
1608
1511
|
this.selectedCenter = undefined;
|
|
1609
|
-
}
|
|
1610
|
-
|
|
1611
|
-
RendererModule.prototype = Object.create((__webpack_require__("3966").BaseModule).prototype);
|
|
1512
|
+
};
|
|
1612
1513
|
|
|
1514
|
+
RendererModule.prototype = Object.create(__webpack_require__("6aa6").BaseModule.prototype);
|
|
1613
1515
|
/**
|
|
1614
1516
|
* This function will get the the first intersected object with name or
|
|
1615
1517
|
* the first glyph object with name.
|
|
1616
1518
|
*/
|
|
1617
|
-
RendererModule.prototype.getIntersectedObject = function(intersects) {
|
|
1618
|
-
if (intersects) {
|
|
1619
|
-
for (var i = 0; i < intersects.length; i++) {
|
|
1620
|
-
if (intersects[i] !== undefined) {
|
|
1621
|
-
if (intersects[i].object &&
|
|
1622
|
-
intersects[i].object.userData &&
|
|
1623
|
-
intersects[i].object.userData.isZincObject &&
|
|
1624
|
-
(intersects[i].object.name ||
|
|
1625
|
-
intersects[i].object.userData.isMarker))
|
|
1626
|
-
return intersects[i];
|
|
1627
|
-
}
|
|
1628
|
-
}
|
|
1629
|
-
}
|
|
1630
|
-
return undefined;
|
|
1631
|
-
}
|
|
1632
1519
|
|
|
1633
|
-
RendererModule.prototype.
|
|
1634
|
-
|
|
1635
|
-
for (var i = 0; i <
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1520
|
+
RendererModule.prototype.getIntersectedObject = function (intersects) {
|
|
1521
|
+
if (intersects) {
|
|
1522
|
+
for (var i = 0; i < intersects.length; i++) {
|
|
1523
|
+
if (intersects[i] !== undefined) {
|
|
1524
|
+
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];
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
return undefined;
|
|
1530
|
+
};
|
|
1531
|
+
|
|
1532
|
+
RendererModule.prototype.getAnnotationsFromObjects = function (objects) {
|
|
1533
|
+
var annotations = [];
|
|
1534
|
+
var count = 0;
|
|
1535
|
+
|
|
1536
|
+
for (var i = 0; i < objects.length; i++) {
|
|
1537
|
+
var zincObject = objects[i].userData;
|
|
1538
|
+
var annotation = undefined;
|
|
1539
|
+
|
|
1540
|
+
if (zincObject) {
|
|
1541
|
+
if (zincObject.isGlyph || zincObject.isGlyphset) {
|
|
1542
|
+
var glyphset = zincObject;
|
|
1543
|
+
if (zincObject.isGlyph) glyphset = (_readOnlyError("glyphset"), zincObject.getGlyphset());
|
|
1544
|
+
annotation = glyphset.userData ? glyphset.userData[0] : undefined;
|
|
1545
|
+
|
|
1546
|
+
if (annotation && annotation.data) {
|
|
1547
|
+
if (objects[i].name && objects[i].name != "") annotation.data.id = objects[i].name;else annotation.data.id = glyphset.groupName;
|
|
1548
|
+
}
|
|
1549
|
+
} else {
|
|
1550
|
+
annotation = zincObject.userData ? zincObject.userData[0] : undefined;
|
|
1551
|
+
|
|
1552
|
+
if (annotation && annotation.data) {
|
|
1553
|
+
annotation.data.id = objects[i].name;
|
|
1655
1554
|
}
|
|
1656
1555
|
}
|
|
1657
|
-
annotations[i] = annotation;
|
|
1658
1556
|
}
|
|
1659
|
-
return annotations;
|
|
1660
|
-
}
|
|
1661
1557
|
|
|
1662
|
-
|
|
1558
|
+
if (annotation) annotations[count++] = annotation;
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1561
|
+
return annotations;
|
|
1562
|
+
};
|
|
1563
|
+
|
|
1564
|
+
RendererModule.prototype.setHighlightedByObjects = function (objects, propagateChanges) {
|
|
1663
1565
|
var changed = this.graphicsHighlight.setHighlighted(objects);
|
|
1566
|
+
|
|
1664
1567
|
if (changed && propagateChanges) {
|
|
1665
|
-
var eventType = __webpack_require__("
|
|
1568
|
+
var eventType = __webpack_require__("9b21").EVENT_TYPE.HIGHLIGHTED;
|
|
1569
|
+
|
|
1666
1570
|
var annotations = this.getAnnotationsFromObjects(objects);
|
|
1667
1571
|
this.publishChanges(annotations, eventType);
|
|
1668
1572
|
}
|
|
1669
|
-
return changed;
|
|
1670
|
-
}
|
|
1671
1573
|
|
|
1574
|
+
return changed;
|
|
1575
|
+
};
|
|
1672
1576
|
|
|
1673
|
-
RendererModule.prototype.setHighlightedByZincObject = function(
|
|
1674
|
-
zincObject, propagateChanges)
|
|
1675
|
-
|
|
1676
|
-
}
|
|
1577
|
+
RendererModule.prototype.setHighlightedByZincObject = function (zincObject, propagateChanges) {
|
|
1578
|
+
return this.setHighlightedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
|
|
1579
|
+
};
|
|
1677
1580
|
|
|
1678
|
-
RendererModule.prototype.setupLiveCoordinates = function(zincObjects) {
|
|
1679
|
-
if (zincObjects &&
|
|
1581
|
+
RendererModule.prototype.setupLiveCoordinates = function (zincObjects) {
|
|
1582
|
+
if (zincObjects && zincObjects.length > 0) {
|
|
1680
1583
|
var boundingBox = this.scene.getBoundingBoxOfZincObjects(zincObjects);
|
|
1681
|
-
|
|
1584
|
+
var newSelectedCenter = new THREE.Vector3();
|
|
1682
1585
|
boundingBox.getCenter(newSelectedCenter);
|
|
1683
|
-
if (this.selectedCenter == undefined)
|
|
1684
|
-
this.selectedCenter = newSelectedCenter;
|
|
1685
|
-
else {
|
|
1586
|
+
if (this.selectedCenter == undefined) this.selectedCenter = newSelectedCenter;else {
|
|
1686
1587
|
this.selectedCenter.x = newSelectedCenter.x;
|
|
1687
1588
|
this.selectedCenter.y = newSelectedCenter.y;
|
|
1688
1589
|
}
|
|
1689
1590
|
} else {
|
|
1690
1591
|
this.selectedCenter = undefined;
|
|
1691
1592
|
}
|
|
1692
|
-
}
|
|
1593
|
+
};
|
|
1693
1594
|
|
|
1694
|
-
RendererModule.prototype.objectsToZincObjects = function(objects) {
|
|
1595
|
+
RendererModule.prototype.objectsToZincObjects = function (objects) {
|
|
1695
1596
|
var zincObjects = [];
|
|
1597
|
+
|
|
1696
1598
|
for (var i = 0; i < objects.length; i++) {
|
|
1697
1599
|
var zincObject = objects[i].userData;
|
|
1600
|
+
|
|
1698
1601
|
if (zincObject) {
|
|
1699
1602
|
if (zincObject.isGlyph || zincObject.isGlyphset) {
|
|
1700
1603
|
var glyphset = zincObject;
|
|
1701
|
-
if (zincObject.isGlyph)
|
|
1702
|
-
|
|
1703
|
-
zincObjects. push(glyphset);
|
|
1604
|
+
if (zincObject.isGlyph) glyphset = zincObject.getGlyphset();
|
|
1605
|
+
zincObjects.push(glyphset);
|
|
1704
1606
|
} else {
|
|
1705
|
-
zincObjects.
|
|
1607
|
+
zincObjects.push(zincObject);
|
|
1706
1608
|
}
|
|
1707
1609
|
}
|
|
1708
1610
|
}
|
|
1709
|
-
return zincObjects;
|
|
1710
|
-
}
|
|
1711
1611
|
|
|
1612
|
+
return zincObjects;
|
|
1613
|
+
};
|
|
1712
1614
|
|
|
1713
|
-
RendererModule.prototype.setSelectedByObjects = function(
|
|
1714
|
-
objects, propagateChanges) {
|
|
1615
|
+
RendererModule.prototype.setSelectedByObjects = function (objects, propagateChanges) {
|
|
1715
1616
|
var changed = this.graphicsHighlight.setSelected(objects);
|
|
1617
|
+
|
|
1716
1618
|
if (changed) {
|
|
1717
1619
|
var zincObjects = this.objectsToZincObjects(objects);
|
|
1718
1620
|
this.setupLiveCoordinates(zincObjects);
|
|
1621
|
+
|
|
1719
1622
|
if (propagateChanges) {
|
|
1720
|
-
var eventType = __webpack_require__("
|
|
1623
|
+
var eventType = __webpack_require__("9b21").EVENT_TYPE.SELECTED;
|
|
1624
|
+
|
|
1721
1625
|
var annotations = this.getAnnotationsFromObjects(objects);
|
|
1722
1626
|
this.publishChanges(annotations, eventType);
|
|
1723
1627
|
}
|
|
1724
1628
|
}
|
|
1629
|
+
|
|
1725
1630
|
return changed;
|
|
1726
|
-
}
|
|
1631
|
+
};
|
|
1727
1632
|
|
|
1728
|
-
RendererModule.prototype.setSelectedByZincObject = function(
|
|
1729
|
-
zincObject, propagateChanges) {
|
|
1633
|
+
RendererModule.prototype.setSelectedByZincObject = function (zincObject, propagateChanges) {
|
|
1730
1634
|
return this.setSelectedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
|
|
1731
|
-
}
|
|
1635
|
+
};
|
|
1732
1636
|
|
|
1733
|
-
var addGlyphToArray = function(objects) {
|
|
1734
|
-
return function(glyph) {
|
|
1637
|
+
var addGlyphToArray = function addGlyphToArray(objects) {
|
|
1638
|
+
return function (glyph) {
|
|
1735
1639
|
objects.push(glyph.getMesh());
|
|
1736
|
-
}
|
|
1737
|
-
}
|
|
1640
|
+
};
|
|
1641
|
+
};
|
|
1738
1642
|
|
|
1739
|
-
RendererModule.prototype.findObjectsByGroupName = function(groupName) {
|
|
1643
|
+
RendererModule.prototype.findObjectsByGroupName = function (groupName) {
|
|
1740
1644
|
var geometries = this.scene.findGeometriesWithGroupName(groupName);
|
|
1741
1645
|
var objects = [];
|
|
1742
|
-
|
|
1646
|
+
|
|
1647
|
+
for (var i = 0; i < geometries.length; i++) {
|
|
1743
1648
|
objects.push(geometries[i].morph);
|
|
1744
1649
|
}
|
|
1650
|
+
|
|
1745
1651
|
var glyphsets = this.scene.findGlyphsetsWithGroupName(groupName);
|
|
1746
|
-
|
|
1747
|
-
|
|
1652
|
+
|
|
1653
|
+
for (var _i = 0; _i < glyphsets.length; _i++) {
|
|
1654
|
+
glyphsets[_i].forEachGlyph(addGlyphToArray(objects));
|
|
1748
1655
|
}
|
|
1749
|
-
|
|
1656
|
+
|
|
1750
1657
|
return objects;
|
|
1751
|
-
}
|
|
1658
|
+
};
|
|
1752
1659
|
|
|
1753
|
-
RendererModule.prototype.setHighlightedByGroupName = function(groupName, propagateChanges) {
|
|
1660
|
+
RendererModule.prototype.setHighlightedByGroupName = function (groupName, propagateChanges) {
|
|
1754
1661
|
var objects = this.findObjectsByGroupName(groupName);
|
|
1755
1662
|
return this.setHighlightedByObjects(objects, propagateChanges);
|
|
1756
|
-
}
|
|
1663
|
+
};
|
|
1757
1664
|
|
|
1758
|
-
RendererModule.prototype.setSelectedByGroupName = function(groupName, propagateChanges) {
|
|
1665
|
+
RendererModule.prototype.setSelectedByGroupName = function (groupName, propagateChanges) {
|
|
1759
1666
|
var objects = this.findObjectsByGroupName(groupName);
|
|
1760
1667
|
return this.setSelectedByObjects(objects, propagateChanges);
|
|
1761
|
-
}
|
|
1668
|
+
};
|
|
1762
1669
|
|
|
1763
|
-
RendererModule.prototype.changeBackgroundColour = function(backgroundColourString) {
|
|
1670
|
+
RendererModule.prototype.changeBackgroundColour = function (backgroundColourString) {
|
|
1764
1671
|
var colour = new THREE.Color(backgroundColourString);
|
|
1672
|
+
|
|
1765
1673
|
if (this.zincRenderer) {
|
|
1766
1674
|
var internalRenderer = this.zincRenderer.getThreeJSRenderer();
|
|
1767
|
-
internalRenderer.setClearColor(
|
|
1675
|
+
internalRenderer.setClearColor(colour, 1);
|
|
1768
1676
|
}
|
|
1769
|
-
}
|
|
1677
|
+
};
|
|
1770
1678
|
|
|
1771
|
-
RendererModule.prototype.resetView = function() {
|
|
1772
|
-
if (this.zincRenderer)
|
|
1773
|
-
|
|
1774
|
-
}
|
|
1775
|
-
|
|
1776
|
-
RendererModule.prototype.viewAll = function() {
|
|
1777
|
-
if (this.zincRenderer)
|
|
1778
|
-
this.zincRenderer.viewAll();
|
|
1779
|
-
}
|
|
1679
|
+
RendererModule.prototype.resetView = function () {
|
|
1680
|
+
if (this.zincRenderer) this.zincRenderer.resetView();
|
|
1681
|
+
};
|
|
1780
1682
|
|
|
1683
|
+
RendererModule.prototype.viewAll = function () {
|
|
1684
|
+
if (this.zincRenderer) this.zincRenderer.viewAll();
|
|
1685
|
+
};
|
|
1781
1686
|
/**
|
|
1782
1687
|
* Start the animation and let the renderer to processs with
|
|
1783
1688
|
* time progression
|
|
1784
1689
|
*/
|
|
1785
|
-
RendererModule.prototype.playAnimation = function(flag) {
|
|
1786
|
-
if (this.zincRenderer)
|
|
1787
|
-
this.zincRenderer.playAnimation = flag;
|
|
1788
|
-
}
|
|
1789
1690
|
|
|
1691
|
+
|
|
1692
|
+
RendererModule.prototype.playAnimation = function (flag) {
|
|
1693
|
+
if (this.zincRenderer) this.zincRenderer.playAnimation = flag;
|
|
1694
|
+
};
|
|
1790
1695
|
/**
|
|
1791
1696
|
* Set the speed of playback
|
|
1792
1697
|
*/
|
|
1793
|
-
RendererModule.prototype.setPlayRate = function(value) {
|
|
1794
|
-
if (this.zincRenderer)
|
|
1795
|
-
this.zincRenderer.setPlayRate(value);
|
|
1796
|
-
}
|
|
1797
1698
|
|
|
1699
|
+
|
|
1700
|
+
RendererModule.prototype.setPlayRate = function (value) {
|
|
1701
|
+
if (this.zincRenderer) this.zincRenderer.setPlayRate(value);
|
|
1702
|
+
};
|
|
1798
1703
|
/**
|
|
1799
1704
|
* Get the speed of playback
|
|
1800
1705
|
*/
|
|
1801
|
-
RendererModule.prototype.getPlayRate = function(value) {
|
|
1802
|
-
if (this.zincRenderer)
|
|
1803
|
-
return this.zincRenderer.getPlayRate();
|
|
1804
|
-
else
|
|
1805
|
-
return 0.0;
|
|
1806
|
-
}
|
|
1807
|
-
|
|
1808
|
-
/** Initialise everything in the renderer, including the 3D renderer,
|
|
1809
|
-
* and picker for the 3D renderer.
|
|
1810
|
-
*
|
|
1811
|
-
*/
|
|
1812
|
-
RendererModule.prototype.initialiseRenderer = function(displayAreaIn) {
|
|
1813
|
-
if (this.zincRenderer === undefined || this.rendererContainer === undefined) {
|
|
1814
|
-
var returnedValue = createRenderer();
|
|
1815
|
-
this.zincRenderer = returnedValue["renderer"];
|
|
1816
|
-
this.rendererContainer = returnedValue["container"];
|
|
1817
|
-
}
|
|
1818
|
-
if (displayAreaIn) {
|
|
1819
|
-
this.displayArea = displayAreaIn;
|
|
1820
|
-
this.displayArea.appendChild( this.rendererContainer );
|
|
1821
|
-
if (this.zincRenderer) {
|
|
1822
|
-
this.zincRenderer.animate();
|
|
1823
|
-
if (this.toolTip === undefined)
|
|
1824
|
-
this.toolTip = new (__webpack_require__("76bf").ToolTip)(this.displayArea);
|
|
1825
|
-
}
|
|
1826
|
-
}
|
|
1827
|
-
}
|
|
1828
|
-
|
|
1829
|
-
RendererModule.prototype.destroy = function() {
|
|
1830
|
-
if (this.zincRenderer) {
|
|
1831
|
-
this.zincRenderer.dispose();
|
|
1832
|
-
this.zincRenderer.getThreeJSRenderer().dispose();
|
|
1833
|
-
this.zincRenderer = undefined;
|
|
1834
|
-
}
|
|
1835
|
-
(__webpack_require__("3966").BaseModule).prototype.destroy.call( this );
|
|
1836
|
-
}
|
|
1837
|
-
|
|
1838
|
-
exports.RendererModule = RendererModule;
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
/***/ }),
|
|
1842
|
-
|
|
1843
|
-
/***/ "7c81":
|
|
1844
|
-
/***/ (function(module, exports) {
|
|
1845
|
-
|
|
1846
|
-
module.exports = require("core-js/modules/es.array.splice");
|
|
1847
|
-
|
|
1848
|
-
/***/ }),
|
|
1849
|
-
|
|
1850
|
-
/***/ "7d9b":
|
|
1851
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
1852
1706
|
|
|
1853
|
-
// extracted by mini-css-extract-plugin
|
|
1854
1707
|
|
|
1855
|
-
|
|
1708
|
+
RendererModule.prototype.getPlayRate = function (value) {
|
|
1709
|
+
if (this.zincRenderer) return this.zincRenderer.getPlayRate();else return 0.0;
|
|
1710
|
+
};
|
|
1711
|
+
/** Initialise everything in the renderer, including the 3D renderer,
|
|
1712
|
+
* and picker for the 3D renderer.
|
|
1713
|
+
*
|
|
1714
|
+
*/
|
|
1856
1715
|
|
|
1857
|
-
/***/ "7f9f":
|
|
1858
|
-
/***/ (function(module, exports) {
|
|
1859
1716
|
|
|
1860
|
-
|
|
1717
|
+
RendererModule.prototype.initialiseRenderer = function (displayAreaIn) {
|
|
1718
|
+
if (this.zincRenderer === undefined || this.rendererContainer === undefined) {
|
|
1719
|
+
var returnedValue = createRenderer();
|
|
1720
|
+
this.zincRenderer = returnedValue["renderer"];
|
|
1721
|
+
this.rendererContainer = returnedValue["container"];
|
|
1722
|
+
}
|
|
1861
1723
|
|
|
1862
|
-
|
|
1724
|
+
if (displayAreaIn) {
|
|
1725
|
+
this.displayArea = displayAreaIn;
|
|
1726
|
+
this.displayArea.appendChild(this.rendererContainer);
|
|
1727
|
+
if (this.zincRenderer) this.zincRenderer.animate();
|
|
1728
|
+
}
|
|
1729
|
+
};
|
|
1863
1730
|
|
|
1864
|
-
|
|
1865
|
-
|
|
1731
|
+
RendererModule.prototype.destroy = function () {
|
|
1732
|
+
if (this.zincRenderer) {
|
|
1733
|
+
this.zincRenderer.dispose();
|
|
1734
|
+
this.zincRenderer.getThreeJSRenderer().dispose();
|
|
1735
|
+
this.zincRenderer = undefined;
|
|
1736
|
+
}
|
|
1866
1737
|
|
|
1867
|
-
|
|
1738
|
+
__webpack_require__("6aa6").BaseModule.prototype.destroy.call(this);
|
|
1739
|
+
};
|
|
1740
|
+
|
|
1741
|
+
exports.RendererModule = RendererModule;
|
|
1868
1742
|
|
|
1869
1743
|
/***/ }),
|
|
1870
1744
|
|
|
@@ -1894,146 +1768,6 @@ module.exports = require("element-ui/lib/tabs");
|
|
|
1894
1768
|
|
|
1895
1769
|
module.exports = require("core-js/modules/es.array.iterator");
|
|
1896
1770
|
|
|
1897
|
-
/***/ }),
|
|
1898
|
-
|
|
1899
|
-
/***/ "8cec":
|
|
1900
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
1901
|
-
|
|
1902
|
-
var THREE = __webpack_require__("9206").THREE;
|
|
1903
|
-
|
|
1904
|
-
/**
|
|
1905
|
-
* This module manages highlighted and selected objects in 3D modules.
|
|
1906
|
-
*
|
|
1907
|
-
* @class
|
|
1908
|
-
* @returns {exports.GraphicsHighlight}
|
|
1909
|
-
*/
|
|
1910
|
-
exports.GraphicsHighlight = function() {
|
|
1911
|
-
var currentHighlightedObjects = [];
|
|
1912
|
-
var currentSelectedObjects = [];
|
|
1913
|
-
this.highlightColour = 0x0000FF;
|
|
1914
|
-
this.selectColour = 0x00FF00;
|
|
1915
|
-
this.originalColour = 0x000000;
|
|
1916
|
-
var _this = this;
|
|
1917
|
-
|
|
1918
|
-
var isDifferent = function(array1, array2) {
|
|
1919
|
-
if ((array1.length == 0) && (array2.length == 0))
|
|
1920
|
-
return false;
|
|
1921
|
-
|
|
1922
|
-
for (var i = 0; i < array1.length; i++) {
|
|
1923
|
-
var matched = false;
|
|
1924
|
-
for (var j = 0; j < array2.length; j++) {
|
|
1925
|
-
if (array1[i] === array2[j]) {
|
|
1926
|
-
matched = true;
|
|
1927
|
-
}
|
|
1928
|
-
}
|
|
1929
|
-
if (!matched)
|
|
1930
|
-
return true;
|
|
1931
|
-
}
|
|
1932
|
-
for (var i = 0; i < array2.length; i++) {
|
|
1933
|
-
var matched = false;
|
|
1934
|
-
for (var j = 0; j < array1.length; j++) {
|
|
1935
|
-
if (array2[i] === array1[j]) {
|
|
1936
|
-
matched = true;
|
|
1937
|
-
}
|
|
1938
|
-
}
|
|
1939
|
-
if (!matched)
|
|
1940
|
-
return true;
|
|
1941
|
-
}
|
|
1942
|
-
return false;
|
|
1943
|
-
}
|
|
1944
|
-
|
|
1945
|
-
var getUnmatchingObjects = function(objectsArray1, objectsArray2) {
|
|
1946
|
-
var unmatchingObjects = [];
|
|
1947
|
-
if (objectsArray2.length == 0)
|
|
1948
|
-
return objectsArray1;
|
|
1949
|
-
for (var i = 0; i < objectsArray1.length; i++) {
|
|
1950
|
-
var matched = false;
|
|
1951
|
-
for (var j = 0; j < objectsArray2.length; j++) {
|
|
1952
|
-
if (objectsArray1[i] === objectsArray2[j]) {
|
|
1953
|
-
matched = true;
|
|
1954
|
-
}
|
|
1955
|
-
}
|
|
1956
|
-
if (!matched)
|
|
1957
|
-
unmatchingObjects.push(objectsArray1[i]);
|
|
1958
|
-
}
|
|
1959
|
-
return unmatchingObjects;
|
|
1960
|
-
}
|
|
1961
|
-
|
|
1962
|
-
this.setHighlighted = function(objects) {
|
|
1963
|
-
var previousHighlightedObjects = currentHighlightedObjects;
|
|
1964
|
-
_this.resetHighlighted();
|
|
1965
|
-
// Selected object cannot be highlighted
|
|
1966
|
-
var array = getUnmatchingObjects(objects, currentSelectedObjects);
|
|
1967
|
-
var fullList = getFullListOfObjects(array);
|
|
1968
|
-
for (var i = 0; i < fullList.length; i++) {
|
|
1969
|
-
if (fullList[i] && fullList[i].material && fullList[i].material.emissive)
|
|
1970
|
-
fullList[i].material.emissive.setHex(_this.highlightColour);
|
|
1971
|
-
}
|
|
1972
|
-
currentHighlightedObjects = array;
|
|
1973
|
-
return isDifferent(currentHighlightedObjects, previousHighlightedObjects);
|
|
1974
|
-
}
|
|
1975
|
-
|
|
1976
|
-
this.setSelected = function(objects) {
|
|
1977
|
-
// first find highlighted object that are not selected
|
|
1978
|
-
var previousHSelectedObjects = currentSelectedObjects;
|
|
1979
|
-
var array = getUnmatchingObjects(currentHighlightedObjects, objects);
|
|
1980
|
-
currentHighlightedObjects = array;
|
|
1981
|
-
_this.resetSelected();
|
|
1982
|
-
var fullList = getFullListOfObjects(objects);
|
|
1983
|
-
for (var i = 0; i < fullList.length; i++) {
|
|
1984
|
-
if (fullList[i] && fullList[i].material && fullList[i].material.emissive)
|
|
1985
|
-
fullList[i].material.emissive.setHex(_this.selectColour);
|
|
1986
|
-
}
|
|
1987
|
-
currentSelectedObjects = objects;
|
|
1988
|
-
return isDifferent(currentSelectedObjects, previousHSelectedObjects);
|
|
1989
|
-
}
|
|
1990
|
-
|
|
1991
|
-
var getFullListOfObjects = function(objects) {
|
|
1992
|
-
let fullList = [];
|
|
1993
|
-
for (var i = 0; i < objects.length; i++) {
|
|
1994
|
-
if (objects[i].material)
|
|
1995
|
-
fullList.push(objects[i]);
|
|
1996
|
-
}
|
|
1997
|
-
return fullList;
|
|
1998
|
-
}
|
|
1999
|
-
|
|
2000
|
-
this.resetHighlighted = function() {
|
|
2001
|
-
let fullList = getFullListOfObjects(currentHighlightedObjects);
|
|
2002
|
-
for (var i = 0; i < fullList.length; i++) {
|
|
2003
|
-
if (fullList[i] && fullList[i].material) {
|
|
2004
|
-
if (fullList[i].material.emissive)
|
|
2005
|
-
fullList[i].material.emissive.setHex(_this.originalColour);
|
|
2006
|
-
if (fullList[i].material.depthFunc)
|
|
2007
|
-
fullList[i].material.depthFunc = THREE.LessEqualDepth;
|
|
2008
|
-
}
|
|
2009
|
-
}
|
|
2010
|
-
currentHighlightedObjects = [];
|
|
2011
|
-
}
|
|
2012
|
-
|
|
2013
|
-
this.resetSelected = function() {
|
|
2014
|
-
let fullList = getFullListOfObjects(currentSelectedObjects);
|
|
2015
|
-
for (var i = 0; i < fullList.length; i++) {
|
|
2016
|
-
if (fullList[i] && fullList[i].material) {
|
|
2017
|
-
if (fullList[i].material.emissive)
|
|
2018
|
-
fullList[i].material.emissive.setHex(_this.originalColour);
|
|
2019
|
-
if (fullList[i].material.depthFunc)
|
|
2020
|
-
fullList[i].material.depthFunc = THREE.LessEqualDepth;
|
|
2021
|
-
}
|
|
2022
|
-
}
|
|
2023
|
-
currentSelectedObjects = [];
|
|
2024
|
-
}
|
|
2025
|
-
|
|
2026
|
-
this.getSelected = function() {
|
|
2027
|
-
return currentSelectedObjects;
|
|
2028
|
-
}
|
|
2029
|
-
|
|
2030
|
-
this.reset = function() {
|
|
2031
|
-
_this.resetSelected();
|
|
2032
|
-
_this.resetHighlighted();
|
|
2033
|
-
}
|
|
2034
|
-
}
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
1771
|
/***/ }),
|
|
2038
1772
|
|
|
2039
1773
|
/***/ "8f11":
|
|
@@ -2071,6 +1805,17 @@ module.exports = require("element-ui/lib/theme-chalk/slider.css");
|
|
|
2071
1805
|
|
|
2072
1806
|
/***/ }),
|
|
2073
1807
|
|
|
1808
|
+
/***/ "984d":
|
|
1809
|
+
/***/ (function(module, exports) {
|
|
1810
|
+
|
|
1811
|
+
exports.annotation = function () {
|
|
1812
|
+
this.type = "anatomical";
|
|
1813
|
+
this.data = undefined;
|
|
1814
|
+
this.isAnnotation = true;
|
|
1815
|
+
};
|
|
1816
|
+
|
|
1817
|
+
/***/ }),
|
|
1818
|
+
|
|
2074
1819
|
/***/ "9985":
|
|
2075
1820
|
/***/ (function(module, exports) {
|
|
2076
1821
|
|
|
@@ -2085,22 +1830,86 @@ module.exports = require("element-ui/lib/theme-chalk/base.css");
|
|
|
2085
1830
|
|
|
2086
1831
|
/***/ }),
|
|
2087
1832
|
|
|
2088
|
-
/***/ "
|
|
2089
|
-
/***/ (function(module, exports) {
|
|
1833
|
+
/***/ "9b21":
|
|
1834
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
2090
1835
|
|
|
2091
|
-
|
|
1836
|
+
__webpack_require__("7c81");
|
|
1837
|
+
|
|
1838
|
+
var EVENT_TYPE = {
|
|
1839
|
+
ALL: 0,
|
|
1840
|
+
SELECTED: 1,
|
|
1841
|
+
HIGHLIGHTED: 2
|
|
1842
|
+
};
|
|
1843
|
+
|
|
1844
|
+
var SelectionEvent = function SelectionEvent(eventTypeIn, identifiersIn) {
|
|
1845
|
+
this.eventType = eventTypeIn;
|
|
1846
|
+
this.identifiers = identifiersIn;
|
|
1847
|
+
};
|
|
1848
|
+
|
|
1849
|
+
var returnFullID = function returnFullID(sourceId) {//return full annotations with all different name
|
|
1850
|
+
};
|
|
1851
|
+
|
|
1852
|
+
var Subscription = function Subscription(subscriberIn, callbackIn, eventType) {
|
|
1853
|
+
this.targetedID = [];
|
|
1854
|
+
var subscriber = subscriberIn;
|
|
1855
|
+
var callback = callbackIn;
|
|
1856
|
+
this.targetEventType = eventType;
|
|
1857
|
+
|
|
1858
|
+
var _this = this;
|
|
1859
|
+
|
|
1860
|
+
if (eventType === undefined) this.targetEventType = EVENT_TYPE.ALL;
|
|
1861
|
+
|
|
1862
|
+
this.getEventType = function () {
|
|
1863
|
+
return eventType;
|
|
1864
|
+
};
|
|
1865
|
+
|
|
1866
|
+
this.notify = function (source, eventType, ids) {
|
|
1867
|
+
if (source !== subscriber && (_this.targetEventType === EVENT_TYPE.ALL || _this.targetEventType === eventType)) {
|
|
1868
|
+
//should support different type of id e.g lyph, name, fmas...
|
|
1869
|
+
//need a function that finds all relavant ids
|
|
1870
|
+
var event = new SelectionEvent(eventType, ids);
|
|
1871
|
+
callback(event);
|
|
1872
|
+
}
|
|
1873
|
+
};
|
|
1874
|
+
};
|
|
1875
|
+
|
|
1876
|
+
exports.EventNotifier = function () {
|
|
1877
|
+
var subscriptions = [];
|
|
1878
|
+
|
|
1879
|
+
this.publish = function (source, eventType, id) {
|
|
1880
|
+
for (var i = 0; i < subscriptions.length; i++) {
|
|
1881
|
+
subscriptions[i].notify(source, eventType, id);
|
|
1882
|
+
}
|
|
1883
|
+
};
|
|
1884
|
+
|
|
1885
|
+
this.subscribe = function (subscriber, callbackFunction, eventType) {
|
|
1886
|
+
if (typeof callbackFunction === "function") {
|
|
1887
|
+
var subscription = new Subscription(subscriber, callbackFunction, eventType);
|
|
1888
|
+
subscriptions.push(subscription);
|
|
1889
|
+
return subscription;
|
|
1890
|
+
}
|
|
1891
|
+
|
|
1892
|
+
return undefined;
|
|
1893
|
+
};
|
|
1894
|
+
|
|
1895
|
+
this.unsubscribe = function (subscription) {
|
|
1896
|
+
for (var i = 0; i < subscriptions.length; i++) {
|
|
1897
|
+
if (subscription === subscriptions[i]) {
|
|
1898
|
+
subscriptions.splice(i, 1);
|
|
1899
|
+
return;
|
|
1900
|
+
}
|
|
1901
|
+
}
|
|
1902
|
+
};
|
|
1903
|
+
};
|
|
1904
|
+
|
|
1905
|
+
exports.EVENT_TYPE = EVENT_TYPE;
|
|
2092
1906
|
|
|
2093
1907
|
/***/ }),
|
|
2094
1908
|
|
|
2095
|
-
/***/ "
|
|
1909
|
+
/***/ "9bb0":
|
|
2096
1910
|
/***/ (function(module, exports) {
|
|
2097
1911
|
|
|
2098
|
-
exports
|
|
2099
|
-
this.type = "anatomical";
|
|
2100
|
-
this.data = undefined;
|
|
2101
|
-
this.isAnnotation = true;
|
|
2102
|
-
}
|
|
2103
|
-
|
|
1912
|
+
module.exports = require("@soda/get-current-script");
|
|
2104
1913
|
|
|
2105
1914
|
/***/ }),
|
|
2106
1915
|
|
|
@@ -2164,13 +1973,6 @@ module.exports = require("element-ui/lib/icon");
|
|
|
2164
1973
|
|
|
2165
1974
|
/***/ }),
|
|
2166
1975
|
|
|
2167
|
-
/***/ "b723":
|
|
2168
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
2169
|
-
|
|
2170
|
-
// extracted by mini-css-extract-plugin
|
|
2171
|
-
|
|
2172
|
-
/***/ }),
|
|
2173
|
-
|
|
2174
1976
|
/***/ "b777":
|
|
2175
1977
|
/***/ (function(module, exports) {
|
|
2176
1978
|
|
|
@@ -2206,21 +2008,84 @@ module.exports = require("element-ui/lib/option");
|
|
|
2206
2008
|
|
|
2207
2009
|
/***/ }),
|
|
2208
2010
|
|
|
2209
|
-
/***/ "
|
|
2210
|
-
/***/ (function(module, exports) {
|
|
2011
|
+
/***/ "cf41":
|
|
2012
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
2013
|
+
|
|
2014
|
+
__webpack_require__("51f7");
|
|
2015
|
+
|
|
2016
|
+
__webpack_require__("bfab");
|
|
2017
|
+
|
|
2018
|
+
/**
|
|
2019
|
+
* @author alteredq / http://alteredqualia.com/
|
|
2020
|
+
* @author mr.doob / http://mrdoob.com/
|
|
2021
|
+
*/
|
|
2022
|
+
exports.WEBGL = {
|
|
2023
|
+
isWebGLAvailable: function isWebGLAvailable() {
|
|
2024
|
+
try {
|
|
2025
|
+
var canvas = document.createElement('canvas');
|
|
2026
|
+
return !!(window.WebGLRenderingContext && (canvas.getContext('webgl') || canvas.getContext('experimental-webgl')));
|
|
2027
|
+
} catch (e) {
|
|
2028
|
+
return false;
|
|
2029
|
+
}
|
|
2030
|
+
},
|
|
2031
|
+
isWebGL2Available: function isWebGL2Available() {
|
|
2032
|
+
try {
|
|
2033
|
+
var canvas = document.createElement('canvas');
|
|
2034
|
+
return !!(window.WebGL2RenderingContext && canvas.getContext('webgl2'));
|
|
2035
|
+
} catch (e) {
|
|
2036
|
+
return false;
|
|
2037
|
+
}
|
|
2038
|
+
},
|
|
2039
|
+
getWebGLErrorMessage: function getWebGLErrorMessage() {
|
|
2040
|
+
return this.getErrorMessage(1);
|
|
2041
|
+
},
|
|
2042
|
+
getWebGL2ErrorMessage: function getWebGL2ErrorMessage() {
|
|
2043
|
+
return this.getErrorMessage(2);
|
|
2044
|
+
},
|
|
2045
|
+
getErrorMessage: function getErrorMessage(version) {
|
|
2046
|
+
var names = {
|
|
2047
|
+
1: 'WebGL',
|
|
2048
|
+
2: 'WebGL 2'
|
|
2049
|
+
};
|
|
2050
|
+
var contexts = {
|
|
2051
|
+
1: window.WebGLRenderingContext,
|
|
2052
|
+
2: window.WebGL2RenderingContext
|
|
2053
|
+
};
|
|
2054
|
+
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.';
|
|
2055
|
+
var element = document.createElement('div');
|
|
2056
|
+
element.id = 'webglmessage';
|
|
2057
|
+
element.style.fontFamily = 'monospace';
|
|
2058
|
+
element.style.fontSize = '20px';
|
|
2059
|
+
element.style.fontWeight = 'normal';
|
|
2060
|
+
element.style.textAlign = 'center';
|
|
2061
|
+
element.style.background = '#fff';
|
|
2062
|
+
element.style.color = '#000';
|
|
2063
|
+
element.style.padding = '1.5em';
|
|
2064
|
+
element.style.width = '400px';
|
|
2065
|
+
element.style.margin = '5em auto 0';
|
|
2066
|
+
|
|
2067
|
+
if (contexts[version]) {
|
|
2068
|
+
message = message.replace('$0', 'graphics card');
|
|
2069
|
+
} else {
|
|
2070
|
+
message = message.replace('$0', 'browser');
|
|
2071
|
+
}
|
|
2211
2072
|
|
|
2212
|
-
|
|
2073
|
+
message = message.replace('$1', names[version]);
|
|
2074
|
+
element.innerHTML = message;
|
|
2075
|
+
return element;
|
|
2076
|
+
}
|
|
2077
|
+
};
|
|
2213
2078
|
|
|
2214
2079
|
/***/ }),
|
|
2215
2080
|
|
|
2216
|
-
/***/ "
|
|
2217
|
-
/***/ (function(module,
|
|
2081
|
+
/***/ "da60":
|
|
2082
|
+
/***/ (function(module, exports) {
|
|
2218
2083
|
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
/* unused harmony reexport * */
|
|
2084
|
+
function _readOnlyError(name) {
|
|
2085
|
+
throw new Error("\"" + name + "\" is read-only");
|
|
2086
|
+
}
|
|
2223
2087
|
|
|
2088
|
+
module.exports = _readOnlyError;
|
|
2224
2089
|
|
|
2225
2090
|
/***/ }),
|
|
2226
2091
|
|
|
@@ -2238,13 +2103,6 @@ module.exports = require("core-js/modules/es.array.from");
|
|
|
2238
2103
|
|
|
2239
2104
|
/***/ }),
|
|
2240
2105
|
|
|
2241
|
-
/***/ "f8fb":
|
|
2242
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
2243
|
-
|
|
2244
|
-
// extracted by mini-css-extract-plugin
|
|
2245
|
-
|
|
2246
|
-
/***/ }),
|
|
2247
|
-
|
|
2248
2106
|
/***/ "fae3":
|
|
2249
2107
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2250
2108
|
|
|
@@ -2279,12 +2137,12 @@ if (typeof window !== 'undefined') {
|
|
|
2279
2137
|
// Indicate to webpack that this file can be concatenated
|
|
2280
2138
|
/* harmony default export */ var setPublicPath = (null);
|
|
2281
2139
|
|
|
2282
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
2283
|
-
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('
|
|
2140
|
+
// 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&
|
|
2141
|
+
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)}
|
|
2284
2142
|
var staticRenderFns = []
|
|
2285
2143
|
|
|
2286
2144
|
|
|
2287
|
-
// CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=
|
|
2145
|
+
// CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=023c058f&scoped=true&
|
|
2288
2146
|
|
|
2289
2147
|
// EXTERNAL MODULE: external "core-js/modules/es.array.for-each"
|
|
2290
2148
|
var es_array_for_each_ = __webpack_require__("139f");
|
|
@@ -2383,7 +2241,7 @@ var col_default = /*#__PURE__*/__webpack_require__.n(col_);
|
|
|
2383
2241
|
var external_vue_ = __webpack_require__("8bbf");
|
|
2384
2242
|
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
|
|
2385
2243
|
|
|
2386
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
2244
|
+
// 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&
|
|
2387
2245
|
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()}
|
|
2388
2246
|
var OpacityControlsvue_type_template_id_4c00a30f_scoped_true_staticRenderFns = []
|
|
2389
2247
|
|
|
@@ -2684,13 +2542,13 @@ var component = normalizeComponent(
|
|
|
2684
2542
|
)
|
|
2685
2543
|
|
|
2686
2544
|
/* harmony default export */ var OpacityControls = (component.exports);
|
|
2687
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
2688
|
-
var
|
|
2545
|
+
// 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&
|
|
2546
|
+
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,
|
|
2689
2547
|
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"})])])}
|
|
2690
|
-
var
|
|
2548
|
+
var TraditionalControlsvue_type_template_id_335c5764_scoped_true_staticRenderFns = []
|
|
2691
2549
|
|
|
2692
2550
|
|
|
2693
|
-
// CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=template&id=
|
|
2551
|
+
// CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=template&id=335c5764&scoped=true&
|
|
2694
2552
|
|
|
2695
2553
|
// EXTERNAL MODULE: external "core-js/modules/es.array.concat"
|
|
2696
2554
|
var es_array_concat_ = __webpack_require__("18d2");
|
|
@@ -2962,7 +2820,6 @@ external_vue_default.a.use(row_default.a);
|
|
|
2962
2820
|
tmpArray = uniq(tmpArray.concat(this.module.sceneData.pointset));
|
|
2963
2821
|
this.sortedPrimitiveGroups = orderBy(tmpArray);
|
|
2964
2822
|
this.module.addOrganPartAddedCallback(this.organsAdded);
|
|
2965
|
-
this.module.graphicsHighlight.selectColour = 0x444444;
|
|
2966
2823
|
},
|
|
2967
2824
|
destroyed: function destroyed() {
|
|
2968
2825
|
this.sortedPrimitiveGroups = undefined;
|
|
@@ -2988,55 +2845,47 @@ external_vue_default.a.use(row_default.a);
|
|
|
2988
2845
|
/**
|
|
2989
2846
|
* Select a region by its name.
|
|
2990
2847
|
*/
|
|
2991
|
-
changeActiveByName: function changeActiveByName(name) {
|
|
2848
|
+
changeActiveByName: function changeActiveByName(name, propagate) {
|
|
2992
2849
|
var targetObject = this.getFirstZincObjectWithGroupName(name);
|
|
2993
2850
|
|
|
2994
2851
|
if (targetObject && targetObject.getVisibility()) {
|
|
2995
2852
|
this.activeRegion = name;
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
* @property {object} target selected object.
|
|
3000
|
-
*/
|
|
3001
|
-
|
|
3002
|
-
this.$emit("object-selected", targetObject);
|
|
2853
|
+
this.$emit("object-selected", targetObject, propagate);
|
|
2854
|
+
} else {
|
|
2855
|
+
this.removeActive(propagate);
|
|
3003
2856
|
}
|
|
3004
2857
|
|
|
3005
|
-
this.removeHover();
|
|
2858
|
+
this.removeHover(propagate);
|
|
3006
2859
|
},
|
|
3007
2860
|
|
|
3008
2861
|
/**
|
|
3009
2862
|
* Hover a region by its name.
|
|
3010
2863
|
*/
|
|
3011
|
-
changeHoverByName: function changeHoverByName(name) {
|
|
2864
|
+
changeHoverByName: function changeHoverByName(name, propagate) {
|
|
3012
2865
|
var targetObject = this.getFirstZincObjectWithGroupName(name);
|
|
3013
2866
|
|
|
3014
2867
|
if (targetObject) {
|
|
3015
2868
|
this.hoverRegion = name;
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
* @property {object} target hovered object.
|
|
3020
|
-
*/
|
|
3021
|
-
|
|
3022
|
-
this.$emit("object-hovered", targetObject);
|
|
2869
|
+
this.$emit("object-hovered", targetObject, propagate);
|
|
2870
|
+
} else {
|
|
2871
|
+
this.removeHover(propagate);
|
|
3023
2872
|
}
|
|
3024
2873
|
},
|
|
3025
2874
|
|
|
3026
2875
|
/**
|
|
3027
2876
|
* Unselect the current selected region.
|
|
3028
2877
|
*/
|
|
3029
|
-
removeActive: function removeActive() {
|
|
2878
|
+
removeActive: function removeActive(propagate) {
|
|
3030
2879
|
this.activeRegion = "";
|
|
3031
|
-
this.$emit("object-selected", undefined);
|
|
2880
|
+
this.$emit("object-selected", undefined, propagate);
|
|
3032
2881
|
},
|
|
3033
2882
|
|
|
3034
2883
|
/**
|
|
3035
2884
|
* Unselect the current hover region.
|
|
3036
2885
|
*/
|
|
3037
|
-
removeHover: function removeHover() {
|
|
2886
|
+
removeHover: function removeHover(propagate) {
|
|
3038
2887
|
this.hoverRegion = "";
|
|
3039
|
-
this.$emit("object-hovered", undefined);
|
|
2888
|
+
this.$emit("object-hovered", undefined, propagate);
|
|
3040
2889
|
},
|
|
3041
2890
|
|
|
3042
2891
|
/**
|
|
@@ -3084,11 +2933,11 @@ external_vue_default.a.use(row_default.a);
|
|
|
3084
2933
|
}
|
|
3085
2934
|
},
|
|
3086
2935
|
checkboxHover: function checkboxHover(name) {
|
|
3087
|
-
this.changeHoverByName(name);
|
|
2936
|
+
this.changeHoverByName(name, true);
|
|
3088
2937
|
},
|
|
3089
2938
|
itemClicked: function itemClicked(name, event) {
|
|
3090
2939
|
if (!(event.target.classList.contains("el-checkbox__inner") || event.target.classList.contains("el-checkbox__original"))) {
|
|
3091
|
-
this.changeActiveByName(name);
|
|
2940
|
+
this.changeActiveByName(name, true);
|
|
3092
2941
|
event.preventDefault();
|
|
3093
2942
|
}
|
|
3094
2943
|
},
|
|
@@ -3115,11 +2964,11 @@ external_vue_default.a.use(row_default.a);
|
|
|
3115
2964
|
|
|
3116
2965
|
if (event == false) {
|
|
3117
2966
|
if (this.activeRegion === item) {
|
|
3118
|
-
this.removeActive();
|
|
2967
|
+
this.removeActive(true);
|
|
3119
2968
|
}
|
|
3120
2969
|
|
|
3121
2970
|
if (this.hoverRegion === item) {
|
|
3122
|
-
this.removeHover();
|
|
2971
|
+
this.removeHover(true);
|
|
3123
2972
|
}
|
|
3124
2973
|
}
|
|
3125
2974
|
},
|
|
@@ -3170,8 +3019,8 @@ external_vue_default.a.use(row_default.a);
|
|
|
3170
3019
|
});
|
|
3171
3020
|
// CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=script&lang=js&
|
|
3172
3021
|
/* harmony default export */ var components_TraditionalControlsvue_type_script_lang_js_ = (TraditionalControlsvue_type_script_lang_js_);
|
|
3173
|
-
// EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=0&id=
|
|
3174
|
-
var
|
|
3022
|
+
// EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=0&id=335c5764&scoped=true&lang=scss&
|
|
3023
|
+
var TraditionalControlsvue_type_style_index_0_id_335c5764_scoped_true_lang_scss_ = __webpack_require__("3a59");
|
|
3175
3024
|
|
|
3176
3025
|
// EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=1&lang=css&
|
|
3177
3026
|
var TraditionalControlsvue_type_style_index_1_lang_css_ = __webpack_require__("add8");
|
|
@@ -3188,11 +3037,11 @@ var TraditionalControlsvue_type_style_index_1_lang_css_ = __webpack_require__("a
|
|
|
3188
3037
|
|
|
3189
3038
|
var TraditionalControls_component = normalizeComponent(
|
|
3190
3039
|
components_TraditionalControlsvue_type_script_lang_js_,
|
|
3191
|
-
|
|
3192
|
-
|
|
3040
|
+
TraditionalControlsvue_type_template_id_335c5764_scoped_true_render,
|
|
3041
|
+
TraditionalControlsvue_type_template_id_335c5764_scoped_true_staticRenderFns,
|
|
3193
3042
|
false,
|
|
3194
3043
|
null,
|
|
3195
|
-
"
|
|
3044
|
+
"335c5764",
|
|
3196
3045
|
null
|
|
3197
3046
|
|
|
3198
3047
|
)
|
|
@@ -3495,9 +3344,9 @@ external_vue_default.a.use(slider_default.a);
|
|
|
3495
3344
|
external_vue_default.a.use(tab_pane_default.a);
|
|
3496
3345
|
external_vue_default.a.use(tabs_default.a);
|
|
3497
3346
|
|
|
3498
|
-
var OrgansViewer = __webpack_require__("
|
|
3347
|
+
var OrgansViewer = __webpack_require__("53d7").OrgansViewer;
|
|
3499
3348
|
|
|
3500
|
-
var EventNotifier = __webpack_require__("
|
|
3349
|
+
var EventNotifier = __webpack_require__("9b21").EventNotifier;
|
|
3501
3350
|
/**
|
|
3502
3351
|
* A vue component of the scaffold viewer.
|
|
3503
3352
|
*
|
|
@@ -3510,8 +3359,8 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3510
3359
|
name: "ScaffoldVuer",
|
|
3511
3360
|
components: {
|
|
3512
3361
|
OpacityControls: OpacityControls,
|
|
3513
|
-
|
|
3514
|
-
|
|
3362
|
+
MapSvgIcon: svg_sprite_["MapSvgIcon"],
|
|
3363
|
+
MapSvgSpriteColor: svg_sprite_["MapSvgSpriteColor"],
|
|
3515
3364
|
TraditionalControls: TraditionalControls
|
|
3516
3365
|
},
|
|
3517
3366
|
props: {
|
|
@@ -3774,7 +3623,6 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3774
3623
|
this.$module.addOrganPartAddedCallback(this.organsAdded);
|
|
3775
3624
|
this.$module.initialiseRenderer(this.$refs.display);
|
|
3776
3625
|
this.toggleRendering(this.render);
|
|
3777
|
-
this.$module.toolTip = undefined;
|
|
3778
3626
|
this.ro = new ResizeObserver(this.adjustLayout).observe(this.$refs.scaffoldContainer);
|
|
3779
3627
|
this.defaultRate = this.$module.getPlayRate();
|
|
3780
3628
|
},
|
|
@@ -3934,6 +3782,13 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3934
3782
|
}
|
|
3935
3783
|
}
|
|
3936
3784
|
},
|
|
3785
|
+
getRendererInfo: function getRendererInfo() {
|
|
3786
|
+
if (this.$module.zincRenderer) {
|
|
3787
|
+
return this.$module.zincRenderer.getThreeJSRenderer().info;
|
|
3788
|
+
}
|
|
3789
|
+
|
|
3790
|
+
return undefined;
|
|
3791
|
+
},
|
|
3937
3792
|
|
|
3938
3793
|
/**
|
|
3939
3794
|
* Function used to rotate the scene.
|
|
@@ -3957,12 +3812,12 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3957
3812
|
*/
|
|
3958
3813
|
eventNotifierCallback: function eventNotifierCallback(event) {
|
|
3959
3814
|
if (event.eventType == 1) {
|
|
3960
|
-
if (this.
|
|
3815
|
+
if (this.$refs.traditionalControl) {
|
|
3961
3816
|
if (event.identifiers[0]) {
|
|
3962
3817
|
var id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
|
|
3963
|
-
this.
|
|
3818
|
+
this.$refs.traditionalControl.changeActiveByName(id, true);
|
|
3964
3819
|
} else {
|
|
3965
|
-
this.
|
|
3820
|
+
this.$refs.traditionalControl.removeActive(true);
|
|
3966
3821
|
}
|
|
3967
3822
|
}
|
|
3968
3823
|
/**
|
|
@@ -3975,12 +3830,12 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
3975
3830
|
|
|
3976
3831
|
this.$emit("scaffold-selected", event.identifiers);
|
|
3977
3832
|
} else if (event.eventType == 2) {
|
|
3978
|
-
if (this.
|
|
3833
|
+
if (this.$refs.traditionalControl) {
|
|
3979
3834
|
if (event.identifiers[0]) {
|
|
3980
3835
|
var _id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
|
|
3981
3836
|
|
|
3982
|
-
this.
|
|
3983
|
-
} else this.
|
|
3837
|
+
this.$refs.traditionalControl.changeHoverByName(_id, true);
|
|
3838
|
+
} else this.$refs.traditionalControl.removeHover(true);
|
|
3984
3839
|
}
|
|
3985
3840
|
/**
|
|
3986
3841
|
* Triggers when an object has been highlighted
|
|
@@ -4027,30 +3882,48 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
4027
3882
|
},
|
|
4028
3883
|
|
|
4029
3884
|
/**
|
|
4030
|
-
* Set the selected zinc object
|
|
3885
|
+
* A callback used by children components. Set the selected zinc object
|
|
4031
3886
|
*
|
|
4032
3887
|
* @param {object} object Zinc object
|
|
4033
3888
|
*/
|
|
4034
|
-
objectSelected: function objectSelected(object) {
|
|
3889
|
+
objectSelected: function objectSelected(object, propagate) {
|
|
4035
3890
|
if (object !== this.selectedObject) {
|
|
4036
3891
|
this.selectedObject = object;
|
|
4037
3892
|
this.$refs.opacityControl.setObject(this.selectedObject);
|
|
4038
|
-
if (object) this.$module.setSelectedByZincObject(object,
|
|
3893
|
+
if (object) this.$module.setSelectedByZincObject(object, propagate);else this.$module.setSelectedByObjects([], propagate);
|
|
4039
3894
|
}
|
|
4040
3895
|
},
|
|
4041
3896
|
|
|
4042
3897
|
/**
|
|
4043
|
-
* Set the highlighted zinc object
|
|
3898
|
+
* A callback used by children components. Set the highlighted zinc object
|
|
4044
3899
|
*
|
|
4045
3900
|
* @param {object} object Zinc object
|
|
4046
3901
|
*/
|
|
4047
|
-
objectHovered: function objectHovered(object) {
|
|
3902
|
+
objectHovered: function objectHovered(object, propagate) {
|
|
4048
3903
|
if (object !== this.hoveredObject) {
|
|
4049
3904
|
this.hoveredObject = object;
|
|
4050
|
-
if (object) this.$module.setHighlightedByZincObject(object,
|
|
3905
|
+
if (object) this.$module.setHighlightedByZincObject(object, propagate);else this.$module.setHighlightedByObjects([], propagate);
|
|
4051
3906
|
}
|
|
4052
3907
|
},
|
|
4053
3908
|
|
|
3909
|
+
/**
|
|
3910
|
+
* Set the selected by name.
|
|
3911
|
+
*
|
|
3912
|
+
* @param {name} name Name of the region
|
|
3913
|
+
*/
|
|
3914
|
+
changeActiveByName: function changeActiveByName(name, propagate) {
|
|
3915
|
+
if (name === undefined) this.$refs.traditionalControl.removeActive(propagate);else this.$refs.traditionalControl.changeActiveByName(name, propagate);
|
|
3916
|
+
},
|
|
3917
|
+
|
|
3918
|
+
/**
|
|
3919
|
+
* Set the highlighted by name.
|
|
3920
|
+
*
|
|
3921
|
+
* @param {name} name Name of the region
|
|
3922
|
+
*/
|
|
3923
|
+
changeHighlightedByName: function changeHighlightedByName(name, propagate) {
|
|
3924
|
+
if (name === undefined) this.$refs.traditionalControl.removeHover(propagate);else this.$refs.traditionalControl.changeHoverByName(name, propagate);
|
|
3925
|
+
},
|
|
3926
|
+
|
|
4054
3927
|
/**
|
|
4055
3928
|
* Start the animation.
|
|
4056
3929
|
*
|
|
@@ -4213,6 +4086,9 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
4213
4086
|
}
|
|
4214
4087
|
}
|
|
4215
4088
|
},
|
|
4089
|
+
exportGLTF: function exportGLTF(binary) {
|
|
4090
|
+
return this.$module.scene.exportGLTF(binary);
|
|
4091
|
+
},
|
|
4216
4092
|
|
|
4217
4093
|
/**
|
|
4218
4094
|
* Function used for reading in new scaffold metadata and a custom
|
|
@@ -4293,8 +4169,8 @@ var EventNotifier = __webpack_require__("549c").EventNotifier;
|
|
|
4293
4169
|
});
|
|
4294
4170
|
// CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=script&lang=js&
|
|
4295
4171
|
/* harmony default export */ var components_ScaffoldVuervue_type_script_lang_js_ = (ScaffoldVuervue_type_script_lang_js_);
|
|
4296
|
-
// EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=
|
|
4297
|
-
var
|
|
4172
|
+
// EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=023c058f&scoped=true&lang=scss&
|
|
4173
|
+
var ScaffoldVuervue_type_style_index_0_id_023c058f_scoped_true_lang_scss_ = __webpack_require__("1f67");
|
|
4298
4174
|
|
|
4299
4175
|
// EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=1&lang=scss&
|
|
4300
4176
|
var ScaffoldVuervue_type_style_index_1_lang_scss_ = __webpack_require__("642d");
|
|
@@ -4315,7 +4191,7 @@ var ScaffoldVuer_component = normalizeComponent(
|
|
|
4315
4191
|
staticRenderFns,
|
|
4316
4192
|
false,
|
|
4317
4193
|
null,
|
|
4318
|
-
"
|
|
4194
|
+
"023c058f",
|
|
4319
4195
|
null
|
|
4320
4196
|
|
|
4321
4197
|
)
|