Skip to content

Commit

Permalink
Merge 4091061 into ad09edf
Browse files Browse the repository at this point in the history
  • Loading branch information
alan-wu committed Aug 24, 2020
2 parents ad09edf + 4091061 commit aa6fda8
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 63 deletions.
19 changes: 7 additions & 12 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "physiomeportal",
"version": "0.4.21",
"version": "0.4.22",
"description": "Physiome Portal",
"main": "build/physiomeportal.js",
"files": [
Expand Down Expand Up @@ -63,6 +63,6 @@
"polyfill-array-includes": "^2.0.0",
"query-string": "^5.1.1",
"webpack-jquery-ui": "^2.0.1",
"zincjs": "^0.34.0"
"zincjs": "^0.35.0"
}
}
31 changes: 1 addition & 30 deletions src/modules/RendererModule.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,20 +100,7 @@ RendererModule.prototype.setHighlightedByObjects = function(objects, propagateCh

RendererModule.prototype.setHighlightedByZincObject = function(
zincObject, propagateChanges) {
if (zincObject && zincObject.isGlyphset) {
var objects = [];
zincObject.forEachGlyph(addGlyphToArray(objects));
var changed = this.graphicsHighlight.setHighlighted(objects);
if (changed && propagateChanges) {
var eventType = require("../utilities/eventNotifier").EVENT_TYPE.HIGHLIGHTED;
var annotations = this.getAnnotationsFromObjects([objects[0]]);
this.publishChanges(annotations, eventType);
}
return changed;
}
else {
return this.setHighlightedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
}
}

RendererModule.prototype.setupLiveCoordinates = function(zincObjects) {
Expand Down Expand Up @@ -168,23 +155,7 @@ RendererModule.prototype.setSelectedByObjects = function(

RendererModule.prototype.setSelectedByZincObject = function(
zincObject, propagateChanges) {
if (zincObject && zincObject.isGlyphset) {
var objects = [];
zincObject.forEachGlyph(addGlyphToArray(objects));
var changed = this.graphicsHighlight.setSelected(objects);
if (changed) {
this.setupLiveCoordinates([zincObject]);
if (propagateChanges) {
var eventType = require("../utilities/eventNotifier").EVENT_TYPE.SELECTED;
var annotations = this.getAnnotationsFromObjects([objects[0]]);
this.publishChanges(annotations, eventType);
}
}
return changed;
}
else {
return this.setSelectedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
}
return this.setSelectedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
}

var addGlyphToArray = function(objects) {
Expand Down
59 changes: 40 additions & 19 deletions src/utilities/graphicsHighlight.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,16 @@ exports.GraphicsHighlight = function() {
}
return unmatchingObjects;
}


this.setHighlighted = function(objects) {
var previousHighlightedObjects = currentHighlightedObjects;
_this.resetHighlighted();
// Selected object cannot be highlighted
var array = getUnmatchingObjects(objects, currentSelectedObjects);
for (var i = 0; i < array.length; i++) {
if (array[i] && array[i].material && array[i].material.emissive)
array[i].material.emissive.setHex(_this.highlightColour);
var fullList = getFullListOfObjects(array);
for (var i = 0; i < fullList.length; i++) {
if (fullList[i] && fullList[i].material && fullList[i].material.emissive)
fullList[i].material.emissive.setHex(_this.highlightColour);
}
currentHighlightedObjects = array;
return isDifferent(currentHighlightedObjects, previousHighlightedObjects);
Expand All @@ -78,33 +78,54 @@ exports.GraphicsHighlight = function() {
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);
var fullList = getFullListOfObjects(objects);
for (var i = 0; i < fullList.length; i++) {
if (fullList[i] && fullList[i].material && fullList[i].material.emissive)
fullList[i].material.emissive.setHex(_this.selectColour);
}
currentSelectedObjects = objects;
return isDifferent(currentSelectedObjects, previousHSelectedObjects);
}

var getFullListOfObjects = function(objects) {
let fullList = [];
for (var i = 0; i < objects.length; i++) {
if (objects[i].userData.isGlyphset) {
var children = objects[i].children;
for (var j = 0; j < children.length; j++) {
for (var k = 0; k < children[j].children.length; k++) {
var graphicsObject = children[j].children[k];
if (graphicsObject.type == "Mesh" && graphicsObject.material)
fullList.push(graphicsObject);
}
}
} else if (objects[i].material)
fullList.push(objects[i]);
}
return fullList;
}

this.resetHighlighted = function() {
for (var i = 0; i < currentHighlightedObjects.length; i++) {
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;
let fullList = getFullListOfObjects(currentHighlightedObjects);
for (var i = 0; i < fullList.length; i++) {
if (fullList[i] && fullList[i].material) {
if (fullList[i].material.emissive)
fullList[i].material.emissive.setHex(_this.originalColour);
if (fullList[i].material.depthFunc)
fullList[i].material.depthFunc = THREE.LessEqualDepth;
}
}
currentHighlightedObjects = [];
}

this.resetSelected = function() {
for (var i = 0; i < currentSelectedObjects.length; i++) {
if (currentSelectedObjects[i] && currentSelectedObjects[i].material) {
if (currentSelectedObjects[i].material.emissive)
currentSelectedObjects[i].material.emissive.setHex(_this.originalColour);
if (currentSelectedObjects[i].material.depthFunc)
currentSelectedObjects[i].material.depthFunc = THREE.LessEqualDepth;
let fullList = getFullListOfObjects(currentSelectedObjects);
for (var i = 0; i < fullList.length; i++) {
if (fullList[i] && fullList[i].material) {
if (fullList[i].material.emissive)
fullList[i].material.emissive.setHex(_this.originalColour);
if (fullList[i].material.depthFunc)
fullList[i].material.depthFunc = THREE.LessEqualDepth;
}
}
currentSelectedObjects = [];
Expand Down

0 comments on commit aa6fda8

Please sign in to comment.