diff --git a/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js b/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js index 9ba92cd..b9cd3e2 100644 --- a/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js +++ b/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js @@ -1365,7 +1365,7 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo } $scope.highLightBodyBasedOnIcolor = function (RGBColor) { - + console.log(' $scope.highLightBodyBasedOnIcolor') //2. Find Actul Term No Based on Icolor. var ActualTermNo = $scope.getActualTermNumber(RGBColor); @@ -1376,259 +1376,76 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo //4. $scope.machedTermNoLocation = []; - // console.log(' TermList.length= ' + TermList.length) - - + - //var dataForthisBR = new jinqJs() - // .from($scope.ColoredCanvasData) - // .where('bodyRegionId == ' + 1) - // .select(); - //var coloredImageData = dataForthisBR.coloredImageData; - - - var worker = new Worker('term-number-wp.js'); + var n = $scope.MaskCanvasData.length; + // console.log('$scope.MaskCanvasData.length= ' + n) // console.log('Start time taken for term: ' + TermList[i]._TermNumber + 'in posting: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); - worker.postMessage({ - - 'termList': TermList, - 'maskCanvasData': $scope.MaskCanvasData, - 'coloredImageCanvasList': $rootScope.coloredImageCanvasList, - 'coloredImageMRCanvasList': $rootScope.coloredImageMRCanvasList, - 'grayImageDataList': $rootScope.grayImageDataList, - 'grayImageMRDataList': $rootScope.grayImageMRDataList - - }); - - //} - - worker.onmessage = function (e) { - console.log('callback: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); - - // alert(e.data.value + '....name= ' + e.data.name) - var updatedData = e.data.value; - debugger; - for (var i = 1; i <= updatedData.length; i++) { - - var grayCanvasID = 'imageCanvas' + i; - var grayCanvas = document.getElementById(grayCanvasID); - var grayCanvasContext = grayCanvas.getContext("2d"); - - - - grayCanvasContext.putImageData(updatedData[i], 0, 0); - } - //var upadteddata = e.data.value; - //var bodyRegionId = e.data.bodyRegionId; - - - - - // $rootScope.grayImageDataList[bodyRegionId - 1] = upadteddata; - - }; - worker.onerror = function (e) { - alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); - }; - } - - - - //$scope.highLightBodyBasedOnIcolor = function (RGBColor) { - - // $scope.previousSelectedTermList.length = 0; - - // var RGBColor = $scope.previousSelectedTermList[i]; - - // //2. Find Actul Term No Based on Icolor. - // var ActualTermNo = $scope.getActualTermNumber(RGBColor); - - // //3. Find Term No List Based on ActualTermNo - // var TermList = $scope.getTermNumberList(ActualTermNo); - - // if ($scope.previousSelectedTermList.length > 0) { - - // var worker = new Worker('term-number-wp.js'); - - - // for (var i = 0; i < $scope.previousSelectedTermList.length; i++) { - // $scope.machedTermNoLocation = []; - // for (var i = 0; i < TermList.length; i++) { - - // var termNumber = parseInt(TermList[i]._TermNumber); - - // // //Match Term No List in each bodyRegion - // // $scope.getLocationsForMatchedTermsInWholeBody(termNumber); - - // worker.postMessage({ - // 'cmd': 'abc', - // 'value': termNumber - // }); - // } - - // } - - // worker.onmessage = function (e) { - // var msg = e.data.msg1; - // }; - // worker.onerror = function (e) { - // alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); - // }; - // } - // else { + // debugger + for (var x = 0; x < n; x++) { + console.log('$scope.MaskCanvasData.length= ' + n) - // $scope.machedTermNoLocation = []; - // for (var i = 0; i < TermList.length; i++) { + var bodyRegionId = $scope.MaskCanvasData[x].bodyRegionId; + var canvasId = $scope.MaskCanvasData[x].canvasId; + var maskData = $scope.MaskCanvasData[x].maskData; - // var termNumber = parseInt(TermList[i]._TermNumber); + var coloredImageDataVar = $rootScope.coloredImageCanvasList[bodyRegionId - 1]; + var grayImageDataVar = $rootScope.grayImageDataList[bodyRegionId - 1]; - // var worker = new Worker('term-number-wp.js'); + var worker = new Worker('term-number-wp.js'); - // //start the worker - // worker.postMessage({ - // 'cmd': 'abc', - // 'value': termNumber - // }); + console.log('for bodyRegionId = ' + bodyRegionId+ ', time: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")) + worker.postMessage({ - // worker.onmessage = function (e) { - // var msg = e.data.msg; - // }; - // worker.onerror = function (e) { - // alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); - // }; - // //Match Term No List in each bodyRegion - // //$scope.getLocationsForMatchedTermsInWholeBody(termNumber); - // } - - - // } - //} - - - - $scope.fillMatchedTerm = function (grayImageDataVar, BrId) { - console.log('Start time taken in fillMatchedTerm: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); - - //for (var x = 0; x < $scope.ColoredImageSRC.length; x++) { - // // alert('called for bodyRegionId: ' + $scope.MaskImageSRC[x].bodyRegionId); - // var bodyRegionId = $scope.ColoredImageSRC[x].bodyRegionId; - - // { - - // var scaledWidth = $scope.ColoredImageSRC[x].Width; - // var scaledHeight = $scope.ColoredImageSRC[x].Height; - // //var maskImg = $scope.ColoredImageSRC[x].SRC; - - - // var coloredImg = $scope.ColoredImageSRC[x].SRC; - - // var maskImg = $scope.GetMaskImageSource(coloredImg); - - - // var scledX = $scope.ColoredImageSRC[x].x; - // var scledY = $scope.ColoredImageSRC[x].y; - - - // // 1. get mask canvas for this body region. - // //var maskCanvasID; - // //if ($scope.ColoredImageSRC[x].haveMirror == 'true') { - // // maskCanvasID = 'imageCanvas' + bodyRegionId + '_MR_mci'; - // //} - // //else { - // // maskCanvasID = 'imageCanvas' + bodyRegionId + '_mci'; - - // //} - // //var maskCanvas = document.getElementById(maskCanvasID); - // //var maskCanvasContext = maskCanvas.getContext("2d"); - // //var maskImgData = maskCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); - - // // 2. get coloured canvas for this body region. - - - // var coloredImageDataVar; - // var coloredImageDataMRVar - - // if ($scope.ColoredImageSRC[x].haveMirror == 'true') { - - // coloredImageDataVar = $rootScope.coloredImageMRCanvasList[parseInt(bodyRegionId)]; - // } - // else { - // coloredImageDataVar = $rootScope.coloredImageCanvasList[parseInt(bodyRegionId - 1)]; - // } - // var grayImageDataVar; - // var grayCanvas; - // if ($scope.ColoredImageSRC[x].haveMirror == 'true') { - - // //// 3. get mask canvas for this body region._MR - // var grayCanvasID = 'imageCanvas' + bodyRegionId + '_MR'; - // grayCanvas = document.getElementById(grayCanvasID); - // var grayCanvasContext = grayCanvas.getContext("2d"); - // var grayImageData = grayCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); - // grayImageDataVar = grayImageData.data; - // } - - // else { - // var grayCanvasID = 'imageCanvas' + bodyRegionId; - // grayCanvas = document.getElementById(grayCanvasID); - // var grayCanvasContext = grayCanvas.getContext("2d"); - // var grayImageData = grayCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); - // grayImageDataVar = grayImageData.data; - // } - - // var coloredImageDataVarMR; - // var coloredImageDataMR - - - // var counter = 0; + 'termList': TermList, + 'maskCanvasData': maskData, + 'coloredImageData': coloredImageDataVar, + 'coloredImageMRCanvasList': $rootScope.coloredImageMRCanvasList, + 'grayImageData': grayImageDataVar, + 'grayImageMRDataList': $rootScope.grayImageMRDataList, + 'bodyRegionId': bodyRegionId + }); - // var dataForthisBR = new jinqJs() - // .from(matchedLocationData) - // .where('BRId == ' + bodyRegionId) - // .select(); + //} - // for (var z = 0; z < dataForthisBR.length; z++) - // { - // var location = parseInt(dataForthisBR[z].location); + worker.onmessage = function (e) { + console.log('callback: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); + + var updatedData = e.data.value; - // var RED_coloredImage = coloredImageDataVar[location]; + var bodyRegionId = e.data.bodyRegionId; + //debugger; + //for (var i = 1; i <= updatedData.length; i++) { - // grayImageDataVar[location] = RED_coloredImage; + var grayCanvasID = 'imageCanvas' + bodyRegionId; + var grayCanvas = document.getElementById(grayCanvasID); + var grayCanvasContext = grayCanvas.getContext("2d"); - // var GREEN_coloredImage = coloredImageDataVar[location + 1]; - // grayImageDataVar[location + 1] = GREEN_coloredImage; - // var BLUE_coloredImage = coloredImageDataVar[location + 2]; - // grayImageDataVar[location + 2] = BLUE_coloredImage; + grayCanvasContext.putImageData(updatedData, 0, 0); + // } - // var ALPHA_coloredImage = coloredImageDataVar[location + 3]; - // grayImageDataVar[location + 3] = ALPHA_coloredImage; + worker.terminate(); - // } - var grayCanvasID = 'imageCanvas' + BrId; - var grayCanvas = document.getElementById(grayCanvasID); - var grayCanvasContext = grayCanvas.getContext("2d"); + // $rootScope.grayImageDataList[bodyRegionId - 1] = upadteddata; - var garyDatalength = grayImageDataVar.length; - var pixelData = new Uint8ClampedArray(garyDatalength); - for (var i = 0; i < garyDatalength; i++) { - pixelData[i] = grayImageDataVar[i]; + }; + worker.onerror = function (e) { + alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); + }; } - var imgDta = grayCanvasContext.getImageData(0, 0, 348, 507); - imgDta.data.set - grayCanvasContext.putImageData(imgDta, 0, 0); - //} - - // } - console.log('End time taken in fillMatchedTerm: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); } + + + $scope.GetRGBColor = function (maskCanvasContext, actulalX, actualY, x, y) { var pixelData = maskCanvasContext.getImageData(Math.round(actulalX - x), Math.round(actualY - y), 1, 1); @@ -1720,6 +1537,15 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo //layer change function $scope.LayerChange = function () { // alert('layer chnage') + if ($scope.MaskCanvasData.length > 0) { + $scope.MaskCanvasData = null; + $scope.MaskCanvasData = []; + } + + if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { + // huzzah! a worker! + console.log('worker is running') + } var canvasDiv = document.getElementById('canvasDiv'); $scope.imageVerticalScrollPosition = canvasDiv.scrollTop; diff --git a/400-SOURCECODE/AIAHTML5.Web/term-number-wp.js b/400-SOURCECODE/AIAHTML5.Web/term-number-wp.js index e260a7f..ba3a6e7 100644 --- a/400-SOURCECODE/AIAHTML5.Web/term-number-wp.js +++ b/400-SOURCECODE/AIAHTML5.Web/term-number-wp.js @@ -1,94 +1,109 @@ var UpdatedGrayImageDataList = []; var doneBRID = []; var abc = 'hello'; - -getLocationForMatchedTermsInWholeBody = function (termList, maskCanvasData, coloredImageCanvasList, coloredImageMRCanvasList, grayImageDataList, grayImageMRDataList) { - // console.log('for termNumer: ' + termNo + ', time: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")) +previousGrayImageDataList = []; +getLocationForMatchedTermsInWholeBody = function (termList, maskCanvasData, coloredImageData, coloredImageMRCanvasList, grayImageData, grayImageMRDataList, bodyRegionId) { + console.log('for bodyRegionId: ' + bodyRegionId + ', time: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")) var matchedRGBLocationInBodyRegion = []; var matched; - for (var x = 0; x < maskCanvasData.length; x++) { + + var n = maskCanvasData.data.length; + var maskData = maskCanvasData.data; + for (var z = 0; z < termList.length; z++) { + + if (previousGrayImageDataList[parseInt(bodyRegionId - 1)] != null) { + grayImageData = previousGrayImageDataList[parseInt(bodyRegionId - 1)]; - matched = false; - // alert('called for bodyRegionId: ' + $scope.MaskImageSRC[x].bodyRegionId); - var bodyRegionId = maskCanvasData[x].bodyRegionId; - var canvasId = maskCanvasData[x].canvasId; - var maskData = maskCanvasData[x].maskData; + } + var grayImageDataVar = grayImageData.data; + var coloredImageDataVar = coloredImageData.data; - var coloredImageDataVar = coloredImageCanvasList[bodyRegionId - 1]; - var grayImageDataVar = grayImageDataList[bodyRegionId - 1]; + for (var i = 0; i < n; i += 4) { - //if (canvasId.match('MR')) { - // coloredImageDataVar = coloredImageMRCanvasList[bodyRegionId - 1]; - // grayImageDataVar = grayImageMRDataList[bodyRegionId - 1]; - //} - //else { - // coloredImageDataVar = coloredImageCanvasList[bodyRegionId - 1]; - // grayImageDataVar = grayImageDataList[bodyRegionId - 1]; - //} - var counter = 0; + var RED = maskData[i] - 9; + var GREEN = maskData[i + 1] - 9; + var BLUE = maskData[i + 2] - 9; - var imageDataVar = maskData.data; + var Red; + var Green; + var Blue; + var zero = "0"; - var machLocationWP = new Worker('match-pixel-wp.js'); + if ((RED).toString().length != 2) { + Red = zero.concat((RED).toString()) + } + else { + Red = (RED).toString() + } + if ((GREEN).toString().length != 2) { + Green = zero.concat((GREEN).toString()) + } + else { + Green = (GREEN).toString() + } + if ((BLUE).toString().length != 2) { + Blue = zero.concat((BLUE).toString()) + } + else { + Blue = (BLUE).toString() + + } - machLocationWP.postMessage({ + var Icolor = (Red + Green + Blue); + // alert('Icolor: ' + Icolor) - 'termList': termList, - 'maskCanvasData': maskData, - 'coloreImageData': coloredImageDataVar, - 'grayImageData': grayImageDataVar, - 'grayImageMRDataList': grayImageMRDataList, - 'bodyRegionId': bodyRegionId + if (parseInt(termList[z]._TermNumber) == parseInt(Icolor)) { - }); - machLocationWP.onmessage = function (e) { - console.log('callback: ' + e.data.value + ', x=' + x); - //var upadteddata = e.data.value; - //var bodyRegionId = e.data.bodyRegionId; - //var grayCanvasID = 'imageCanvas' + bodyRegionId; - //var grayCanvas = document.getElementById(grayCanvasID); - //var grayCanvasContext = grayCanvas.getContext("2d"); + // matchedRGBLocationInBodyRegion.push({ "BRId": bodyRegionId, "location": i }); + // matched = true; - //grayCanvasContext.putImageData(upadteddata, 0, 0); - doneBRID.push(e.data.bodyRegionId); - UpdatedGrayImageDataList[e.data.bodyRegionId] = e.data.value + var RED_coloredImage = coloredImageDataVar[i]; - console.log('UpdatedGrayImageDataList: ' + UpdatedGrayImageDataList); + grayImageDataVar[i] = RED_coloredImage; - console.log('doneBRID: ' + e.data.bodyRegionId + 'length: ' + doneBRID.length); - if (doneBRID.length == 9) { - console.log('before sending UpdatedGrayImageDataList= ' + UpdatedGrayImageDataList) - self.postMessage({ - 'value': UpdatedGrayImageDataList, - 'name': 'Happy' - }) + var GREEN_coloredImage = coloredImageDataVar[i + 1]; + grayImageDataVar[i + 1] = GREEN_coloredImage; + + var BLUE_coloredImage = coloredImageDataVar[i + 2]; + grayImageDataVar[i + 2] = BLUE_coloredImage; + + + var ALPHA_coloredImage = coloredImageDataVar[i + 3]; + grayImageDataVar[i + 3] = ALPHA_coloredImage; + } - }; - machLocationWP.onerror = function (e) { - console.log('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); - }; + } - } + previousGrayImageDataList[parseInt(bodyRegionId - 1)] = grayImageData; + + // if (matched == true) { + // } + + } + self.postMessage({ + 'bodyRegionId': bodyRegionId, + 'value': grayImageData, + }); } self.onmessage = function (e) { - getLocationForMatchedTermsInWholeBody(e.data.termList, e.data.maskCanvasData, e.data.coloredImageCanvasList, - e.data.coloredImageMRCanvasList, e.data.grayImageDataList, e.data.grayImageMRDataList); + getLocationForMatchedTermsInWholeBody(e.data.termList, e.data.maskCanvasData, e.data.coloredImageData, + e.data.coloredImageMRCanvasList, e.data.grayImageData, e.data.grayImageMRDataList, e.data.bodyRegionId); }