Skip to content

Commit

Permalink
Merge 93c5042 into 5e18288
Browse files Browse the repository at this point in the history
  • Loading branch information
alan-wu committed Apr 10, 2020
2 parents 5e18288 + 93c5042 commit 9ce088d
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 26 deletions.
8 changes: 4 additions & 4 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.15",
"version": "0.4.16",
"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.33.9"
"zincjs": "^0.33.10"
}
}
70 changes: 57 additions & 13 deletions src/modules/RendererModule.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ var RendererModule = function() {
this.displayArea = undefined;
this.graphicsHighlight = new (require("../utilities/graphicsHighlight").GraphicsHighlight)();
this.zincRenderer = null;
this.selectedScreenCoordinates = new THREE.Vector3();
this.selectedCenter = undefined;
}

RendererModule.prototype = Object.create((require('./BaseModule').BaseModule).prototype);
Expand Down Expand Up @@ -99,33 +101,75 @@ RendererModule.prototype.setHighlightedByObjects = function(objects, propagateCh
return changed;
}

RendererModule.prototype.setSelectedByObjects = function(objects, propagateChanges) {
RendererModule.prototype.setupLiveCoordinates = function(zincObjects) {
if (zincObjects && (zincObjects.length > 0)) {
var boundingBox = this.scene.getBoundingBoxOfZincObjects(zincObjects);
let newSelectedCenter = new THREE.Vector3();
boundingBox.getCenter(newSelectedCenter);
if (this.selectedCenter == undefined)
this.selectedCenter = newSelectedCenter;
else {
this.selectedCenter.x = newSelectedCenter.x;
this.selectedCenter.y = newSelectedCenter.y;
}
} else {
this.selectedCenter = undefined;
}
}

RendererModule.prototype.objectsToZincObjects = function(objects) {
var zincObjects = [];
for (var i = 0; i < objects.length; i++) {
var zincObject = objects[i].userData;
if (zincObject) {
if (zincObject.isGlyph || zincObject.isGlyphset) {
var glyphset = zincObject;
if (zincObject.isGlyph)
glyphset = zincObject.getGlyphset();
zincObjects. push(glyphset);
} else {
zincObjects. push(zincObject);
}
}
}
return zincObjects;
}


RendererModule.prototype.setSelectedByObjects = function(
objects, propagateChanges) {
var changed = this.graphicsHighlight.setSelected(objects);
if (changed && propagateChanges) {
var eventType = require("../utilities/eventNotifier").EVENT_TYPE.SELECTED;
var annotations = this.getAnnotationsFromObjects(objects);
this.publishChanges(annotations, eventType);
if (changed) {
var zincObjects = this.objectsToZincObjects(objects);
this.setupLiveCoordinates(zincObjects);
if (propagateChanges) {
var eventType = require("../utilities/eventNotifier").EVENT_TYPE.SELECTED;
var annotations = this.getAnnotationsFromObjects(objects);
this.publishChanges(annotations, eventType);
}
}
return changed;
}

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


}

var addGlyphToArray = function(objects) {
Expand Down
31 changes: 24 additions & 7 deletions src/modules/organsRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,27 @@ var OrgansViewer = function(ModelsLoaderIn) {
if (_this.sceneData.nerveMap && _this.sceneData.nerveMap.additionalReader)
_this.sceneData.nerveMap.additionalReader.setTime(currentTime / 3000.0);
_this.sceneData.currentTime = currentTime / 30.0;
}
}

var postRenderSelectedCoordinatesUpdate = function() {
if (_this.selectedCenter) {
const vector = new THREE.Vector3();
vector.copy(_this.selectedCenter);
var coord = _this.scene.vectorToScreenXY(vector);
_this.selectedScreenCoordinates.x = coord.x;
_this.selectedScreenCoordinates.y = coord.y;
}
}

var preRenderTimeUpdateCallback = function() {
var preRenderUpdateCallback = function() {
return function() {
preRenderTimeUpdate();
}
}

var postRenderUpdateCallback = function() {
return function() {
preRenderTimeUpdate();
postRenderSelectedCoordinatesUpdate();
}
}

Expand Down Expand Up @@ -129,7 +145,7 @@ var OrgansViewer = function(ModelsLoaderIn) {
vector.project(camera);
vector.x = ( vector.x * widthHalf ) + widthHalf;
vector.y = - ( vector.y * heightHalf ) + heightHalf;
return vector;
return vector;T
}

var getIntersectedID = function(intersected) {
Expand All @@ -142,7 +158,6 @@ var OrgansViewer = function(ModelsLoaderIn) {
var annotations = _this.getAnnotationsFromObjects([intersected.object]);
if (annotations && annotations[0]) {
id = annotations[0].data.group;
//_this.setHighlightedByObjects([intersected.object], true);
}
}
}
Expand Down Expand Up @@ -581,8 +596,10 @@ var OrgansViewer = function(ModelsLoaderIn) {
*/
var initialise = function() {
_this.initialiseRenderer(undefined);
if (_this.zincRenderer)
_this.zincRenderer.addPreRenderCallbackFunction(preRenderTimeUpdateCallback());
if (_this.zincRenderer) {
_this.zincRenderer.addPreRenderCallbackFunction(preRenderUpdateCallback());
_this.zincRenderer.addPostRenderCallbackFunction(postRenderUpdateCallback());
}
}

initialise();
Expand Down

0 comments on commit 9ce088d

Please sign in to comment.