Skip to content

Commit

Permalink
Merge 3357cd3 into cb489dd
Browse files Browse the repository at this point in the history
  • Loading branch information
alan-wu committed Aug 11, 2020
2 parents cb489dd + 3357cd3 commit 7b4d921
Show file tree
Hide file tree
Showing 7 changed files with 2,366 additions and 2,219 deletions.
3,043 changes: 1,448 additions & 1,595 deletions package-lock.json

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "physiomeportal",
"version": "0.4.18",
"version": "0.4.20",
"description": "Physiome Portal",
"main": "build/physiomeportal.js",
"files": [
Expand Down Expand Up @@ -39,30 +39,30 @@
},
"homepage": "http://alan-wu.github.io/MPB/",
"devDependencies": {
"@babel/core": "^7.4.0",
"@babel/preset-env": "^7.4.2",
"babel-loader": "^8.0.5",
"@babel/core": "^7.11.1",
"@babel/preset-env": "^7.11.0",
"babel-loader": "^8.1.0",
"babel-preset-minify": "^0.5.0",
"better-docs": "^1.0.0",
"better-docs": "^1.4.13",
"file-loader": "^1.1.11",
"html-loader": "^0.5.5",
"js-yaml": ">=3.13.1",
"js-yaml": "^3.14.0",
"raw-loader": "^0.5.1",
"style-loader": "^0.21.0",
"url-loader": "^1.0.1",
"webpack": "^4.6.0",
"webpack-cli": "^3.3.6",
"webpack": "^4.44.1",
"webpack-cli": "^3.3.12",
"webpack-node-externals": "^1.7.2"
},
"dependencies": {
"broadcast-channel": "^2.1.12",
"css-element-queries": "^1.2.0",
"css-element-queries": "^1.2.3",
"dialog-polyfill": "^0.4.10",
"jquery": "^3.4.1",
"lodash": "^4.17.14",
"jquery": "^3.5.1",
"lodash": "^4.17.19",
"polyfill-array-includes": "^2.0.0",
"query-string": "^5.1.1",
"webpack-jquery-ui": "^2.0.1",
"zincjs": "^0.33.12"
"zincjs": "^0.34.0"
}
}
14 changes: 4 additions & 10 deletions src/modules/RendererModule.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,21 +43,15 @@ RendererModule.prototype = Object.create((require('./BaseModule').BaseModule).pr
*/
RendererModule.prototype.getIntersectedObject = function(intersects) {
if (intersects) {
var intersected = undefined;
for (var i = 0; i < intersects.length; i++) {
if (intersects[i] !== undefined) {
if (intersects[i].object) {
if (intersects[i].object.name)
if (intersected === undefined)
intersected = intersects[i];
if (intersects[i].object.userData &&
(intersects[i].object.userData.isGlyph)) {
return intersects[i];
}
if (intersects[i].object &&
intersects[i].object.userData &&
intersects[i].object.userData.isZincObject) {
return intersects[i];
}
}
}
return intersected;
}
return undefined;
}
Expand Down
66 changes: 40 additions & 26 deletions src/modules/organsRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,20 +148,29 @@ var OrgansViewer = function(ModelsLoaderIn) {
return vector;T
}

var getIntersectedID = function(intersected) {
var getIdObjectFromIntersect = function(intersected) {
var id = undefined;
var intersectedObject = undefined;
if (intersected !== undefined) {
if (intersected.object.name) {
id = intersected.object.name;
_this.setHighlightedByObjects([intersected.object], true);
if (intersected.object.userData &&
intersected.object.userData.isMarker) {
intersectedObject = intersected.object.userData.parent.morph;
} else {
var annotations = _this.getAnnotationsFromObjects([intersected.object]);
if (annotations && annotations[0]) {
id = annotations[0].data.group;
intersectedObject = intersected.object;
}
if (intersectedObject) {
if (intersectedObject.name) {
id = intersectedObject.name;
} else {
var annotations = _this.getAnnotationsFromObjects(
[intersectedObject]);
if (annotations && annotations[0]) {
id = annotations[0].data.group;
}
}
}
}
return id;
return {"id":id, "object":intersectedObject};
}

/**
Expand All @@ -174,17 +183,22 @@ var OrgansViewer = function(ModelsLoaderIn) {
var _pickingCallback = function() {
return function(intersects, window_x, window_y) {
var intersected = _this.getIntersectedObject(intersects);
var id = getIntersectedID(intersected);
if (id) {
var idObject = getIdObjectFromIntersect(intersected);
if (idObject.id) {
if (_this.toolTip !== undefined) {
_this.toolTip.setText(id);
_this.toolTip.setText(idObject.id);
_this.toolTip.show(window_x, window_y);
}
_this.displayMessage(intersected.object.name + " selected.");
if (intersected.object.name)
_this.setSelectedByObjects([intersected.object], true);
else if (intersected.object.userData.isGlyph)
_this.setSelectedByZincObject(intersected.object.userData.getGlyphset(), true);
_this.displayMessage(idObject.object.name + " selected.");

if (idObject.object.userData.isGlyph) {
if (idObject.object.name)
_this.setSelectedByObjects([idObject.object], true);
else
_this.setSelectedByZincObject(idObject.object.userData.getGlyphset(), true);
} else {
_this.setSelectedByObjects([idObject.object], true);
}
return;
} else {
if (_this.toolTip !== undefined) {
Expand All @@ -204,14 +218,14 @@ var OrgansViewer = function(ModelsLoaderIn) {
var _hoverCallback = function() {
return function(intersects, window_x, window_y) {
var intersected = _this.getIntersectedObject(intersects);
var id = getIntersectedID(intersected);
if (id) {
var idObject = getIdObjectFromIntersect(intersected);
if (idObject.id) {
_this.displayArea.style.cursor = "pointer";
if (_this.toolTip !== undefined) {
_this.toolTip.setText(id);
_this.toolTip.setText(idObject.id);
_this.toolTip.show(window_x, window_y);
}
_this.setHighlightedByObjects([intersected.object], true);
_this.setHighlightedByObjects([idObject.object], true);
return;
}
else {
Expand Down Expand Up @@ -403,13 +417,13 @@ var OrgansViewer = function(ModelsLoaderIn) {
}

var addOrganPart = function(systemName, partName, useDefautColour, zincObject) {
for (var i = 0; i < organPartAddedCallbacks.length;i++) {
organPartAddedCallbacks[i](zincObject.groupName, _this.scene.isTimeVarying(), zincObject);
}
if (useDefautColour)
modelsLoader.setGeometryColour(zincObject, systemName, partName);
addOrganPartToSceneData(zincObject);
if (zincObject.groupName) {
for (var i = 0; i < organPartAddedCallbacks.length;i++) {
organPartAddedCallbacks[i](zincObject.groupName, _this.scene.isTimeVarying());
}
if (useDefautColour)
modelsLoader.setGeometryColour(zincObject, systemName, partName);
addOrganPartToSceneData(zincObject);
_this.displayMessage(zincObject.groupName + " loaded.");
} else {
_this.displayMessage("Resource loaded.");
Expand Down
38 changes: 20 additions & 18 deletions src/utilities/graphicsHighlight.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,29 @@ exports.GraphicsHighlight = function() {
currentHighlightedObjects = array;
return isDifferent(currentHighlightedObjects, previousHighlightedObjects);
}

this.setSelected = function(objects) {
// first find highlighted object that are not selected
var previousHSelectedObjects = currentSelectedObjects;
var array = getUnmatchingObjects(currentHighlightedObjects, objects);
currentHighlightedObjects = array;
_this.resetSelected();
for (var i = 0; i < objects.length; i++) {
if (objects[i] && objects[i].material && objects[i].material.emissive)
objects[i].material.emissive.setHex(_this.selectColour);
}
currentSelectedObjects = objects;
return isDifferent(currentSelectedObjects, previousHSelectedObjects);
}

this.resetHighlighted = function() {
for (var i = 0; i < currentHighlightedObjects.length; i++) {
if (currentHighlightedObjects[i].material.emissive)
currentHighlightedObjects[i].material.emissive.setHex(_this.originalColour);
if (currentHighlightedObjects[i].material.depthFunc)
currentHighlightedObjects[i].material.depthFunc = THREE.LessEqualDepth;
if (currentHighlightedObjects[i] && currentHighlightedObjects[i].material) {
if (currentHighlightedObjects[i].material.emissive)
currentHighlightedObjects[i].material.emissive.setHex(_this.originalColour);
if (currentHighlightedObjects[i].material.depthFunc)
currentHighlightedObjects[i].material.depthFunc = THREE.LessEqualDepth;
}
}
currentHighlightedObjects = [];
}
Expand All @@ -93,20 +109,6 @@ exports.GraphicsHighlight = function() {
}
currentSelectedObjects = [];
}

this.setSelected = function(objects) {
// first find highlighted object that are not selected
var previousHSelectedObjects = currentSelectedObjects;
var array = getUnmatchingObjects(currentHighlightedObjects, objects);
currentHighlightedObjects = array;
_this.resetSelected();
for (var i = 0; i < objects.length; i++) {
if (objects[i] && objects[i].material && objects[i].material.emissive)
objects[i].material.emissive.setHex(_this.selectColour);
}
currentSelectedObjects = objects;
return isDifferent(currentSelectedObjects, previousHSelectedObjects);
}

this.getSelected = function() {
return currentSelectedObjects;
Expand Down

0 comments on commit 7b4d921

Please sign in to comment.