From 87c34ba0c3a58f41f452071e7c7a491f3d4b856c Mon Sep 17 00:00:00 2001 From: arti-sukasem <51779010+arti-sukasem@users.noreply.github.com> Date: Wed, 12 May 2021 11:35:51 +1200 Subject: [PATCH 1/5] added marker points for both human and mouse, updated mouse parameters, updated test_lung --- src/scaffoldmaker/annotation/lung_terms.py | 21 +- .../meshtypes/meshtype_3d_lung1.py | 285 ++++++++++++------ tests/test_lung.py | 8 +- 3 files changed, 219 insertions(+), 95 deletions(-) diff --git a/src/scaffoldmaker/annotation/lung_terms.py b/src/scaffoldmaker/annotation/lung_terms.py index ad502e17..cbb33f23 100644 --- a/src/scaffoldmaker/annotation/lung_terms.py +++ b/src/scaffoldmaker/annotation/lung_terms.py @@ -4,18 +4,29 @@ # convention: preferred name, preferred id, followed by any other ids and alternative names lung_terms = [ + ("apex of accessory lung", "None"), + ("apex of left lung", "None"), + ("apex of right lung", "None"), + ("dorsal base of accessory lung", "None"), + ("dorsal base of left lung", "None"), + ("dorsal base of right lung", "None"), ("horizontal fissure of right lung", "None"), - ("lung", "UBERON:0002048", "ILX:0726937"), + ("lateral side of right lung", "None"), ("left lung", "UBERON:0002168", "ILX:0733450"), + ("lower lobe of left lung", "UBERON:0008953", "ILX:0735534"), + ("lower lobe of right lung", "UBERON:0002171", "ILX:0725712"), + ("lung", "UBERON:0002048", "ILX:0726937"), + ("middle lobe of right lung", "UBERON:0002174", "ILX:0733737"), + ("medial base of left lung", "None"), ("oblique fissure of left lung", "None"), ("oblique fissure of right lung", "None"), ("right lung", "UBERON:0002167", "ILX:0729582"), + ("right lung accessory lobe", "UBERON:0004890", "ILX:0728696"), ("upper lobe of left lung", "UBERON:0008952", "ILX:0735339"), - ("lower lobe of left lung", "UBERON:0008953", "ILX:0735534"), ("upper lobe of right lung", "UBERON:0002170", "ILX:0728821"), - ("middle lobe of right lung", "UBERON:0002174", "ILX:0733737"), - ("lower lobe of right lung", "UBERON:0002171", "ILX:0725712"), - ("right lung accessory lobe", "UBERON:0004890", "ILX:0728696") + ("ventral base of accessory lung", "None"), + ("ventral base of left lung", "None"), + ("ventral base of right lung", "None") ] def get_lung_term(name : str): diff --git a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py index 62ecc573..c2e22f89 100644 --- a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py +++ b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py @@ -318,7 +318,7 @@ def generateBaseMesh(cls, region, options): lowerLeftNodeIds, upperLeftNodeIds, nodeIndex, nodeIdentifier) # Right lung nodes - getLungNodes(rightLung, cache, coordinates, generateParameters, + nodeIndex, nodeIdentifier = getLungNodes(rightLung, cache, coordinates, generateParameters, nodes, nodetemplate, nodeFieldParameters, lElementsCount1, lElementsCount2, lElementsCount3, uElementsCount1, uElementsCount2, uElementsCount3, @@ -343,67 +343,119 @@ def generateBaseMesh(cls, region, options): uElementsCount1, uElementsCount2, uElementsCount3, lowerRightNodeIds, upperRightNodeIds, elementIdentifier) + # Marker points + lungNodesetGroup = lungGroup.getNodesetGroup(nodes) + markerList = [] + + lowerLeftElementCount = (lElementsCount1 * (lElementsCount2-1) * lElementsCount3 + lElementsCount1) + + leftApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("apex of left lung")) + idx = lowerLeftElementCount + (uElementsCount1 * uElementsCount2 * (uElementsCount3//2) + uElementsCount1//2) + markerList.append({ "group" : leftApexGroup, "elementId" : idx, "xi" : [0.0, 0.0, 1.0] }) + + leftVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("ventral base of left lung")) + idx = lElementsCount1 * (lElementsCount2 - 1) + 1 + markerList.append({"group": leftVentralGroup, "elementId": idx, "xi": [0.0, 1.0, 0.0]}) + + leftMedialGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("medial base of left lung")) + idx = lElementsCount1 * (lElementsCount2 // 2) + markerList.append({"group": leftMedialGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) + + upperLeftElementCount = (uElementsCount1 * uElementsCount2 * (uElementsCount3-1)) + leftLungElementCount = lowerLeftElementCount + upperLeftElementCount + lowerRightElementCount = lowerLeftElementCount + + rightApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("apex of right lung")) + idx = leftLungElementCount + lowerRightElementCount + \ + (uElementsCount1 * uElementsCount2 * (uElementsCount3//2) + uElementsCount1//2) + markerList.append({"group": rightApexGroup, "elementId": idx, "xi": [0.0, 0.0, 1.0]}) + + rightVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("ventral base of right lung")) + idx = leftLungElementCount + lElementsCount1 * lElementsCount2 + markerList.append({"group": rightVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) + + rightLateralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("lateral side of right lung")) + idx = leftLungElementCount + (lElementsCount1 * lElementsCount2 * (lElementsCount3 - 1)) + lElementsCount1 + markerList.append({"group": rightLateralGroup, "elementId": idx, "xi": [1.0, 1.0, 1.0]}) + + for marker in markerList: + annotationGroup = marker["group"] + markerPoint = markerPoints.createNode(nodeIdentifier, markerTemplateInternal) + cache.setNode(markerPoint) + markerLocation.assignMeshLocation(cache, mesh.findElementByIdentifier(marker["elementId"]), + marker["xi"]) + markerName.assignString(cache, annotationGroup.getName()) + annotationGroup.getNodesetGroup(nodes).addNode(markerPoint) + lungNodesetGroup.addNode(markerPoint) + nodeIdentifier += 1 + elif isMouse: # valueLabels = [ Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D_DS3 ] nodeFieldParameters = [ - ( 1, [ [ -0.06500, -9.79600, 3.32500], [ 0.93700, 0.96700, 2.47500], [ -1.72900, -0.55700, 0.27900], [ -1.97500, -3.88300, 3.53100] ] ), - ( 2, [ [ -0.00500, -9.22800, 5.76600], [ -0.74000, 0.15300, 2.17800], [ -1.51700, 0.36800, -0.21400], [ -0.71900, -2.10500, 2.41600] ] ), - ( 3, [ [ -1.87500, -11.05600, 1.28600], [ -0.21900, 0.91700, 2.49900], [ -2.39900, -0.36900, -1.06700], [ -2.61300, -2.51900, 4.94800] ] ), - ( 4, [ [ -1.93400, -10.00200, 3.65200], [ 0.10200, 1.18600, 2.22000], [ -1.96200, 0.15900, 0.36800], [ -1.82400, -2.13500, 2.94900] ] ), - ( 5, [ [ -1.68200, -8.70900, 5.70400], [ 0.40000, 1.39200, 1.87100], [ -1.82200, 0.66700, 0.09200], [ -0.58800, -0.21200, 2.94500] ] ), - ( 6, [ [ -3.99400, -10.67100, 1.23900], [ -0.01000, 0.98000, 3.19800], [ -2.14700, 0.89400, 0.42200], [ -1.85400, -1.87000, 4.95800] ] ), - ( 7, [ [ -3.89800, -9.45400, 4.04500], [ 0.20100, 1.44300, 2.38200], [ -1.94000, 0.83500, 0.33100], [ -0.94500, -0.58800, 3.06100] ] ), - ( 8, [ [ -3.61900, -7.88600, 5.97900], [ 0.35100, 1.66300, 1.45900], [ -1.91700, 1.03900, 0.16000], [ -0.23900, 0.30600, 2.67600] ] ), - ( 9, [ [ -5.86600, -9.33300, 2.12700], [ 0.01700, 0.59900, 2.31000], [ -1.70800, 1.80100, 1.54800], [ -1.04600, -0.54700, 4.42900] ] ), - ( 10, [ [ -5.76000, -8.34000, 4.30200], [ 0.19500, 1.37500, 1.98800], [ -1.60500, 1.16300, 0.13500], [ -0.13300, 0.32500, 2.99100] ] ), - ( 11, [ [ -5.48200, -6.63600, 6.01500], [ 0.35200, 1.99000, 1.40800], [ -1.65900, 1.25900, -0.05100], [ 0.25300, 0.26400, 2.50200] ] ), - ( 12, [ [ -7.10400, -7.17500, 4.33400], [ -0.44700, 2.06800, 1.94900], [ -1.07500, 1.15600, -0.07000], [ -0.35600, 0.07900, 2.65000] ] ), - ( 13, [ [ -6.93700, -5.39200, 5.89100], [ 0.73400, 1.40700, 1.09300], [ -1.24500, 1.22400, -0.19700], [ 0.68600, 1.13000, 2.17900] ] ), - ( 14, [ [ -1.55200, -12.41900, 7.12200], [ 1.89000, 1.23100, 1.52300], [ -1.81000, 0.92100, 0.01900], [ -0.91700, -1.20200, 3.91600] ] ), - ( 15, [ [ -0.54600, -10.44300, 8.76100], [ 0.11000, 2.46200, 1.58800], [ -1.25400, 2.16800, 0.00900], [ -0.30400, -0.15400, 3.37700] ] ), - ( 16, [ [ -3.84500, -12.69000, 6.04000], [ 0.31200, 0.90800, 0.87300], [ -2.16400, 0.54100, -0.59300], [ -1.28400, -0.70700, 4.47700] ] ), - ( 17, [ [ -3.22600, -11.20300, 7.18000], [ 0.92300, 2.05600, 1.39900], [ -1.50800, 1.49400, 0.09700], [ -0.63100, -0.11700, 3.89800] ] ), - ( 18, [ [ -1.95900, -8.56200, 8.76100], [ 1.60800, 3.22200, 1.76000], [ -1.55900, 1.57300, -0.00900], [ 0.04300, 0.51000, 3.11900] ] ), - ( 19, [ [ -5.48600, -11.63400, 5.93600], [ 1.00200, 2.17400, 1.35300], [ -1.53700, 1.70600, 0.08800], [ -1.09700, -0.02200, 4.34400] ] ), - ( 20, [ [ -4.51300, -9.46500, 7.31500], [ 0.94300, 2.16400, 1.40500], [ -1.27500, 1.72900, 0.06700], [ -0.25700, 0.58500, 3.38600] ] ), - ( 21, [ [ -3.60000, -7.30600, 8.74500], [ 0.88400, 2.15200, 1.45500], [ -1.54100, 1.29600, -0.07900], [ 0.27900, 0.85000, 2.82400] ] ), - ( 22, [ [ -6.64300, -9.35400, 6.25900], [ 0.93200, 1.51100, 0.93700], [ -0.87500, 2.49400, 0.58500], [ -0.49800, 0.51200, 3.78400] ] ), - ( 23, [ [ -5.77100, -7.75200, 7.31600], [ 0.81100, 1.68900, 1.17300], [ -1.37400, 1.36400, -0.12000], [ 0.11200, 0.84800, 3.01900] ] ), - ( 24, [ [ -5.03400, -5.98300, 8.60700], [ 0.66100, 1.84700, 1.40700], [ -1.28000, 1.58200, -0.26400], [ 0.64000, 1.03900, 2.64400] ] ), - ( 25, [ [ -7.17300, -6.74200, 7.10200], [ 0.25600, 2.72800, 1.02500], [ -1.39400, 0.63900, -0.30000], [ 0.22600, 0.78500, 2.83700] ] ), - ( 26, [ [ -6.09900, -4.17500, 8.21500], [ 1.80500, 2.29700, 1.14800], [ -0.84000, 2.00500, -0.51300], [ 0.98900, 1.30200, 2.46800] ] ), - ( 27, [ [ -1.93100, -12.43600, 10.55900], [ 2.49000, 1.68500, 1.18300], [ -1.15200, 2.23900, 0.69100], [ -0.54300, 0.32500, 3.55900] ] ), - ( 28, [ [ -0.56200, -9.47900, 12.04200], [ 0.22400, 3.80500, 1.60300], [ -0.78100, 1.89400, -0.16000], [ -0.44600, 0.30600, 3.16500] ] ), - ( 29, [ [ -4.52000, -12.65600, 9.95600], [ 1.30600, 2.32000, 0.98900], [ -2.41100, 0.92900, -0.48400], [ -0.46700, 0.65000, 3.64600] ] ), - ( 30, [ [ -3.13300, -10.25400, 10.92300], [ 1.46800, 2.48500, 0.94400], [ -1.24000, 2.10000, 0.02900], [ -0.18500, 0.74000, 3.42200] ] ), - ( 31, [ [ -1.58200, -7.68800, 11.83900], [ 1.63300, 2.64600, 0.88900], [ -1.25200, 1.66600, -0.24300], [ -0.06200, 0.20100, 3.11400] ] ), - ( 32, [ [ -6.19700, -10.92400, 9.69400], [ 2.06600, 2.90800, 0.94500], [ -1.25600, 2.20900, -0.19200], [ -0.23700, 1.12300, 3.54400] ] ), - ( 33, [ [ -4.37800, -8.28200, 10.63900], [ 1.57100, 2.37300, 0.94500], [ -1.20500, 1.80600, -0.31200], [ 0.08200, 0.79000, 3.19500] ] ), - ( 34, [ [ -3.04500, -6.18300, 11.56000], [ 1.09400, 1.82300, 0.89500], [ -1.31100, 1.58200, -0.31600], [ 0.41300, 0.44900, 2.91100] ] ), - ( 35, [ [ -6.88900, -8.42400, 9.59400], [ 1.35800, 1.61900, 0.61600], [ -0.24700, 2.73500, 0.10200], [ 0.26400, 1.11000, 3.22300] ] ), - ( 36, [ [ -5.53200, -6.64300, 10.30600], [ 1.35200, 1.94000, 0.80700], [ -1.15000, 1.33500, -0.37700], [ 0.46000, 0.90100, 2.97900] ] ), - ( 37, [ [ -4.19800, -4.54300, 11.21100], [ 1.31400, 2.25600, 1.00300], [ -0.95600, 1.70800, -0.37900], [ 0.81800, 0.65100, 2.72300] ] ), - ( 38, [ [ -6.63100, -5.59800, 9.91100], [ 0.94700, 2.93800, 0.60800], [ -1.03500, 0.74500, -0.40700], [ 0.98500, 1.06600, 2.93400] ] ), - ( 39, [ [ -4.95200, -2.79500, 10.80900], [ 2.34400, 2.59400, 1.15400], [ -0.54700, 1.77500, -0.42200], [ 1.20400, 0.55900, 2.59700] ] ), - ( 40, [ [ -2.63300, -11.75400, 14.13900], [ 2.07100, 1.01000, 1.01300], [ -0.94500, 2.13200, -0.11000], [ -1.19500, 1.29000, 2.62900] ] ), - ( 41, [ [ -1.34700, -9.76300, 14.88200], [ 0.43300, 2.56600, 0.40900], [ -0.67800, 1.57400, -0.00900], [ -0.85400, 0.07400, 2.62100] ] ), - ( 42, [ [ -4.78400, -11.50200, 13.19700], [ 1.12400, 1.88500, 0.74200], [ -1.93100, 1.31700, -0.71500], [ 0.33300, 1.24300, 2.91700] ] ), - ( 43, [ [ -3.53400, -9.71000, 13.96000], [ 1.37200, 1.69300, 0.78200], [ -0.85500, 1.95400, -0.24900], [ -0.46900, -0.15300, 2.45300] ] ), - ( 44, [ [ -2.04800, -8.12700, 14.75500], [ 1.59400, 1.46900, 0.80600], [ -0.72300, 1.69400, -0.24600], [ -0.31400, -0.89000, 2.71200] ] ), - ( 45, [ [ -5.99600, -9.47500, 12.89200], [ 1.70200, 1.70700, 0.76600], [ -0.70000, 2.26100, -0.31000], [ 0.83600, 1.57400, 3.01000] ] ), - ( 46, [ [ -4.34300, -7.84900, 13.64900], [ 1.60500, 1.54500, 0.74600], [ -0.66600, 1.88500, -0.36200], [ -0.13900, 0.17400, 2.48300] ] ), - ( 47, [ [ -2.78800, -6.38400, 14.38400], [ 1.50500, 1.38500, 0.72400], [ -0.70800, 1.74800, -0.46700], [ 0.53500, -0.43200, 3.00600] ] ), - ( 48, [ [ -6.14400, -7.17700, 12.60200], [ 1.21900, 1.17800, 0.66400], [ 0.37800, 2.50500, -0.03200], [ 1.15600, 1.37100, 2.63400] ] ), - ( 49, [ [ -4.86400, -5.95300, 13.24000], [ 1.34200, 1.27000, 0.61200], [ -0.41900, 1.59500, -0.39800], [ 0.39900, 0.41100, 2.26200] ] ), - ( 50, [ [ -3.46100, -4.63700, 13.82300], [ 1.46400, 1.36000, 0.55300], [ -0.50700, 1.71100, -0.60900], [ 0.85100, -0.09300, 2.33400] ] ), - ( 51, [ [ -5.18900, -4.65900, 12.87300], [ 1.22600, 2.11800, 0.29700], [ -0.23000, 0.99100, -0.33700], [ 1.02700, -0.31500, 2.68800] ] ), - ( 52, [ [ -3.80900, -2.97900, 13.17500], [ 1.49600, 1.21300, 0.30100], [ -0.18800, 1.59800, -0.68200], [ 1.26300, -0.91100, 2.64300] ] ), - ( 53, [ [ -3.97000, -10.25800, 15.67100], [ 1.39000, 1.09500, 2.04300], [ -1.07900, 2.17800, 0.78400], [ -0.36000, -0.84200, 0.86500] ] ), - ( 54, [ [ -2.21000, -9.38800, 17.16100], [ 2.01800, 0.61000, 0.88900], [ -0.38600, 1.79200, 1.71400], [ -0.00900, -1.59600, 2.05300] ] ), - ( 55, [ [ -4.58000, -7.85600, 15.56900], [ 2.11100, 1.24600, 2.39500], [ -0.34700, 2.32300, -0.47500], [ -0.32900, -0.18600, 1.33500] ] ), - ( 56, [ [ -1.94700, -7.07000, 17.50600], [ 3.03100, 0.31400, 1.42200], [ -0.14400, 2.64400, -0.63500], [ 1.14000, -0.93300, 3.21700] ] ), - ( 57, [ [ -4.66700, -5.75200, 14.78800], [ 1.90000, 1.26100, 1.65700], [ -0.32900, 1.75000, -1.46200], [ -0.00600, -0.00900, 0.81900] ] ), - ( 58, [ [ -2.54100, -4.72700, 15.86200], [ 2.25100, 0.75500, 0.47100], [ -0.93900, 2.14800, -2.20600], [ 0.98300, -0.08500, 1.73600] ] ), + ( 1, [ [ 0.07403, -9.56577, 3.60357], [ 0.86121, 0.91663, 3.13808], [ -2.20273, -0.23540, 0.46445], [ -1.94940, -4.27711, 3.05223] ] ), + ( 2, [ [ -0.26840, -9.51435, 6.62504], [ -1.32766, -0.69883, 2.49447], [ -1.88606, 0.44731, -0.04715], [ -0.69427, -0.26800, 2.50448] ] ), + ( 3, [ [ -1.92122, -11.21142, 1.24012], [ -0.28342, 2.14970, 2.92579], [ -2.81056, -0.34804, -1.27573], [ -2.55210, -2.28852, 5.04724] ] ), + ( 4, [ [ -2.11315, -9.49992, 4.16902], [ -0.09808, 1.25545, 2.90775], [ -2.14191, 0.37028, 0.66019], [ -1.47041, -2.64230, 2.03708] ] ), + ( 5, [ [ -2.12755, -8.67391, 6.97346], [ 0.06838, 0.39146, 2.66632], [ -1.73858, 1.21136, 0.74634], [ 0.25644, 0.37400, 2.97672] ] ), + ( 6, [ [ -4.29865, -10.50146, 1.20789], [ -0.07732, 1.64159, 3.92748], [ -2.46054, 1.42565, 0.66974], [ -1.93502, -1.59827, 5.10560] ] ), + ( 7, [ [ -4.14920, -8.83455, 4.90568], [ 0.37643, 1.68784, 3.45762], [ -1.80302, 1.03452, 0.80364], [ -0.64093, -1.37872, 1.23650] ] ), + ( 8, [ [ -3.57171, -7.14590, 8.10918], [ 0.77574, 1.68338, 2.93877], [ -1.29608, 1.66826, 0.98992], [ 0.15957, 0.71843, 2.11887] ] ), + ( 9, [ [ -6.33487, -8.48704, 2.61154], [ 0.55076, 0.44025, 2.97780], [ -1.73125, 2.62991, 2.59931], [ -1.05677, -0.95380, 4.51872] ] ), + ( 10, [ [ -5.64451, -7.49459, 5.73593], [ 0.82111, 1.53758, 3.22310], [ -1.53921, 1.63772, 0.76315], [ -1.03865, -0.57333, 1.61890] ] ), + ( 11, [ [ -4.70306, -5.37742, 8.94242], [ 1.05156, 2.67077, 3.15912], [ -0.89806, 2.08222, 0.80487], [ 0.37686, 0.48294, 1.66467] ] ), + ( 12, [ [ -7.18669, -5.55843, 6.39603], [ 0.59266, 2.89465, 3.74833], [ -1.53648, 2.22206, 0.55392], [ 0.54053, 0.26298, 3.06847] ] ), + ( 13, [ [ -5.30307, -3.02550, 9.68332], [ 2.97978, 2.03799, 2.65285], [ -0.29788, 2.58614, 0.66778], [ 0.94911, 0.77526, 2.35180] ] ), + ( 14, [ [ -1.46058, -12.47910, 7.13881], [ 2.09808, 1.60645, 1.90038], [ -1.91804, 1.09320, 0.05112], [ -1.01520, -1.31998, 3.85443] ] ), + ( 15, [ [ -0.66496, -9.64655, 9.32022], [ -0.45511, 3.64447, 2.21117], [ -1.11840, 1.37152, 0.44962], [ -0.09056, 0.00680, 2.85604] ] ), + ( 16, [ [ -3.84500, -12.69000, 6.04000], [ 0.26136, 0.69836, 0.43532], [ -2.37651, 0.65682, -0.60958], [ -1.25919, -0.63612, 4.48080] ] ), + ( 17, [ [ -3.22600, -11.20300, 7.18000], [ 0.97561, 2.27288, 1.84296], [ -1.59753, 1.45029, 0.03086], [ -0.58171, -0.45193, 3.74440] ] ), + ( 18, [ [ -1.88919, -8.18409, 9.76756], [ 1.69766, 3.76414, 3.33147], [ -1.32971, 1.55297, 0.44493], [ 0.21986, 0.60501, 2.60653] ] ), + ( 19, [ [ -5.74928, -11.42016, 5.96798], [ 0.89023, 1.09247, 0.39442], [ -1.74757, 1.95743, 0.30639], [ -0.94426, -0.22098, 4.35656] ] ), + ( 20, [ [ -4.63302, -9.60659, 7.20025], [ 1.30646, 2.49071, 2.05426], [ -1.52303, 1.81789, 0.31218], [ -0.20767, 0.09073, 3.12297] ] ), + ( 21, [ [ -3.32590, -6.54328, 10.20546], [ 1.30123, 3.61772, 3.93635], [ -1.19682, 1.64930, 0.44198], [ 0.33162, 0.48490, 2.06808] ] ), + ( 22, [ [ -7.01142, -8.92140, 6.69950], [ 0.23567, 0.57897, 0.36479], [ -0.67829, 3.29557, 1.55266], [ -0.28477, 0.09552, 3.60778] ] ), + ( 23, [ [ -6.22043, -7.60863, 7.85901], [ 1.34296, 2.03838, 1.94904], [ -1.05423, 2.27614, 0.99210], [ -0.00580, 0.40454, 2.45985] ] ), + ( 24, [ [ -4.28573, -4.92425, 10.64091], [ 2.52517, 3.32869, 3.61294], [ -0.65090, 2.02589, 0.78353], [ 0.45760, 0.42313, 1.73144] ] ), + ( 25, [ [ -6.63445, -5.23571, 9.11277], [ 1.35015, 3.27219, 2.64912], [ 0.21711, 2.37051, 1.45456], [ 0.56325, 0.38213, 2.36108] ] ), + ( 26, [ [ -4.43830, -2.62681, 11.78349], [ 2.92245, 1.86906, 2.58639], [ 0.33621, 2.49812, 1.46020], [ 0.76889, 0.01269, 1.81992] ] ), + ( 27, [ [ -1.93100, -12.43600, 10.55900], [ 2.55948, 1.63705, 1.27258], [ -1.15116, 2.23905, 0.69133], [ -0.63533, 0.34578, 3.55330] ] ), + ( 28, [ [ -0.41906, -9.48854, 12.25446], [ 0.42218, 3.87081, 1.92577], [ -1.25698, 2.34270, -0.16936], [ -0.92031, -0.18621, 2.96052] ] ), + ( 29, [ [ -4.52000, -12.65600, 9.95600], [ 1.35217, 2.21656, 0.83086], [ -2.40411, 0.82849, -0.43856], [ -0.46652, 0.64974, 3.64498] ] ), + ( 30, [ [ -3.13300, -10.25400, 10.92300], [ 1.42083, 2.58580, 1.10253], [ -1.23997, 2.09990, 0.02894], [ -0.18554, 0.74076, 3.42815] ] ), + ( 31, [ [ -1.68905, -7.48625, 12.16850], [ 1.46636, 2.94825, 1.38780], [ -1.27716, 1.65104, -0.00177], [ -0.07484, 0.05607, 2.61833] ] ), + ( 32, [ [ -6.25192, -11.09845, 9.75297], [ 2.03540, 3.10903, 0.47581], [ -1.36274, 2.20607, -0.13783], [ -0.09509, 0.79342, 3.51115] ] ), + ( 33, [ [ -4.37800, -8.28200, 10.63900], [ 1.68764, 2.48600, 1.29046], [ -1.20779, 1.81108, -0.31319], [ 0.13704, 0.85273, 3.27166] ] ), + ( 34, [ [ -2.91467, -6.17486, 12.23057], [ 1.21597, 1.69613, 1.85746], [ -1.06873, 1.49397, 0.11655], [ 0.27563, 0.08593, 2.12064] ] ), + ( 35, [ [ -6.98986, -8.44416, 9.71097], [ 1.17990, 1.47658, -0.09107], [ -0.07160, 3.36699, 0.60791], [ 0.36234, 0.70327, 2.96964] ] ), + ( 36, [ [ -5.53200, -6.64300, 10.30600], [ 1.67267, 2.04670, 1.28602], [ -0.91425, 1.84457, 0.24689], [ 0.68684, 0.84626, 2.70679] ] ), + ( 37, [ [ -3.78791, -4.53368, 12.40070], [ 1.78494, 2.13535, 2.85449], [ -0.46849, 1.73952, 0.54313], [ 0.51030, 0.08286, 1.66357] ] ), + ( 38, [ [ -6.08345, -4.82242, 11.11703], [ 1.72607, 2.92044, 1.90180], [ -0.17690, 1.68471, 1.28954], [ 0.70579, 0.15651, 2.08713] ] ), + ( 39, [ [ -3.80003, -2.88835, 13.25652], [ 2.66118, 0.88778, 2.22689], [ 0.41935, 1.46422, 1.10304], [ 0.90439, -0.64196, 1.70368] ] ), + ( 40, [ [ -2.72404, -11.77560, 14.14633], [ 1.55340, 1.17580, 1.01170], [ -0.80753, 2.16476, -0.12068], [ -1.17968, 1.29992, 2.61646] ] ), + ( 41, [ [ -2.42583, -10.01198, 14.66971], [ -0.68264, 1.67734, 0.02500], [ 0.88132, 1.72091, 0.32221], [ -0.93777, 0.07446, 2.84817] ] ), + ( 42, [ [ -4.78400, -11.50200, 13.19700], [ 1.12674, 1.88575, 0.73723], [ -1.79954, 1.09346, -0.69608], [ 0.33288, 1.24262, 2.91702] ] ), + ( 43, [ [ -3.53400, -9.71000, 13.96000], [ 1.36979, 1.69244, 0.78650], [ -0.81167, 1.96451, -0.25187], [ -0.46943, -0.15270, 2.45281] ] ), + ( 44, [ [ -2.05298, -8.12746, 14.76513], [ 1.58734, 1.46811, 0.82122], [ -0.19471, 1.93276, -0.15298], [ -0.28410, -0.98265, 2.58715] ] ), + ( 45, [ [ -5.98782, -9.93135, 12.86221], [ 1.66750, 2.39142, 0.80255], [ -0.84633, 2.06795, -0.33823], [ 0.83745, 1.49286, 2.98998] ] ), + ( 46, [ [ -4.34300, -7.84900, 13.64900], [ 1.61760, 1.76679, 0.76885], [ -0.66575, 1.88525, -0.36179], [ -0.14614, -0.03047, 2.50738] ] ), + ( 47, [ [ -2.78800, -6.38400, 14.38400], [ 1.48492, 1.15738, 0.69764], [ -0.62649, 1.73742, -0.43431], [ 0.41608, -0.63445, 2.75821] ] ), + ( 48, [ [ -6.29328, -7.53087, 12.56359], [ 1.34012, 1.73997, 0.67057], [ 0.34309, 2.67619, 0.14977], [ 1.06474, 1.03413, 2.64452] ] ), + ( 49, [ [ -4.86400, -5.95300, 13.24000], [ 1.51296, 1.40866, 0.67950], [ -0.46940, 1.45903, -0.17125], [ 0.24780, -0.04317, 2.43130] ] ), + ( 50, [ [ -3.28712, -4.71867, 13.91557], [ 1.63291, 1.05492, 0.66842], [ 0.16640, 1.63261, 0.55187], [ 0.66240, -0.36288, 1.98688] ] ), + ( 51, [ [ -5.23459, -4.94899, 13.22187], [ 1.99474, 2.05185, 1.35243], [ -0.26306, 0.53137, 0.13065], [ 0.63126, -0.84942, 2.04003] ] ), + ( 52, [ [ -2.63217, -4.00133, 15.05523], [ 2.94186, -0.14344, 2.12092], [ 0.81897, -0.14175, 1.23719], [ 0.63217, -1.29051, 1.59520] ] ), + ( 53, [ [ -3.97000, -10.25800, 15.67100], [ 1.35917, 1.05958, 2.09582], [ -1.01355, 2.02429, 0.72368], [ -0.35939, -0.84212, 0.86523] ] ), + ( 54, [ [ -2.24601, -9.44164, 17.27413], [ 1.99351, 0.54698, 1.05978], [ 0.29630, 1.69013, 1.65367], [ -0.10099, -1.63017, 2.40788] ] ), + ( 55, [ [ -4.59066, -8.17597, 15.56314], [ 2.11029, 1.21320, 2.47664], [ -0.46995, 1.96813, -0.40168], [ -0.33349, -0.59545, 1.26153] ] ), + ( 56, [ [ -1.97927, -7.59115, 17.60644], [ 2.96636, -0.04152, 1.53435], [ -0.06400, 2.29997, -0.39224], [ 1.19050, -1.76373, 3.65326] ] ), + ( 57, [ [ -4.90484, -6.41106, 14.92762], [ 1.97629, 1.14920, 1.97034], [ -0.33841, 1.71414, -1.18187], [ -0.28114, -0.74487, 0.80545] ] ), + ( 58, [ [ -2.46755, -5.31416, 16.35299], [ 2.79825, 1.00856, 0.85000], [ -0.31319, 1.79797, -1.34572], [ 0.97558, -0.82711, 2.88452] ] ), ( 59, [ [ 3.21000, -14.40000, 2.61000], [ 2.45000, -0.85500, 0.01500], [ 0.34400, 2.19000, 1.23000], [ 0.00400, -0.80200, 2.52000] ] ), ( 60, [ [ 0.88200, -11.40000, 2.59000], [ 2.06000, -0.29900, 1.50000], [ -1.23000, 2.97000, 0.75300], [ -0.22000, -1.37000, 1.92000] ] ), ( 61, [ [ 3.47000, -12.00000, 3.89000], [ 3.07000, -1.43000, 0.64300], [ 0.57500, 1.72000, 2.00000], [ 0.02000, -1.12000, 1.70000] ] ), @@ -472,29 +524,29 @@ def generateBaseMesh(cls, region, options): ( 124, [ [ 2.99000, -8.50000, 18.90000], [ 2.71000, 0.49000, -0.17200], [ -1.57000, 3.81000, 1.44000], [ -0.14300, -0.36100, 1.17300] ] ), ( 125, [ [ 2.49300, -9.65700, 8.51800], [ -1.35500, 0.80500, 0.25900], [ -2.09500, -2.28700, -5.51800], [ -0.14100, -1.15900, 1.75800] ] ), ( 126, [ [ 1.82900, -8.51000, 9.08400], [ 0.62000, 1.16800, 0.77800], [ -0.05400, -0.02400, -0.02000], [ -0.67000, -0.79900, 1.19500] ] ), - ( 127, [ [ 3.15700, -8.31000, 9.39800], [ 2.53800, -0.40100, 0.43300], [ -1.64700, 2.16100, 0.67400], [ -1.60100, 0.06100, 1.77100] ] ), - ( 128, [ [ 4.11100, -5.52400, 10.77500], [ -1.93100, 3.85000, 2.14600], [ -1.36100, 1.34600, 0.44700], [ -3.02000, -1.80300, 0.23600] ] ), - ( 129, [ [ 0.06500, -11.43700, 7.21500], [ 0.18400, 2.21200, -0.19300], [ -0.54200, -0.39700, -0.29100], [ 0.10900, 0.04700, 2.24600] ] ), - ( 130, [ [ -0.16200, -9.48800, 6.61900], [ 1.30200, 2.93700, 3.92300], [ -1.02400, 0.49500, -1.87400], [ -1.35400, -0.03500, 3.61400] ] ), + ( 127, [ [ 3.26354, -8.27035, 9.45759], [ 2.53800, -0.40100, 0.43300], [ -1.64700, 2.16100, 0.67400], [ -1.60100, 0.06100, 1.77100] ] ), + ( 128, [ [ 4.10608, -5.54413, 10.83025], [ -1.93100, 3.85000, 2.14600], [ -1.36100, 1.34600, 0.44700], [ -3.02000, -1.80300, 0.23600] ] ), + ( 129, [ [ 0.06500, -11.43700, 7.21500], [ 0.18400, 2.21200, -0.19300], [ -0.54200, -0.39700, -0.29100], [ 0.10900, 0.04700, 2.24600] ] ), + ( 130, [ [ -0.39049, -9.30579, 6.36823], [ 1.13854, 2.34541, 3.26477], [ -1.09706, 0.57877, -0.80982], [ -1.15689, -0.02495, 3.62477] ] ), ( 131, [ [ 1.19500, -6.75800, 9.68000], [ 1.40000, 2.49800, 2.16700], [ -2.14900, 0.85000, -0.15400], [ -1.51700, -1.03900, 0.74200] ] ), ( 132, [ [ 2.49300, -4.64600, 11.05500], [ 1.15800, 1.67200, 0.56600], [ -1.65900, 0.66700, 0.08800], [ -2.05100, -1.69200, 0.35800] ] ), - ( 133, [ [ -2.02800, -8.78200, 6.40500], [ 0.97200, 1.92400, 3.23400], [ -2.03500, 1.31500, 0.66900], [ -0.36500, 1.12500, 4.45200] ] ), + ( 133, [ [ -2.16643, -8.69021, 6.53180], [ 1.24044, 1.63402, 2.28323], [ -2.64042, 2.09831, 1.43965], [ -0.10634, 0.81744, 3.47189] ] ), ( 134, [ [ -0.79200, -6.61800, 9.20000], [ 1.48600, 2.37600, 2.30700], [ -1.85100, 0.70100, -0.13300], [ -0.68500, -0.48100, 1.57900] ] ), ( 135, [ [ 0.87700, -4.12500, 10.97600], [ 1.81900, 2.56400, 1.22300], [ -1.73500, 0.43000, -0.13400], [ -1.77200, -1.55600, 0.42900] ] ), - ( 136, [ [ -3.58000, -7.09200, 8.05300], [ 1.29300, 1.54400, 1.32600], [ -1.32900, 1.77000, 1.27100], [ 0.40200, 0.69000, 2.47200] ] ), + ( 136, [ [ -3.56733, -7.10525, 8.05865], [ 1.29300, 1.54400, 1.32600], [ -1.32900, 1.77000, 1.27100], [ 0.40200, 0.69000, 2.47200] ] ), ( 137, [ [ -2.27700, -5.49600, 9.40000], [ 1.31400, 1.64800, 1.36800], [ -1.33600, 1.34600, 0.31300], [ -0.46000, -0.52000, 1.27200] ] ), ( 138, [ [ -0.95000, -3.76000, 10.74000], [ 1.33200, 1.75200, 1.40900], [ -1.63800, 0.73000, -0.22100], [ -1.09700, -1.31800, 0.38500] ] ), - ( 139, [ [ -4.66400, -5.35100, 8.96000], [ 1.32600, 1.46500, 0.91600], [ -0.79700, 1.90500, 0.71200], [ 0.31300, 0.30300, 1.46900] ] ), + ( 139, [ [ -4.69069, -5.37016, 8.95014], [ 1.32600, 1.46500, 0.91600], [ -0.79700, 1.90500, 0.71200], [ 0.31300, 0.30300, 1.46900] ] ), ( 140, [ [ -3.40400, -3.97400, 9.81500], [ 1.19400, 1.28900, 0.79400], [ -0.86800, 1.93100, 0.39500], [ -0.44800, -0.51400, 0.82400] ] ), - ( 141, [ [ -2.29900, -2.77300, 10.58400], [ 1.05900, 1.11500, 0.67500], [ -0.92400, 1.77400, 0.34600], [ -1.01000, -0.90200, 0.52200] ] ), - ( 142, [ [ -5.16100, -3.36500, 9.46100], [ 1.02300, 1.84500, 0.77500], [ -0.19200, 2.02200, 0.28300], [ -0.02400, 0.01700, 0.98200] ] ), + ( 141, [ [ -2.26000, -2.71430, 10.60630], [ 1.05900, 1.11500, 0.67500], [ -0.92400, 1.77400, 0.34600], [ -1.01000, -0.90200, 0.52200] ] ), + ( 142, [ [ -5.26917, -3.01247, 9.67344], [ 1.25017, 1.16785, 0.36178], [ -0.40957, 2.74678, 0.70837], [ 0.09849, 0.11854, 1.06835] ] ), ( 143, [ [ -3.88800, -1.70800, 10.15300], [ 1.51100, 1.44000, 0.59700], [ -0.09800, 2.54100, 0.27400], [ -0.42400, -0.07600, 0.80100] ] ), - ( 144, [ [ -2.21800, -0.53800, 10.63300], [ 2.02900, 0.25900, 0.44900], [ -1.61300, 2.07400, -0.10700], [ -1.05300, -0.66900, 1.14800] ] ), - ( 145, [ [ 1.75100, -10.58100, 10.76100], [ -0.97700, 1.55100, -0.18500], [ -2.85000, -1.04200, -1.37200], [ -1.33400, -0.62600, 2.63200] ] ), + ( 144, [ [ -2.21419, -0.52570, 10.63808], [ 2.02900, 0.25900, 0.44900], [ -1.61300, 2.07400, -0.10700], [ -1.05300, -0.66900, 1.14800] ] ), + ( 145, [ [ 1.75100, -10.58100, 10.76100], [ -0.97700, 1.55100, -0.18500], [ -2.85000, -1.04200, -1.37200], [ -1.33400, -0.62600, 2.63200] ] ), ( 146, [ [ 1.22000, -9.13500, 10.80000], [ -0.03300, 1.25800, 0.27400], [ -2.33700, -0.38600, -0.53500], [ -0.52300, -0.41900, 2.19300] ] ), ( 147, [ [ 1.51600, -8.25800, 11.17000], [ 0.26000, 0.83600, 0.41900], [ -1.73100, 0.31600, -0.13700], [ -1.20200, -0.48000, 2.11000] ] ), ( 148, [ [ 1.73700, -7.47700, 11.62600], [ 0.18100, 0.72300, 0.49100], [ -0.88900, 1.03000, 0.36900], [ -1.66600, -1.94500, 1.42400] ] ), - ( 149, [ [ -0.11300, -11.26300, 9.86400], [ -0.57200, 2.27600, 0.46100], [ -0.87900, -0.32100, -0.42300], [ -0.46500, 0.30100, 3.03200] ] ), + ( 149, [ [ -0.11300, -11.26300, 9.86400], [ -0.57200, 2.27600, 0.46100], [ -0.87900, -0.32100, -0.42300], [ -0.46500, 0.30100, 3.03200] ] ), ( 150, [ [ -0.91900, -9.25600, 10.19700], [ 0.88500, 1.55700, 0.86400], [ -1.03300, 1.70500, 0.19900], [ -0.13400, 0.50100, 3.47100] ] ), ( 151, [ [ -0.07900, -7.79200, 11.03900], [ 0.79700, 1.37000, 0.82000], [ -1.44500, 0.61400, -0.12300], [ -0.92600, -0.95700, 1.92600] ] ), ( 152, [ [ 0.67300, -6.51400, 11.83400], [ 0.70700, 1.18500, 0.76900], [ -1.22100, 0.87800, 0.03900], [ -1.53900, -2.00300, 1.19100] ] ), @@ -507,17 +559,17 @@ def generateBaseMesh(cls, region, options): ( 159, [ [ -4.25000, -4.92100, 10.59600], [ 0.52600, 0.53800, 0.33800], [ -0.86500, 1.66300, 0.12300], [ 0.51300, 0.55600, 1.80000] ] ), ( 160, [ [ -3.71400, -4.32700, 10.95400], [ 0.54700, 0.64900, 0.37600], [ -0.82300, 1.98900, 0.12000], [ -0.14600, -0.16400, 1.40600] ] ), ( 161, [ [ -3.16000, -3.62200, 11.34900], [ 0.56100, 0.76100, 0.41300], [ -0.74200, 1.91400, 0.07300], [ -0.68900, -0.74300, 1.01200] ] ), - ( 162, [ [ -4.91500, -3.17200, 10.67900], [ 0.58300, 1.47100, 0.33300], [ -0.45900, 1.81800, 0.04300], [ 0.51700, 0.36900, 1.41700] ] ), + ( 162, [ [ -4.80632, -2.73141, 10.82287], [ 0.67475, 1.45292, 0.16666], [ -0.55718, 1.84148, 0.21418], [ 0.59165, 0.14617, 1.35023] ] ), ( 163, [ [ -4.16900, -1.97000, 11.09800], [ 0.89300, 0.89100, 0.49400], [ -0.08600, 2.67300, 0.16500], [ -0.11900, -0.44500, 1.05400] ] ), ( 164, [ [ -3.22900, -1.40800, 11.61400], [ 0.94000, 0.22100, 0.51200], [ 0.56900, 2.37200, 0.43200], [ -0.95100, -1.06000, 0.79300] ] ), - ( 165, [ [ -0.21700, -10.72500, 13.59000], [ 1.15600, 1.58500, -0.23100], [ -0.98100, -0.11900, -0.49200], [ -2.54900, 0.33100, 2.96300] ] ), + ( 165, [ [ -0.21700, -10.72500, 13.59000], [ 1.15600, 1.58500, -0.23100], [ -0.98100, -0.11900, -0.49200], [ -2.54900, 0.33100, 2.96300] ] ), ( 166, [ [ 0.88000, -9.22100, 13.37100], [ 1.03800, 1.42300, -0.20700], [ -1.37100, 0.43200, 0.23800], [ -0.06900, -1.36500, 2.16900] ] ), - ( 167, [ [ -0.93000, -10.81200, 13.23200], [ 0.43900, 2.22800, 0.14800], [ -0.44500, -0.05400, -0.22300], [ -1.16400, 0.59900, 3.69000] ] ), + ( 167, [ [ -0.93000, -10.81200, 13.23200], [ 0.43900, 2.22800, 0.14800], [ -0.44500, -0.05400, -0.22300], [ -1.16400, 0.59900, 3.69000] ] ), ( 168, [ [ -0.48300, -8.53800, 13.38300], [ 0.45600, 2.31900, 0.15400], [ -1.30900, 0.92000, -0.22200], [ 0.11300, -0.51400, 2.64700] ] ), ( 169, [ [ -1.65200, -7.41300, 12.91600], [ 0.63100, 0.43300, 0.19800], [ -1.20000, 1.28300, -0.38200], [ -0.15200, -0.30000, 2.10300] ] ), ( 170, [ [ -2.86200, -5.97800, 12.63700], [ 0.71200, 0.49800, 0.26600], [ -1.00400, 1.61400, -0.19300], [ -0.09600, 0.07200, 1.90500] ] ), - ( 171, [ [ -3.63100, -4.22700, 12.53600], [ 1.04500, 0.89800, 0.69600], [ -0.60500, 1.70400, -0.23300], [ 0.30200, 0.35300, 1.71400] ] ), - ( 172, [ [ -4.07700, -2.59900, 12.18800], [ 0.79000, 0.79000, 0.97500], [ -0.28400, 1.54000, -0.45900], [ 0.29600, -0.79400, 1.10100] ] ) + ( 171, [ [ -3.63227, -4.45910, 12.49220], [ 1.04500, 0.89800, 0.69600], [ -0.68456, 1.67452, -0.18977], [ 0.30547, -0.09891, 1.64883] ] ), + ( 172, [ [ -4.20869, -2.63800, 12.25506], [ 0.79000, 0.79000, 0.97500], [ -0.54977, 1.47235, -0.32850], [ 0.03926, -0.88294, 1.24872] ] ) ] # The number of the elements in the left mouse lung elementsCount1 = 2 @@ -577,7 +629,7 @@ def generateBaseMesh(cls, region, options): lowerRightNodeIds, upperRightNodeIds, nodeIndex, nodeIdentifier) # Diaphragm lung nodes - diaNodeIndex, nodeIdentifier = getDiaphragmaticLungNodes(cache, coordinates, generateParameters, + nodeIndex, nodeIdentifier = getDiaphragmaticLungNodes(cache, coordinates, generateParameters, nodes, nodetemplate, nodeFieldParameters, diaphragmaticElementsCount1, diaphragmaticElementsCount2, diaphragmaticElementsCount3, diaphragmaticNodeIds, nodeIndex, nodeIdentifier) @@ -648,15 +700,6 @@ def generateBaseMesh(cls, region, options): leftLungMeshGroup.addElement(element) lungMeshGroup.addElement(element) - # Apex annotation point - idx = elementsCount1 * elementsCount2 * (elementsCount3 - 1) + elementsCount1 * (elementsCount2 // 2) - element1 = mesh.findElementByIdentifier(idx) - markerPoint = markerPoints.createNode(nodeIdentifier, markerTemplateInternal) - nodeIdentifier += 1 - cache.setNode(markerPoint) - markerName.assignString(cache, 'apex of left lung') - markerLocation.assignMeshLocation(cache, element1, [1.0, 1.0, 1.0]) - # Right lung elements elementIdentifier = getLungElements(coordinates, eftfactory, eftRegular, elementtemplateRegular, elementtemplateCustom, mesh, lungMeshGroup, @@ -672,6 +715,76 @@ def generateBaseMesh(cls, region, options): diaphragmaticElementsCount1, diaphragmaticElementsCount2, diaphragmaticElementsCount3, diaphragmaticNodeIds, elementIdentifier) + # Marker points + lungNodesetGroup = lungGroup.getNodesetGroup(nodes) + markerList = [] + + leftApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("apex of left lung")) + idx = elementsCount1 * elementsCount2 * (elementsCount3 - 1) + elementsCount1 * (elementsCount2 // 2) + markerList.append({"group": leftApexGroup, "elementId": idx, "xi": [1.0, 0.0, 1.0]}) + + leftVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("ventral base of left lung")) + idx = elementsCount1 * elementsCount2 + markerList.append({"group": leftVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) + + leftDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("dorsal base of left lung")) + idx = elementsCount1 // 2 + elementsCount2 + markerList.append({"group": leftDorsalGroup, "elementId": idx, "xi": [0.0, 0.0, 0.0]}) + + lowerRightLungElementsCount = lElementsCount1 * lElementsCount2 * lElementsCount3 + leftLungElementsCount = elementsCount1 * elementsCount2 * elementsCount3 + + rightApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("apex of right lung")) + idx_1 = uElementsCount1 * uElementsCount2 * (uElementsCount3 - 2) + (uElementsCount1 // 2) + idx = leftLungElementsCount + lowerRightLungElementsCount + idx_1 + markerList.append({"group": rightApexGroup, "elementId": idx, "xi": [0.0, 0.0, 1.0]}) + + rightVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("ventral base of right lung")) + idx = leftLungElementsCount + lowerRightLungElementsCount - (lElementsCount1 // 2) + markerList.append({"group": rightVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) + + rightDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("dorsal base of right lung")) + idx = leftLungElementsCount + (lElementsCount1 // 2) + markerList.append({"group": rightDorsalGroup, "elementId": idx, "xi": [0.0, 0.0, 0.0]}) + + upperRightLungElementsCount = (uElementsCount1 - 1) * uElementsCount2 * (uElementsCount3 + 1) + rightLungElementsCount = lowerRightLungElementsCount + upperRightLungElementsCount + + accessoryApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("apex of accessory lung")) + idx_1 = diaphragmaticElementsCount1 * (diaphragmaticElementsCount2 - 1) * (diaphragmaticElementsCount3 - 1) + idx = rightLungElementsCount + leftLungElementsCount + idx_1 + markerList.append({"group": accessoryApexGroup, "elementId": idx, "xi": [0.0, 0.0, 1.0]}) + + accessoryVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("ventral base of accessory lung")) + idx_1 = diaphragmaticElementsCount1 * (diaphragmaticElementsCount2 - 1) * ( + diaphragmaticElementsCount3 - 1) - 1 + idx = rightLungElementsCount + leftLungElementsCount + idx_1 + markerList.append({"group": accessoryVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) + + accessoryDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("dorsal base of accessory lung")) + idx = rightLungElementsCount + leftLungElementsCount + diaphragmaticElementsCount1 + markerList.append({"group": accessoryDorsalGroup, "elementId": idx, "xi": [1.0, 0.0, 0.0]}) + + for marker in markerList: + annotationGroup = marker["group"] + markerPoint = markerPoints.createNode(nodeIdentifier, markerTemplateInternal) + cache.setNode(markerPoint) + markerLocation.assignMeshLocation(cache, mesh.findElementByIdentifier(marker["elementId"]), + marker["xi"]) + markerName.assignString(cache, annotationGroup.getName()) + annotationGroup.getNodesetGroup(nodes).addNode(markerPoint) + lungNodesetGroup.addNode(markerPoint) + nodeIdentifier += 1 + return annotationGroups @classmethod diff --git a/tests/test_lung.py b/tests/test_lung.py index 0c831a4c..3495cb4b 100644 --- a/tests/test_lung.py +++ b/tests/test_lung.py @@ -20,7 +20,7 @@ def test_lung1(self): scaffold = MeshType_3d_lung1 parameterSetNames = scaffold.getParameterSetNames() self.assertEqual(parameterSetNames, [ "Default", "Human 1", "Mouse 1" ]) - options = scaffold.getDefaultOptions(["Human"]) + options = scaffold.getDefaultOptions(["Human 1"]) self.assertEqual(3, len(options)) self.assertFalse(scaffold.checkOptions(options)) @@ -28,7 +28,7 @@ def test_lung1(self): region = context.getDefaultRegion() self.assertTrue(region.isValid()) annotationGroups = scaffold.generateMesh(region, options) - self.assertEqual(11, len(annotationGroups)) + self.assertEqual(17, len(annotationGroups)) fieldmodule = region.getFieldmodule() mesh3d = fieldmodule.findMeshByDimension(3) self.assertEqual(88, mesh3d.getSize()) @@ -116,7 +116,7 @@ def test_lung1(self): removeAnnotationGroups.append(annotationGroup) for annotationGroup in removeAnnotationGroups: annotationGroups.remove(annotationGroup) - self.assertEqual(8, len(annotationGroups)) + self.assertEqual(14, len(annotationGroups)) refineRegion = region.createRegion() refineFieldmodule = refineRegion.getFieldmodule() @@ -135,7 +135,7 @@ def test_lung1(self): for annotation in annotationGroups: if annotation not in oldAnnotationGroups: annotationGroup.addSubelements() - self.assertEqual(11, len(annotationGroups)) + self.assertEqual(17, len(annotationGroups)) mesh3d = refineFieldmodule.findMeshByDimension(3) self.assertEqual(5632, mesh3d.getSize()) From d39b2430a3aec86605bebc23c7e208ca278bc8cb Mon Sep 17 00:00:00 2001 From: arti-sukasem <51779010+arti-sukasem@users.noreply.github.com> Date: Wed, 12 May 2021 16:22:45 +1200 Subject: [PATCH 2/5] added markers to dorsal and medial bases of lungs, updated parameters --- src/scaffoldmaker/annotation/lung_terms.py | 13 +- .../meshtypes/meshtype_3d_lung1.py | 380 +++++++++--------- 2 files changed, 198 insertions(+), 195 deletions(-) diff --git a/src/scaffoldmaker/annotation/lung_terms.py b/src/scaffoldmaker/annotation/lung_terms.py index cbb33f23..8c6c5ef2 100644 --- a/src/scaffoldmaker/annotation/lung_terms.py +++ b/src/scaffoldmaker/annotation/lung_terms.py @@ -5,21 +5,22 @@ # convention: preferred name, preferred id, followed by any other ids and alternative names lung_terms = [ ("apex of accessory lung", "None"), - ("apex of left lung", "None"), - ("apex of right lung", "None"), + ("apex of left lung", "ILX:0778112"), + ("apex of right lung", "ILX:0778113"), ("dorsal base of accessory lung", "None"), ("dorsal base of left lung", "None"), ("dorsal base of right lung", "None"), - ("horizontal fissure of right lung", "None"), - ("lateral side of right lung", "None"), + ("horizontal fissure of right lung", "ILX:0746327"), + ("laterodorsal tip of middle lobe of right lung", "None"), ("left lung", "UBERON:0002168", "ILX:0733450"), ("lower lobe of left lung", "UBERON:0008953", "ILX:0735534"), ("lower lobe of right lung", "UBERON:0002171", "ILX:0725712"), ("lung", "UBERON:0002048", "ILX:0726937"), ("middle lobe of right lung", "UBERON:0002174", "ILX:0733737"), ("medial base of left lung", "None"), - ("oblique fissure of left lung", "None"), - ("oblique fissure of right lung", "None"), + ("medial base of right lung", "None"), + ("oblique fissure of left lung", "ILX:0778115"), + ("oblique fissure of right lung", "ILX:0778114"), ("right lung", "UBERON:0002167", "ILX:0729582"), ("right lung accessory lobe", "UBERON:0004890", "ILX:0728696"), ("upper lobe of left lung", "UBERON:0008952", "ILX:0735339"), diff --git a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py index c2e22f89..42a735f9 100644 --- a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py +++ b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py @@ -96,6 +96,7 @@ def generateBaseMesh(cls, region, options): elementtemplateCustom = mesh.createElementtemplate() elementtemplateCustom.setElementShapeType(Element.SHAPE_TYPE_CUBE) + # Annotation groups lungGroup = AnnotationGroup(region, get_lung_term("lung")) leftLungGroup = AnnotationGroup(region, get_lung_term("left lung")) annotationGroups = [leftLungGroup, lungGroup] @@ -115,18 +116,50 @@ def generateBaseMesh(cls, region, options): middleRightLungMeshGroup = middleRightLungGroup.getMeshGroup(mesh) annotationGroups.append(middleRightLungGroup) + # Marker points/groups + leftApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("apex of left lung")) + rightApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("apex of right lung")) + leftDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("dorsal base of left lung")) + rightDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("dorsal base of right lung")) + leftVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("ventral base of left lung")) + rightVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("ventral base of right lung")) + if isHuman: + # Annotation groups lowerLeftLungGroup = AnnotationGroup(region, get_lung_term("lower lobe of left lung")) lowerLeftLungMeshGroup = lowerLeftLungGroup.getMeshGroup(mesh) annotationGroups.append(lowerLeftLungGroup) upperLeftLungGroup = AnnotationGroup(region, get_lung_term("upper lobe of left lung")) upperLeftLungMeshGroup = upperLeftLungGroup.getMeshGroup(mesh) annotationGroups.append(upperLeftLungGroup) + + # Marker points/groups + leftMedialGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("medial base of left lung")) + rightMedialGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("medial base of right lung")) + rightLateralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term( + "laterodorsal tip of middle lobe of right lung")) + elif isMouse: + # Annotation groups diaphragmaticLungGroup = AnnotationGroup(region, get_lung_term("right lung accessory lobe")) diaphragmaticLungMeshGroup = diaphragmaticLungGroup.getMeshGroup(mesh) annotationGroups.append(diaphragmaticLungGroup) + accessoryApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("apex of accessory lung")) + accessoryVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("ventral base of accessory lung")) + accessoryDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, + get_lung_term("dorsal base of accessory lung")) # Annotation fiducial point markerGroup = findOrCreateFieldGroup(fm, "marker") @@ -168,138 +201,138 @@ def generateBaseMesh(cls, region, options): if isHuman: #valueLabels = [ Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D_DS3 ] nodeFieldParameters = [ - ( 1, [ [ 204.214, 217.387,-341.252], [ -62.947, -35.911, 0.688], [ 25.814, -29.305, 29.820], [ -4.512, 17.903, 91.032] ] ), - ( 2, [ [ 269.306, 209.072,-354.889], [ -20.103, -4.908, 79.411], [ 47.047, -49.139, -2.543], [ 0.175, 15.720, 89.961] ] ), - ( 3, [ [ 223.341, 188.444,-308.232], [ -60.426, -24.274, -1.081], [ 20.503, -36.477, 21.902], [ 3.351, 18.019, 52.584] ] ), - ( 4, [ [ 175.176, 162.285,-317.267], [ -27.384, -29.319, -26.704], [ 9.020, -29.937, 61.149], [ 2.480, 21.158, 82.660] ] ), - ( 5, [ [ 292.990, 153.587,-341.674], [ -10.831, 26.074, 66.575], [ -10.247, -58.090, 17.240], [ 10.595, 29.035, 61.452] ] ), - ( 6, [ [ 241.787, 149.543,-291.578], [ -78.934, -21.344, 11.789], [ 22.813, -35.233, 12.622], [ -6.632, 28.612, 43.054] ] ), - ( 7, [ [ 155.702, 126.322,-273.198], [ -89.521, -38.973, 20.606], [ 16.492, -32.096, 4.354], [ 14.895, 29.074, 37.867] ] ), - ( 8, [ [ 279.346, 98.455,-327.717], [ -21.666, 16.370, 35.485], [ -18.452, -43.354, 8.934], [ 18.541, 53.843, 54.860] ] ), - ( 9, [ [ 251.887, 110.979,-294.259], [ -46.884, -0.667, 13.029], [ -6.640, -34.923, -9.542], [ -1.793, 34.831, 57.261] ] ), - ( 10, [ [ 203.263, 108.034,-281.647], [ -46.333, -22.115, 13.236], [ 35.945, -18.664, -6.836], [ 5.249, 39.630, 30.209] ] ), - ( 11, [ [ 256.412, 71.152,-323.525], [ -14.537, 11.023, 15.628], [ -7.850, -10.251, 25.280], [ 35.613, 35.978, 71.913] ] ), - ( 12, [ [ 243.935, 80.999,-302.872], [ -16.394, 8.598, 18.165], [ -8.074, -19.651, -6.343], [ 10.839, 34.046, 66.123] ] ), - ( 13, [ [ 226.628, 91.702,-285.892], [ -23.230, -0.285, 15.358], [ 7.839, -18.769, -11.448], [ 6.974, 29.647, 42.160] ] ), - ( 14, [ [ 217.057, 233.615,-251.001], [ -56.387, -12.798, -2.074], [ 6.551, -32.468, 4.928], [ 7.180, 7.996, 92.202] ] ), - ( 15, [ [ 267.567, 218.538,-268.608], [ -31.271, -28.559, 17.780], [ 28.703, -41.920, -22.876], [ -2.499, 2.835, 82.368] ] ), - ( 16, [ [ 227.626, 202.773,-250.316], [ -46.421, -9.158, 11.317], [ 7.297, -31.033, 0.920], [ -0.016, 8.237, 63.668] ] ), - ( 17, [ [ 178.210, 194.840,-246.533], [ -50.393, -5.414, -8.376], [ -22.308, -44.954, 12.222], [ 3.296, 11.647, 70.649] ] ), - ( 18, [ [ 296.250, 178.154,-283.773], [ -52.959, -4.397, 27.035], [ 10.998, -43.061, -0.027], [ -2.037, 9.722, 56.957] ] ), - ( 19, [ [ 240.706, 174.731,-251.298], [ -65.503, -16.663, 18.653], [ 12.413, -26.875, 3.862], [ -0.209, 7.605, 43.189] ] ), - ( 20, [ [ 170.036, 151.299,-240.510], [ -77.888, -18.667, 9.104], [ 21.815, -36.197, 2.313], [ 11.396, 18.147, 30.385] ] ), - ( 21, [ [ 297.502, 143.355,-275.679], [ -48.044, 9.944, 32.993], [ -5.929, -36.823, 16.652], [ -0.988, 42.077, 47.842] ] ), - ( 22, [ [ 250.978, 148.431,-247.195], [ -50.687, 1.846, 9.041], [ 9.032, -28.662, 9.417], [ -4.776, 32.784, 41.932] ] ), - ( 23, [ [ 204.680, 141.636,-246.513], [ -35.493, -20.244, 16.094], [ 31.013, -11.624, 3.008], [ -11.195, 25.677, 39.181] ] ), - ( 24, [ [ 287.464, 106.726,-251.655], [ -25.621, 6.219, 23.134], [ -19.294, -29.795, 27.926], [ 17.692, 37.852, 69.883] ] ), - ( 25, [ [ 257.922, 116.607,-238.393], [ -31.830, 9.651, 4.808], [ -9.432, -33.031, 3.881], [ -10.300, 42.470, 62.047] ] ), - ( 26, [ [ 228.110, 129.472,-238.391], [ -30.191, 5.166, -9.731], [ 19.291, -27.684, 5.002], [ -37.186, 41.031, 47.384] ] ), - ( 27, [ [ 219.598, 234.911,-158.376], [ -59.865, -18.569, -15.474], [ 6.365, -34.542, -21.886], [ -2.376, -5.948, 82.683] ] ), - ( 28, [ [ 271.479, 212.598,-191.075], [ -45.292, -11.794, 7.859], [ 30.495, -31.862, -46.294], [ 1.874, -12.175, 77.537] ] ), - ( 29, [ [ 226.886, 201.943,-182.154], [ -46.036, -0.006, 5.281], [ 5.759, -30.320, -27.476], [ 4.237, -12.188, 64.641] ] ), - ( 30, [ [ 176.812, 202.108,-180.833], [ -45.198, -1.262, 0.548], [ -3.376, -48.006, -27.616], [ -1.725, -4.852, 66.277] ] ), - ( 31, [ [ 291.428, 178.268,-232.360], [ -43.644, -20.853, 24.989], [ 9.889, -35.193, -43.486], [ 4.353, -16.910, 50.697] ] ), - ( 32, [ [ 237.268, 175.712,-212.165], [ -56.954, -16.756, 10.424], [ 13.032, -26.067, -32.916], [ 0.506, -11.344, 40.699] ] ), - ( 33, [ [ 175.732, 160.132,-211.466], [ -60.962, -16.488, -9.264], [ 19.400, -26.292, -38.189], [ 2.855, 9.850, 36.322] ] ), - ( 34, [ [ 219.695, 225.898, -85.992], [ -73.383, -7.270, 0.075], [ 9.466, -34.972, -20.253], [ -0.443, -16.457, 58.378] ] ), - ( 35, [ [ 276.870, 199.241,-113.455], [ -50.589, -4.004, 2.780], [ 27.986, -43.217, -64.463], [ -2.551, -14.345, 71.169] ] ), - ( 36, [ [ 228.512, 190.564,-119.932], [ -48.632, -2.241, 2.901], [ 10.553, -37.072, -44.027], [ -7.211, -10.078, 60.219] ] ), - ( 37, [ [ 177.143, 186.587,-116.041], [ -45.024, -10.633, 6.490], [ 36.691, -40.359, -41.741], [ -7.404, -14.171, 56.958] ] ), - ( 38, [ [ 294.618, 150.473,-187.485], [ -61.912, 3.854, 13.211], [ -7.435, -61.052, 31.811], [ 4.313, 46.520, 70.475] ] ), - ( 39, [ [ 237.513, 155.974,-176.526], [ -52.879, 5.296, 5.774], [ -7.421, -52.768, 1.120], [ -9.440, 39.508, 59.010] ] ), - ( 40, [ [ 185.657, 157.799,-171.994], [ -42.801, 6.979, 3.264], [ 17.078, -26.547, 0.836], [ -6.732, 20.365, 70.432] ] ), - ( 41, [ [ 246.491, 63.880,-307.113], [ -7.559, 4.781, 7.258], [ -10.994, -7.365, 11.231], [ 30.221, 28.933, 71.221] ] ), - ( 42, [ [ 239.325, 70.695,-300.571], [ -8.415, 6.741, 6.479], [ -7.094, -9.314, 3.351], [ 10.779, 13.380, 72.272] ] ), - ( 43, [ [ 231.513, 77.178,-292.656], [ -12.525, 4.255, 3.319], [ -0.928, -16.243, -4.197], [ 11.706, 13.532, 59.617] ] ), - ( 44, [ [ 230.978, 62.444,-297.245], [ -9.805, 9.975, 8.601], [ -8.962, -8.354, 1.170], [ -5.556, 2.237, 55.703] ] ), - ( 45, [ [ 258.329, 78.766,-234.210], [ -8.603, 4.498, 0.874], [ -37.867, -20.422, 2.056], [ 3.424, 4.618, 67.449] ] ), - ( 46, [ [ 248.799, 84.344,-233.104], [ -10.725, 6.321, 0.445], [ -24.858, -21.841, -4.453], [ -12.855, -3.519, 64.769] ] ), - ( 47, [ [ 238.275, 93.157,-232.136], [ -12.861, 7.971, -1.034], [ -9.789, -33.602, -12.451], [ -9.411, 14.946, 61.906] ] ), - ( 48, [ [ 223.573, 66.187,-240.080], [ -17.027, 20.665, -0.831], [ -28.759, -7.073, -9.354], [ -34.523, 0.750, 50.708] ] ), - ( 49, [ [ 254.223, 82.226,-174.237], [ -21.821, 14.346, -0.313], [ -70.819, -36.828, -4.473], [ -6.474, 1.765, 58.654] ] ), - ( 50, [ [ 232.669, 96.602,-174.812], [ -20.714, 13.936, 0.272], [ -45.067, -35.411, -8.030], [ -18.872, 10.884, 54.020] ] ), - ( 51, [ [ 211.888, 109.358,-175.186], [ -20.256, 12.504, 0.821], [ -16.313, -50.413, -13.321], [ -35.462, 14.924, 45.481] ] ), - ( 52, [ [ 187.821, 69.713,-187.140], [ -17.219, 27.275, 2.313], [ -45.037, -16.749, -14.126], [ -30.897, 6.798, 50.061] ] ), - ( 53, [ [ 213.425, 207.382, -42.148], [ -56.500, 0.342, -5.827], [ 6.048, -18.275, -16.938], [ -5.756, -22.958, 37.324] ] ), - ( 54, [ [ 258.130, 182.777, -53.571], [ -32.759, -3.828, -5.952], [ 46.842, -36.257, -14.249], [ -42.970, -18.327, 45.780] ] ), - ( 55, [ [ 221.272, 179.757, -61.791], [ -41.743, -3.435, -5.875], [ 10.486, -36.897, -21.690], [ -5.754, -11.017, 49.078] ] ), - ( 56, [ [ 175.167, 176.300, -67.698], [ -50.920, -3.892, 0.663], [ -2.971, -33.698, -41.085], [ -2.018, -13.036, 51.511] ] ), - ( 57, [ [ 270.017, 129.272, -88.096], [ -48.699, 18.376, -7.516], [ -17.418, -51.841, -36.718], [ -50.518, -29.109, 80.611] ] ), - ( 58, [ [ 224.626, 141.720, -98.406], [ -43.872, 3.149, -4.298], [ -5.587, -42.256, -31.773], [ 2.711, -18.020, 68.031] ] ), - ( 59, [ [ 185.274, 147.077,-102.145], [ -35.411, -3.106, -4.228], [ 15.191, -29.940, -31.756], [ -14.714, -1.454, 64.340] ] ), - ( 60, [ [ 236.417, 87.160,-119.825], [ -26.717, 14.046, -6.516], [ -56.297, -42.646, -20.424], [ -33.135, 2.045, 67.489] ] ), - ( 61, [ [ 209.605, 101.124,-126.121], [ -27.728, 12.727, -4.885], [ -42.756, -25.066, -21.644], [ -36.638, 1.272, 45.800] ] ), - ( 62, [ [ 181.792, 113.536,-131.292], [ -27.851, 13.168, -2.607], [ -7.595, -34.516, -8.836], [ -30.082, -2.456, 33.978] ] ), - ( 63, [ [ 161.721, 78.671,-141.179], [ -21.726, 42.029, -15.240], [ -51.129, -20.611, -10.957], [ -8.563, 21.673, 52.565] ] ), - ( 64, [ [ 203.028, 174.619, -25.286], [ -60.155, -2.415, -3.955], [ -17.934, -44.396, 2.254], [ -5.864, 0.361, 32.179] ] ), - ( 65, [ [ 189.729, 132.313, -57.386], [ -66.731, 15.839, -24.611], [ -7.400, -14.578, -13.799], [ -31.717, 2.116, 31.478] ] ), - ( 66, [ [ 162.058, 109.623, -84.659], [ -29.742, 25.246, -50.572], [ -39.636, -28.589, -27.407], [ -49.298, 7.984, 46.787] ] ), - ( 67, [ [ 112.805, 220.636,-344.408], [ -57.668, 31.639, -21.158], [ -27.490, -7.728, 31.544], [ -7.261, 25.118, 94.160] ] ), - ( 68, [ [ 138.804, 176.487,-317.842], [ -42.283, 17.815, 25.150], [ 35.114, -29.696, 45.703], [ -14.588, 30.925, 88.491] ] ), - ( 69, [ [ 91.579, 200.374,-316.049], [ -54.312, 26.071, -18.610], [ -21.624, -23.063, 24.318], [ 4.200, -7.127, 69.610] ] ), - ( 70, [ [ 45.375, 218.344,-353.416], [ -33.266, 4.881, -54.504], [ -61.732, -41.224, 6.887], [ 0.041, 11.357, 87.726] ] ), - ( 71, [ [ 157.132, 141.529,-272.796], [ -81.449, 61.031, -11.075], [ -12.618, -42.064, 37.035], [ -3.164, 13.541, 40.904] ] ), - ( 72, [ [ 74.446, 172.925,-295.847], [ -76.526, 2.015, -34.054], [ -12.428, -38.556, 16.527], [ 4.041, -7.852, 55.914] ] ), - ( 73, [ [ 19.591, 150.815,-334.755], [ -3.346, -58.150, -34.776], [ -2.241, -66.932, 16.771], [ -37.214, 32.111, 65.155] ] ), - ( 74, [ [ 110.041, 132.222,-267.112], [ -38.045, -0.257, 4.674], [ -17.685, -35.955, 7.777], [ 13.262, 5.765, 25.693] ] ), - ( 75, [ [ 69.151, 126.208,-283.827], [ -43.252, -15.831, -25.640], [ 5.343, -46.939, 6.574], [ -2.573, 8.979, 43.158] ] ), - ( 76, [ [ 36.295, 94.586,-323.318], [ -23.915, -46.011, -46.866], [ 28.030, -41.990, 18.732], [ -35.404, 53.450, 65.721] ] ), - ( 77, [ [ 102.468, 96.616,-272.124], [ -19.736, -13.518, -6.858], [ 7.724, -16.668, 0.398], [ 8.984, 23.773, 34.657] ] ), - ( 78, [ [ 83.599, 83.999,-282.740], [ -14.132, -14.812, -15.431], [ 32.211, -10.811, 2.136], [ -23.147, 18.638, 18.839] ] ), - ( 79, [ [ 67.542, 71.106,-298.778], [ -14.808, -11.987, -18.636], [ 32.574, -12.596, 14.591], [ -50.592, 24.213, 13.600] ] ), - ( 80, [ [ 109.300, 234.171,-248.531], [ -52.302, 25.979, -18.010], [ -19.303, -36.966, 0.740], [ -4.582, 1.836, 96.421] ] ), - ( 81, [ [ 135.331, 190.757,-238.135], [ -39.821, 0.430, -4.178], [ 22.077, -42.173, 7.556], [ -3.889, 9.995, 73.763] ] ), - ( 82, [ [ 91.699, 199.576,-247.800], [ -46.192, 17.407, -15.151], [ -16.031, -32.155, 0.697], [ -3.291, 2.421, 66.468] ] ), - ( 83, [ [ 46.055, 227.254,-268.328], [ -44.924, 35.895, -26.293], [ -53.545, -36.498, -12.333], [ 1.708, 5.118, 82.513] ] ), - ( 84, [ [ 152.423, 152.232,-233.455], [ -80.326, 24.447, -7.950], [ -7.571, -34.911, -1.433], [ -4.926, 12.512, 36.525] ] ), - ( 85, [ [ 77.265, 169.881,-247.131], [ -69.352, 10.546, -19.469], [ -10.609, -28.577, 2.252], [ 1.874, 0.636, 41.232] ] ), - ( 86, [ [ 14.896, 174.390,-270.710], [ -54.454, -2.347, -27.972], [ -12.870, -45.688, 3.505], [ -0.893, 15.664, 55.197] ] ), - ( 87, [ [ 128.461, 142.532,-236.966], [ -58.190, 0.601, 0.855], [ -23.184, -13.581, -4.697], [ 19.504, 21.536, 33.741] ] ), - ( 88, [ [ 70.179, 142.990,-243.592], [ -57.694, 0.305, -14.313], [ -4.787, -27.614, 2.693], [ 4.708, 24.314, 36.010] ] ), - ( 89, [ [ 14.153, 142.929,-264.777], [ -53.191, -0.026, -29.220], [ 3.625, -31.174, 8.060], [ 4.661, 44.056, 51.260] ] ), - ( 90, [ [ 112.858, 122.968,-231.669], [ -45.051, -10.899, -8.599], [ -10.735, -28.480, 2.607], [ 14.630, 28.758, 45.554] ] ), - ( 91, [ [ 67.804, 115.230,-241.806], [ -44.888, -4.537, -11.644], [ 7.971, -30.404, 4.318], [ -6.116, 42.327, 60.537] ] ), - ( 92, [ [ 23.424, 113.892,-254.850], [ -43.703, 1.854, -14.388], [ 21.699, -35.829, 12.761], [ -29.770, 57.684, 72.277] ] ), - ( 93, [ [ 104.207, 234.698,-152.733], [ -57.745, 26.895, -7.074], [ -25.137, -25.018, -30.805], [ 0.558, -2.469, 77.755] ] ), - ( 94, [ [ 135.749, 192.199,-173.993], [ -57.597, 9.559, -12.340], [ 21.057, -36.953, -26.041], [ 2.245, -7.457, 61.353] ] ), - ( 95, [ [ 84.928, 206.459,-183.823], [ -43.517, 18.872, -7.207], [ -13.067, -31.107, -30.940], [ 0.766, -1.586, 66.478] ] ), - ( 96, [ [ 49.256, 228.018,-188.624], [ -27.295, 23.783, -2.350], [ -46.031, -28.715, -40.634], [ 2.797, -2.517, 77.864] ] ), - ( 97, [ [ 146.834, 163.963,-199.827], [ -73.680, 9.289, -14.410], [ -1.766, -30.206, -31.659], [ -15.120, 1.557, 27.005] ] ), - ( 98, [ [ 78.264, 173.394,-213.785], [ -63.451, 9.570, -13.504], [ -7.411, -31.806, -29.975], [ 1.456, -1.298, 43.628] ] ), - ( 99, [ [ 19.915, 182.976,-226.748], [ -53.236, 9.593, -12.420], [ -16.164, -43.819, -39.572], [ 3.936, 4.415, 60.578] ] ), - ( 100, [ [ 108.125, 230.310, -93.528], [ -60.591, 28.132, 1.067], [ -13.931, -33.044, -12.007], [ 4.596, -12.946, 57.694] ] ), - ( 101, [ [ 141.968, 177.527,-116.980], [ -50.186, 17.132, -3.637], [ 13.607, -45.829, -52.443], [ 9.726, -10.010, 55.555] ] ), - ( 102, [ [ 93.588, 196.028,-117.204], [ -45.032, 22.969, 1.979], [ -14.635, -34.317, -34.909], [ 8.867, -14.370, 62.135] ] ), - ( 103, [ [ 51.988, 222.000,-112.818], [ -38.646, 27.605, 7.146], [ -48.820, -28.128, -36.207], [ 1.902, -5.868, 69.749] ] ), - ( 104, [ [ 133.055, 155.147,-183.014], [ -50.398, 9.084, 23.516], [ -9.198, -33.156, 20.315], [ 12.146, 20.340, 62.470] ] ), - ( 105, [ [ 80.120, 164.701,-163.613], [ -55.883, 12.515, 11.024], [ 5.477, -51.428, 35.601], [ 13.858, 40.686, 62.263] ] ), - ( 106, [ [ 22.839, 178.915,-159.278], [ -58.296, 15.237, -1.951], [ -15.341, -83.376, 10.208], [ 25.833, 57.492, 69.483] ] ), - ( 107, [ [ 113.145, 88.046,-272.215], [ -9.350, -8.812, -7.836], [ 13.248, -7.657, -1.039], [ -0.655, 3.227, 25.179] ] ), - ( 108, [ [ 104.281, 79.019,-281.413], [ -8.550, -9.748, -9.808], [ 22.001, 2.416, 6.648], [ -24.411, 8.417, 37.367] ] ), - ( 109, [ [ 94.545, 69.272,-290.944], [ -5.290, -12.555, -10.931], [ 29.050, 6.005, 16.206], [ -30.419, 6.714, 45.052] ] ), - ( 110, [ [ 126.005, 78.321,-270.120], [ -1.523, -8.676, -5.124], [ 23.157, -2.063, 11.752], [ 14.097, -10.214, 23.163] ] ), - ( 111, [ [ 110.779, 90.715,-234.929], [ -20.626, -3.554, 0.196], [ 25.282, -19.816, -8.626], [ -7.947, 4.073, 48.804] ] ), - ( 112, [ [ 87.111, 87.499,-235.179], [ -25.846, -6.325, -4.452], [ 34.640, -25.610, 1.322], [ -10.371, 9.996, 53.349] ] ), - ( 113, [ [ 60.277, 76.353,-242.362], [ -29.944, -9.378, -10.303], [ 59.866, -22.816, 11.218], [ -24.802, 14.723, 58.770] ] ), - ( 114, [ [ 134.247, 72.870,-242.126], [ -0.240, -10.729, 1.399], [ 58.738, 2.608, 2.449], [ 2.955, -0.060, 31.056] ] ), - ( 115, [ [ 120.546, 104.051,-176.461], [ -29.942, -7.987, 0.166], [ 1.555, -50.037, -14.328], [ 26.018, 2.579, 44.916] ] ), - ( 116, [ [ 86.014, 97.683,-176.263], [ -39.074, -4.278, 0.229], [ 32.793, -54.376, -24.428], [ 11.840, 5.546, 52.991] ] ), - ( 117, [ [ 42.944, 92.427,-176.508], [ -47.600, 1.553, 0.293], [ 65.220, -66.919, -26.935], [ 7.926, 7.876, 68.237] ] ), - ( 118, [ [ 131.420, 72.412,-210.024], [ -0.226, -19.168, 1.863], [ 53.830, -1.229, -27.395], [ -0.892, -2.235, 47.338] ] ), - ( 119, [ [ 113.261, 209.394, -39.187], [ -58.015, 16.946, 3.696], [ -7.484, -28.183, -16.526], [ 8.287, -32.069, 37.482] ] ), - ( 120, [ [ 153.826, 168.085, -64.529], [ -56.165, -3.576, 3.482], [ 4.306, -46.196, -41.906], [ -10.396, -1.517, 54.580] ] ), - ( 121, [ [ 102.498, 178.383, -60.042], [ -46.388, 16.516, 4.961], [ -14.042, -33.069, -26.005], [ 16.284, -10.358, 47.201] ] ), - ( 122, [ [ 64.189, 202.493, -54.339], [ -28.979, 30.763, 5.289], [ -43.499, -29.808, -24.779], [ 33.688, -24.925, 55.097] ] ), - ( 123, [ [ 123.540, 138.168,-101.485], [ -34.841, -0.986, 9.056], [ -6.374, -36.724, -42.407], [ -7.235, -12.421, 65.846] ] ), - ( 124, [ [ 85.021, 144.013, -90.695], [ -43.409, 7.248, 9.410], [ -0.486, -43.000, -39.187], [ 23.904, -17.493, 55.956] ] ), - ( 125, [ [ 37.909, 155.369, -80.880], [ -50.463, 16.948, 9.056], [ 0.425, -61.681, -36.664], [ 34.615, -21.375, 78.761] ] ), - ( 126, [ [ 141.972, 106.508,-140.392], [ -33.103, -6.698, 5.569], [ 24.138, -37.596, -25.097], [ 17.276, -3.374, 47.967] ] ), - ( 127, [ [ 107.369, 98.979,-132.633], [ -36.268, -6.344, 10.645], [ 42.344, -39.637, -37.346], [ 30.705, 0.158, 44.660] ] ), - ( 128, [ [ 70.498, 93.229,-117.454], [ -37.708, -2.027, 19.331], [ 68.482, -57.114, -32.013], [ 58.629, -15.041, 46.951] ] ), - ( 129, [ [ 163.749, 72.265,-157.014], [ -9.560, -38.172, 14.941], [ 64.175, -23.344, 7.170], [ -12.951, 22.136, 66.011] ] ), - ( 130, [ [ 121.257, 174.979, -23.486], [ -61.541, 10.197, 19.011], [ -3.863, -47.244, -6.568], [ 14.695, -1.216, 28.119] ] ), - ( 131, [ [ 117.057, 132.479, -55.764], [ -61.489, 4.844, 37.672], [ 11.585, -39.956, -35.077], [ 34.195, -6.085, 11.996] ] ), - ( 132, [ [ 146.435, 101.417, -88.480], [ -12.117, -28.636, 11.354], [ 25.548, -28.865, -55.831], [ 50.980, -2.219, 39.663] ] ) + ( 1, [ [238.96169, 226.06812, -343.43996], [-61.11589, 7.39465, 11.89523], [ -30.76581, -29.91568, 35.20122], [-8.03835,15.14892,94.83977] ] ), + ( 2, [ [285.20366, 190.31182, -350.07243], [-54.32449, -11.37468, 71.07193], [ 26.97968, -42.41533, 1.60136], [-27.94843,44.55751,77.87808] ] ), + ( 3, [ [223.34100, 188.44400, -308.23200], [-63.07335, 8.96391, 4.33079], [ 2.85232, -41.99340, 26.47692], [ 6.50901,20.99596,51.37272] ] ), + ( 4, [ [176.12078, 187.95290, -334.30467], [-12.21420, 11.49438, -33.57606], [ 2.99473, -26.22842, 19.79406], [-6.63367,-13.93528,91.81281] ] ), + ( 5, [ [292.99000, 153.58700, -341.67400], [-28.36359, 4.94768, 56.56986], [ -0.87774, -47.75565, 11.50698], [ 7.56668,36.67408,57.88686] ] ), + ( 6, [ [241.78700, 149.54300, -291.57800], [-71.60526, -13.46081, 38.76136], [ 14.61976, -40.54216, 6.56251], [ 0.33257,36.38556,37.23453] ] ), + ( 7, [ [155.35122, 127.69892, -273.82518], [-96.50597, -31.65008, -1.92059], [ -1.01701, -23.72904, 6.49136], [18.59949,33.07221,32.67652] ] ), + ( 8, [ [279.34600, 98.45500, -327.71700], [-12.81487, 17.66496, 37.55641], [ -21.29912, -41.68125, 8.70509], [31.03294,48.25749,54.30009] ] ), + ( 9, [ [251.88700, 110.97900, -294.25900], [-40.86100, 5.67079, 25.71928], [ 0.10022, -35.84751, -6.32927], [ 6.49329,41.85543,52.16744] ] ), + ( 10, [ [203.26300, 108.03400, -281.64700], [-52.69189, -10.80320, -0.46282], [ 36.78814, -19.74531, -6.60712], [16.37854,35.98275,29.77094] ] ), + ( 11, [ [256.41200, 71.15200, -323.52500], [- 9.85470, 9.24288, 22.09696], [ -17.61383, -17.51492, 14.32986], [42.65656,30.14688,73.65583] ] ), + ( 12, [ [243.93500, 80.99900, -302.87200], [-15.00801, 10.36550, 19.00436], [ -7.36567, -20.80071, -0.79453], [30.12027,31.34641,61.43762] ] ), + ( 13, [ [226.62800, 91.70200, -285.89200], [-19.43479, 10.94410, 14.82505], [ 13.45744, -17.45727, -6.70345], [19.48569,35.01710,31.24560] ] ), + ( 14, [ [232.07411, 235.69876, -247.76428], [-54.92565, - 7.81817, 16.63557], [ -13.17593, -32.29020, -3.12488], [-4.93492, 4.95235,90.50376] ] ), + ( 15, [ [267.56700, 218.53800, -268.60800], [-33.25224, -18.69676, 24.30420], [ 34.37980, -29.86829,-19.35106], [-6.43345,10.47365,82.56681] ] ), + ( 16, [ [227.62600, 202.77300, -250.31600], [-45.70013, -12.31054, 11.60033], [ 4.91341, -32.00831, -1.82826], [ 1.96535, 7.35354,63.70444] ] ), + ( 17, [ [178.21000, 194.84000, -246.53300], [-51.96221, - 3.47719, -3.94552], [ -30.90750, -49.20223, 4.73225], [-2.96190, 1.29501,75.13714] ] ), + ( 18, [ [296.25000, 178.15400, -283.77300], [-44.05805, 6.07426, 39.82616], [ 14.21016, -42.15834, -1.64208], [-1.21954,11.62212,56.59275] ] ), + ( 19, [ [240.70600, 174.73100, -251.29800], [-65.09937, -13.18642, 23.37871], [ 11.73316, -27.40803, 1.68665], [-2.50679,12.65356,41.95740] ] ), + ( 20, [ [170.03600, 151.29900, -240.51000], [-74.19583, -32.77433, -1.75436], [ 22.63784, -36.07139, -0.93095], [ 9.78386,16.37566,32.19940] ] ), + ( 21, [ [297.50200, 143.35500, -275.67900], [-41.75575, 11.05269, 40.73634], [ -3.98149, -37.43511, 15.98202], [ 4.76819,40.74808,48.88201] ] ), + ( 22, [ [250.97800, 148.43100, -247.19500], [-49.40725, - 1.39965, 14.39268], [ 8.88604, -29.27432, 6.34914], [-8.37384,32.64539,41.45804] ] ), + ( 23, [ [204.68000, 141.63600, -246.51300], [-40.28449, -11.37060, -12.15256], [ 30.73245, -12.09131, 2.29128], [-14.89368,28.25726,38.04476] ] ), + ( 24, [ [287.46400, 106.72600, -251.65500], [-27.81682, 7.82344, 19.33390], [ -20.50545, -33.64894, 21.60006], [18.86081,40.58653,69.07123] ] ), + ( 25, [ [257.92200, 116.60700, -238.39300], [-30.53741, 11.73331, 6.68288], [ -1.06420, -33.38460, 7.35631], [-3.23290,38.73873,65.30394] ] ), + ( 26, [ [228.11000, 129.47200, -238.39100], [-28.24731, 13.59282, -6.48616], [ 20.41224, -25.44354, 8.38236], [-18.63835,36.71911,60.36230] ] ), + ( 27, [ [228.63372, 235.81606, -159.90821], [-63.49559, - 4.67022, 9.11393], [ -7.67720, -35.93077,-17.25352], [-2.77465,-4.84501,80.63342] ] ), + ( 28, [ [271.47900, 212.59800, -191.07500], [-40.60440, -15.55496, 12.31944], [ 32.83245, -30.47300,-38.31859], [ 4.66882,-9.67209,77.93521] ] ), + ( 29, [ [226.88600, 201.94300, -182.15400], [-47.95595, - 5.51536, 5.33273], [ 4.39046, -30.83852,-26.76900], [ 0.49085,-6.34474,65.50401] ] ), + ( 30, [ [176.81200, 202.10800, -180.83300], [-51.54777, 5.77320, -2.65752], [ -27.38298, -44.89569,-30.87234], [-0.54598,-4.15468,66.37461] ] ), + ( 31, [ [291.42800, 178.26800, -232.36000], [-47.54245, 3.79596, 28.32713], [ 13.09667, -35.07916,-42.86933], [-0.96373,-14.42396,51.38954] ] ), + ( 32, [ [237.26800, 175.71200, -212.16500], [-59.34096, - .02266, 11.20691], [ 12.02454, -26.89842,-32.58142], [-1.75287,-9.65403,39.79137] ] ), + ( 33, [ [175.73200, 160.13200, -211.46600], [-62.30361, -21.64151, -9.58922], [ 16.03710, -32.97626,-36.43165], [ 8.00308, 4.42352,35.78965] ] ), + ( 34, [ [226.47258, 226.91239, - 86.94871], [-70.21971, - 6.56204, 0.09607], [ -1.07781, -34.80919,-20.76585], [-4.86046,-17.18503,59.39277] ] ), + ( 35, [ [276.87000, 199.24100, -113.45500], [-45.99412, -10.81828, -11.43359], [ 41.56431, -41.60880,-53.00759], [-8.05186,-15.58240,70.33218] ] ), + ( 36, [ [228.51200, 190.56400, -119.93200], [-50.29281, - 6.43480, -1.41375], [ 5.18484, -36.97720,-44.65763], [-2.95235,-11.14150,60.43018] ] ), + ( 37, [ [177.14300, 186.58700, -116.04100], [-52.01698, - 1.50679, 9.12067], [ -22.15506, -40.80430,-51.77319], [-1.01643,-12.85378,56.83227] ] ), + ( 38, [ [294.61800, 150.47300, -187.48500], [-59.45644, 7.40936, 14.28534], [ -17.23438, -53.48293, 39.36971], [-4.44658,47.14659,70.33578] ] ), + ( 39, [ [237.51300, 155.97400, -176.52600], [-54.63582, 3.57797, 7.60437], [ - 2.25011, -44.18651, 26.88604], [-14.46436,37.15769,59.59554] ] ), + ( 40, [ [185.65700, 157.79900, -171.99400], [-48.93933, 0.07183, 1.45556], [ 24.27252, -31.58739, 30.71017], [-24.55990,30.11494,63.74141] ] ), + ( 41, [ [246.49100, 63.88000, -307.11300], [- 6.82060, 6.94095, 5.85056], [ -13.61923, -4.42194, 13.68915], [20.44407,20.84230,77.79503] ] ), + ( 42, [ [239.32500, 70.69500, -300.57100], [- 7.49968, 6.67712, 7.22339], [ -6.61967, -9.56751, 2.88190], [22.65399,13.69900,68.94088] ] ), + ( 43, [ [231.51300, 77.17800, -292.65600], [- 8.11343, 6.28045, 8.59508], [ 2.10276, -15.03856, -5.78031], [22.50001,14.45866,56.93531] ] ), + ( 44, [ [230.97800, 62.44400, -297.24500], [- 9.80500, 9.97500, 8.60100], [ -9.87027, -6.79403, 3.69374], [ 6.57943, 3.56483,54.87536] ] ), + ( 45, [ [258.32900, 78.76600, -234.21000], [- 8.86050, 3.99010, 1.14251], [ -35.41421, -21.81730, 5.57717], [ 3.05080, 8.74505,67.32174] ] ), + ( 46, [ [248.79900, 84.34400, -233.10400], [-10.13806, 7.13823, 1.06157], [ -19.14901, -27.52461, -1.11793], [-4.21696,13.29002,64.43814] ] ), + ( 47, [ [238.27500, 93.15700, -232.13600], [-10.87080, 10.45014, 0.87130], [ -3.95002, -35.41035, -1.74361], [-10.04643,16.81149,61.39606] ] ), + ( 48, [ [223.57300, 66.18700, -240.08000], [-17.02700, 20.66500, -0.83100], [ -28.35511, -7.96167,-11.62546], [-21.66337, 3.77275,57.16987] ] ), + ( 49, [ [254.22300, 82.22600, -174.23700], [-21.92261, 15.19138, -0.67785], [ -63.01724, -44.54553, -0.87789], [-11.27104, 4.28773,58.22535] ] ), + ( 50, [ [232.66900, 96.60200, -174.81200], [-21.18048, 13.55722, -0.47200], [ -30.28502, -49.68869, -6.62427], [-20.10583, 8.25059,53.92831] ] ), + ( 51, [ [211.88800, 109.35800, -175.18600], [-20.37604, 11.95157, -0.27593], [ -1.09208, -52.71729, -9.55424], [-29.02890, 9.80012,50.83595] ] ), + ( 52, [ [187.82100, 69.71300, -187.14000], [-17.21900, 27.27500, 2.31300], [ -50.52789, -3.47788,-15.33564], [-30.98173, 6.57516,49.90838] ] ), + ( 53, [ [220.21825, 205.66197, - 42.33880], [-54.99046, 0.02684, -6.40726], [ 0.05371, -19.15208,-11.14849], [-13.50643,-29.31064,32.37773] ] ), + ( 54, [ [258.13000, 182.77700, - 53.57100], [-32.14671, - 2.77922, -9.15111], [ 31.14741, -41.46945,-24.39708], [-41.29860,-13.74292,49.20956] ] ), + ( 55, [ [221.27200, 179.75700, - 61.79100], [-41.50471, - 3.25519, -7.27050], [ 2.05338, -32.51214,-27.67109], [-14.47662,-7.86193,47.81114] ] ), + ( 56, [ [175.16700, 176.30000, - 67.69800], [-50.65118, - 3.65490, -4.53865], [ -16.89522, -36.08558,-37.61351], [13.47706,-6.68229,49.47788] ] ), + ( 57, [ [270.01700, 129.27200, - 88.09600], [-47.89412, 16.13724, -13.75119], [ -12.34485, -52.58830,-36.48171], [-64.68053,-9.72582,74.23944] ] ), + ( 58, [ [224.62600, 141.72000, - 98.40600], [-42.69048, 8.69225, -6.81213], [ -6.07947, -40.46491,-33.05834], [-28.11511,-12.34519,60.89072] ] ), + ( 59, [ [185.27400, 147.07700, -102.14500], [-35.75214, 2.00707, -0.66103], [ 3.23605, -32.39972,-32.70151], [ 2.59920,-14.06669,59.62659] ] ), + ( 60, [ [236.41700, 87.16000, -119.82500], [-26.26780, 14.71701, -6.84809], [ -58.16650, -30.54529,-30.45656], [-47.65768,14.07330,55.97662] ] ), + ( 61, [ [209.60500, 101.12400, -126.12100], [-27.33472, 13.19895, -5.73831], [ -33.86432, -34.96476,-23.72738], [-35.46433, 6.56261,46.91283] ] ), + ( 62, [ [181.79200, 113.53600, -131.29200], [-28.26820, 11.61556, -4.59993], [ -12.80399, -36.54972,-20.58378], [-27.06173, 0.31634,48.70083] ] ), + ( 63, [ [161.72100, 78.67100, -141.17900], [-21.72600, 42.02900, -15.24000], [ -57.07212, -9.16533, -5.88999], [-15.06849,20.16875,54.10475] ] ), + ( 64, [ [203.02800, 174.61900, - 25.28600], [-57.48190, -3.93560, -15.18085], [ -19.17222, -44.19620, -4.68998], [-21.18458,-2.32339,24.25232] ] ), + ( 65, [ [189.72900, 132.31300, - 57.38600], [-60.34501, 19.97808, -33.24085], [ -22.34843, -33.20915,-31.02907], [-37.99491,-5.89703,19.27990] ] ), + ( 66, [ [162.05800, 109.62300, - 84.65900], [-50.08517, 33.10155, -44.20013], [ -18.24852, -28.95492,-43.61351], [-58.32053,10.20628,35.22056] ] ), + ( 67, [ [ 73.77101, 232.02781, -353.40564], [-61.96117, -3.47476, -3.27214], [ 13.20375, -37.14290, 36.57091], [ 5.36168,14.44806,101.87448] ] ), + ( 68, [ [128.29817, 193.86368, -339.86060], [-34.19083, -7.61523, 35.65625], [ 33.29531, -50.12321, 17.87942], [ 6.64332, 1.01572,116.83948] ] ), + ( 69, [ [ 80.16891, 198.25628, -320.32901], [-56.82543, -1.57657, -2.12030], [ -0.54056, -30.02715, 29.21509], [-0.45140,-6.25962,70.62403] ] ), + ( 70, [ [ 27.23616, 201.07814, -346.07232], [-44.71641, 6.58371, -45.01390], [ -29.41621, -46.29326, 10.61852], [-0.85876,13.89331,79.48348] ] ), + ( 71, [ [154.51637, 136.17472, -271.15466], [-81.81813, 63.44949, -10.60706], [ -33.74301, -18.21468, 11.94521], [-1.99676,16.79498,40.66719] ] ), + ( 72, [ [ 74.44600, 172.92500, -295.84700], [-74.82363, 3.65865, -36.43927], [ -5.91351, -36.69837, 20.49153], [ 3.81517,-6.94447,56.03773] ] ), + ( 73, [ [ 19.59100, 150.81500, -334.75500], [-30.18953, -41.43263, -35.80608], [ 3.90168, -55.34070, 11.86376], [-10.54738,31.63248,72.90707] ] ), + ( 74, [ [110.04100, 132.22200, -267.11200], [-37.03161, 5.81778, -4.18020], [ -32.80840, -30.61837, -1.05827], [17.73640, 4.95587,25.87416] ] ), + ( 75, [ [ 69.15100, 126.20800, -283.82700], [-40.80611, -18.46512, -28.80478], [ 5.17211, -46.40825, 6.63929], [-2.57390, 8.97880,43.15763] ] ), + ( 76, [ [ 36.29500, 94.58600, -323.31800], [-23.88850, -42.94968, -48.12749], [ 27.25153, -41.37917, 20.59743], [-37.53451,49.79384,66.69272] ] ), + ( 77, [ [102.46800, 96.61600, -272.12400], [-19.87993, -12.23683, -7.75418], [ 8.92165, -24.92582, -2.23952], [ 5.77902,23.22023,35.98234] ] ), + ( 78, [ [ 83.59900, 83.99900, -282.74000], [-17.66199, -12.87648, -13.40134], [ 24.80146, -22.88787, 1.66119], [-23.09932,18.37536,19.14698] ] ), + ( 79, [ [ 67.54200, 71.10600, -298.77800], [-14.32693, -12.79780, -18.51304], [ 32.26623, -11.30821, 15.96647], [-50.74255,24.27259,13.77249] ] ), + ( 80, [ [ 78.39418, 242.54684, -252.84156], [-64.56190, 2.22180, -16.49452], [ 6.93614, -53.89662, 1.26171], [ 3.87961, 6.57643,99.15800] ] ), + ( 81, [ [133.75682, 202.97920, -239.93939], [-50.31990, -15.26410, -7.57279], [ 38.21559, -50.16420, 10.20990], [ 4.73278,-1.82704,82.44790] ] ), + ( 82, [ [ 81.14882, 197.21536, -250.60239], [-53.64818, 4.11497, -13.56541], [ -1.45720, -36.53061, 3.21111], [ 2.41302, 4.20259,68.54914] ] ), + ( 83, [ [ 28.99369, 211.44117, -266.54450], [-49.58059, 23.81715, -17.92775], [ -31.71814, -39.27233, -8.97282], [ 4.37554, 6.80519,79.41450] ] ), + ( 84, [ [152.42300, 152.23200, -233.45500], [-80.34343, 24.38261, -7.96455], [ -16.42111, -38.93772, -0.32957], [-4.55484,13.45907,36.26878] ] ), + ( 85, [ [ 77.26500, 169.88100, -247.13100], [-69.35399, 10.72766, -19.32613], [ -5.49530, -27.18993, 3.51498], [ 1.81127, 0.87750,41.22460] ] ), + ( 86, [ [ 14.89600, 174.39000, -270.71000], [-54.70185, -1.68861, -27.48907], [ -7.00255, -35.65020, 1.52682], [ 1.21927,15.33190,54.75512] ] ), + ( 87, [ [128.46100, 142.53200, -236.96600], [-58.18538, 0.70524, 0.71469], [ -21.55380, -16.26582, 1.15824], [18.90423,15.60842,34.12699] ] ), + ( 88, [ [ 70.17900, 142.99000, -243.59200], [-57.76264, 0.20330, -13.97426], [ -4.78554, -27.59853, 2.69204], [ 4.70758,24.31423,36.00992] ] ), + ( 89, [ [ 14.15300, 142.92900, -264.77700], [-53.75475, -0.32209, -28.11612], [ 4.35738, -30.96406, 8.11414], [-6.08703,46.01332,49.21219] ] ), + ( 90, [ [112.85800, 122.96800, -231.66900], [-45.05147, -10.89848, -8.59796], [ -10.64309, -27.65369, 1.69910], [14.98001,29.39949,44.79706] ] ), + ( 91, [ [ 67.80400, 115.23000, -241.80600], [-44.88763, -4.53666, -11.64381], [ 7.96662, -30.41510, 4.31772], [-6.02814,42.12770,60.67983] ] ), + ( 92, [ [ 23.42400, 113.89200, -254.85000], [-43.70265, 1.85346, -14.38831], [ 21.73880, -35.91609, 12.13603], [-29.81552,57.62669,71.99957] ] ), + ( 93, [ [ 81.54483, 245.30030, -155.33935], [-70.83114, 6.11577, -11.63960], [ 8.52360, -41.09975,-27.17989], [ 2.43537,-5.74056,80.18700] ] ), + ( 94, [ [137.51453, 200.35571, -174.84086], [-54.19592, 4.96162, -11.67151], [ 31.24860, -46.20180,-26.76120], [ 4.18297,-13.17289,62.43592] ] ), + ( 95, [ [ 84.92800, 206.45900, -183.82300], [-50.88567, 7.23658, -6.27308], [ -1.83217, -36.22166,-29.54855], [ 6.29304,-0.56475,67.58513] ] ), + ( 96, [ [ 35.94235, 214.70120, -187.54303], [-46.98626, 9.22830, -1.16451], [ -31.26538, -33.47569,-38.69700], [ 6.58466, 2.16199,76.79664] ] ), + ( 97, [ [146.83400, 163.96300, -199.82700], [-73.67951, 9.29057, -14.41012], [ -4.82075, -31.73641,-33.95790], [-12.39683,-0.54149,28.06956] ] ), + ( 98, [ [ 78.26400, 173.39400, -213.78500], [-63.45119, 9.57025, -13.50406], [ -7.40980, -31.80247,-29.97100], [ 1.45578,-1.29769,43.62631] ] ), + ( 99, [ [ 19.91500, 182.97600, -226.74800], [-53.23611, 9.59182, -12.41944], [ -11.16675, -36.28244,-39.16367], [ 4.61389, 4.05126,58.15681] ] ), + ( 100, [ [ 83.50224, 234.64926, - 93.34096], [-58.79918, -13.27188, -2.98609], [ 11.68399, -31.50287, -9.03831], [ 9.58529,-18.59117,60.22329] ] ), + ( 101, [ [145.80563, 174.07081, -118.02793], [-46.74854, 17.81685, -2.30639], [ -13.34685, -78.32083,-40.55773], [ 8.54408,-16.04052,56.07402] ] ), + ( 102, [ [ 93.58800, 196.02800, -117.20400], [-49.95875, 19.16507, 1.86099], [ -0.43197, -37.89186,-36.52477], [ 8.86393,-14.36488,62.11610] ] ), + ( 103, [ [ 41.92640, 212.44694, -112.86108], [-52.85215, 20.39957, 6.28767], [ -18.68472, -20.86182,-37.31912], [15.09654,-6.79844,67.94684] ] ), + ( 104, [ [133.05500, 155.14700, -183.01400], [-49.38179, 7.00844, 26.28397], [ -18.24900, -30.11614, 18.53991], [15.50630,28.60785,58.61571] ] ), + ( 105, [ [ 80.12000, 164.70100, -163.61300], [-55.81089, 12.00344, 12.15752], [ 5.48197, -51.45307, 35.70974], [13.86825,40.73158,62.33716] ] ), + ( 106, [ [ 22.83900, 178.91500, -159.27800], [-58.03270, 16.22372, -3.44488], [ 16.80473, -64.31852, 51.09538], [13.86011,52.54326,71.32694] ] ), + ( 107, [ [113.14500, 88.04600, -272.21500], [- 8.43016, -8.66642, -9.02426], [ 12.25223, -9.54323, 0.97035], [-6.92901,-1.83778,25.00206] ] ), + ( 108, [ [104.28100, 79.01900, -281.41300], [- 9.29690, -9.38662, -9.37074], [ 22.32816, -3.11395, 6.37341], [-23.63112, 7.26560,38.06333] ] ), + ( 109, [ [ 94.54500, 69.27200, -290.94400], [-10.17418, -10.10647, -9.69039], [ 30.55827, 2.92727, 14.09682], [-40.00238, 2.49956,37.65681] ] ), + ( 110, [ [126.00500, 78.32100, -270.12000], [- 1.52300, -8.67600, -5.12400], [ 20.52272, 1.66938, 15.75421], [13.02504,-7.49930,24.26177] ] ), + ( 111, [ [110.77900, 90.71500, -234.92900], [-20.82535, 0.51561, 2.85764], [ 12.90491, -29.42784, -6.21718], [ 2.43409, 7.23866,48.71450] ] ), + ( 112, [ [ 87.11100, 87.49900, -235.17900], [-25.90332, -6.96265, -3.44097], [ 34.70113, -25.23976, 1.19083], [-10.12621, 9.51526,53.46615] ] ), + ( 113, [ [ 60.27700, 76.35300, -242.36200], [-27.36242, -15.10726, -10.76674], [ 59.10038, -26.02342, 8.21833], [-27.36205,11.58923,58.40431] ] ), + ( 114, [ [134.24700, 72.87000, -242.12600], [- 0.24000, -10.72900, 1.39900], [ 56.38595, -3.80341,-14.27833], [ 3.04781,-3.16598,30.96038] ] ), + ( 115, [ [120.54600, 104.05100, -176.46100], [-30.22927, -6.78939, 0.39580], [ -0.52830, -49.98930,-17.24829], [17.65083, 7.33038,47.96876] ] ), + ( 116, [ [ 86.01400, 97.68300, -176.26300], [-38.80687, -5.94035, -0.00016], [ 31.73477, -53.29160,-28.21754], [11.83818, 5.54348,52.97363] ] ), + ( 117, [ [ 42.94400, 92.42700, -176.50800], [-47.31026, -4.56944, -0.48960], [ 65.57180, -66.08095,-30.85236], [ 6.26843, 8.95760,67.95456] ] ), + ( 118, [ [131.42000, 72.41200, -210.02400], [- 0.22600, -19.16800, 1.86300], [ 50.24854, 2.33869,-33.43067], [10.88159,-0.41785,46.58427] ] ), + ( 119, [ [100.41654, 208.82619, - 37.66502], [-57.67642, 14.49144, -1.30042], [ 10.40468, -25.81947,-16.62988], [21.99927,-34.77575,35.39534] ] ), + ( 120, [ [153.82600, 168.08500, - 64.52900], [-56.06588, 2.38347, 3.63052], [ 8.70418, -48.67971,-45.75992], [-11.85076,-1.56973,54.58364] ] ), + ( 121, [ [102.49800, 178.38300, - 60.04200], [-45.57797, 18.16950, 5.27794], [ -6.74504, -33.81801,-27.31969], [15.64260,-9.75675,47.66143] ] ), + ( 122, [ [ 64.18900, 202.49300, - 54.33900], [-30.20692, 29.24394, 5.96358], [ -37.74103, -27.04993,-24.31724], [42.26290,-21.94720,50.07548] ] ), + ( 123, [ [123.54000, 138.16800, -101.48500], [-34.04147, 3.25521, 11.07149], [ -5.75333, -35.47229,-43.69763], [-8.48470,-11.05867,65.87765] ] ), + ( 124, [ [ 85.02100, 144.01300, - 90.69500], [-42.90106, 8.42566, 10.47746], [ -0.49183, -43.01317,-39.19981], [23.93840,-17.02025,56.10322] ] ), + ( 125, [ [ 37.90900, 155.36900, - 80.88000], [-51.24508, 14.26467, 9.13865], [ -0.99332, -62.08434,-35.75497], [29.37213,-35.88090,67.46481] ] ), + ( 126, [ [141.97200, 106.50800, -140.39200], [-33.02569, -8.26429, 4.12525], [ 21.54894, -35.18838,-28.54772], [15.82392,-0.81452,47.47247] ] ), + ( 127, [ [107.36900, 98.97900, -132.63300], [-35.96992, -6.74106, 11.36647], [ 42.06196, -38.61797,-35.69944], [30.05861, 1.85532,44.88732] ] ), + ( 128, [ [ 70.49800, 93.22900, -117.45400], [-37.59767, -4.73696, 18.90384], [ 66.64553, -50.02738,-42.81734], [55.68621, 4.60237,52.62383] ] ), + ( 129, [ [163.74900, 72.26500, -157.01400], [- 9.56000, -38.17200, 14.94100], [ 66.25687, -13.87968,-12.24198], [11.42222,14.68756,67.86727] ] ), + ( 130, [ [121.25700, 174.97900, - 23.48600], [-59.48007, 21.83152, 13.42335], [ 12.10669, -47.30221, -8.25033], [20.84002, 2.80918,24.24598] ] ), + ( 131, [ [117.05700, 132.47900, - 55.76400], [-59.63637, 8.29556, 37.61918], [ 13.62644, -39.62645,-35.02889], [34.45597,-5.19218,11.81235] ] ), + ( 132, [ [146.43500, 101.41700, - 88.48000], [-57.99731, -13.25263, 40.93618], [ 26.27834, -32.59566,-51.11229], [47.63012, 2.99282,43.01833] ] ) ] # Create nodes @@ -349,52 +382,38 @@ def generateBaseMesh(cls, region, options): lowerLeftElementCount = (lElementsCount1 * (lElementsCount2-1) * lElementsCount3 + lElementsCount1) - leftApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("apex of left lung")) idx = lowerLeftElementCount + (uElementsCount1 * uElementsCount2 * (uElementsCount3//2) + uElementsCount1//2) markerList.append({ "group" : leftApexGroup, "elementId" : idx, "xi" : [0.0, 0.0, 1.0] }) - leftVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("ventral base of left lung")) - idx = lElementsCount1 * (lElementsCount2 - 1) + 1 - markerList.append({"group": leftVentralGroup, "elementId": idx, "xi": [0.0, 1.0, 0.0]}) + idx = 1 + markerList.append({"group": leftDorsalGroup, "elementId": idx, "xi": [0.0, 0.0, 0.0]}) - leftMedialGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("medial base of left lung")) idx = lElementsCount1 * (lElementsCount2 // 2) markerList.append({"group": leftMedialGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) + idx = lElementsCount1 * (lElementsCount2 - 1) + 1 + markerList.append({"group": leftVentralGroup, "elementId": idx, "xi": [0.0, 1.0, 0.0]}) + upperLeftElementCount = (uElementsCount1 * uElementsCount2 * (uElementsCount3-1)) leftLungElementCount = lowerLeftElementCount + upperLeftElementCount lowerRightElementCount = lowerLeftElementCount - rightApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("apex of right lung")) + idx = leftLungElementCount + 1 + markerList.append({"group": rightDorsalGroup, "elementId": idx, "xi": [0.0, 0.0, 0.0]}) + idx = leftLungElementCount + lowerRightElementCount + \ (uElementsCount1 * uElementsCount2 * (uElementsCount3//2) + uElementsCount1//2) markerList.append({"group": rightApexGroup, "elementId": idx, "xi": [0.0, 0.0, 1.0]}) - rightVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("ventral base of right lung")) + idx = leftLungElementCount + lElementsCount1 + 1 + markerList.append({"group": rightMedialGroup, "elementId": idx, "xi": [0.0, 1.0, 0.0]}) + idx = leftLungElementCount + lElementsCount1 * lElementsCount2 markerList.append({"group": rightVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) - rightLateralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("lateral side of right lung")) idx = leftLungElementCount + (lElementsCount1 * lElementsCount2 * (lElementsCount3 - 1)) + lElementsCount1 markerList.append({"group": rightLateralGroup, "elementId": idx, "xi": [1.0, 1.0, 1.0]}) - for marker in markerList: - annotationGroup = marker["group"] - markerPoint = markerPoints.createNode(nodeIdentifier, markerTemplateInternal) - cache.setNode(markerPoint) - markerLocation.assignMeshLocation(cache, mesh.findElementByIdentifier(marker["elementId"]), - marker["xi"]) - markerName.assignString(cache, annotationGroup.getName()) - annotationGroup.getNodesetGroup(nodes).addNode(markerPoint) - lungNodesetGroup.addNode(markerPoint) - nodeIdentifier += 1 - elif isMouse: # valueLabels = [ Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D_DS3 ] nodeFieldParameters = [ @@ -719,71 +738,54 @@ def generateBaseMesh(cls, region, options): lungNodesetGroup = lungGroup.getNodesetGroup(nodes) markerList = [] - leftApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("apex of left lung")) idx = elementsCount1 * elementsCount2 * (elementsCount3 - 1) + elementsCount1 * (elementsCount2 // 2) markerList.append({"group": leftApexGroup, "elementId": idx, "xi": [1.0, 0.0, 1.0]}) - leftVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("ventral base of left lung")) idx = elementsCount1 * elementsCount2 markerList.append({"group": leftVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) - leftDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("dorsal base of left lung")) idx = elementsCount1 // 2 + elementsCount2 markerList.append({"group": leftDorsalGroup, "elementId": idx, "xi": [0.0, 0.0, 0.0]}) lowerRightLungElementsCount = lElementsCount1 * lElementsCount2 * lElementsCount3 leftLungElementsCount = elementsCount1 * elementsCount2 * elementsCount3 - rightApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("apex of right lung")) idx_1 = uElementsCount1 * uElementsCount2 * (uElementsCount3 - 2) + (uElementsCount1 // 2) idx = leftLungElementsCount + lowerRightLungElementsCount + idx_1 - markerList.append({"group": rightApexGroup, "elementId": idx, "xi": [0.0, 0.0, 1.0]}) + markerList.append({"group": rightApexGroup, "elementId": idx, "xi": [0.0, 1.0, 1.0]}) - rightVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("ventral base of right lung")) idx = leftLungElementsCount + lowerRightLungElementsCount - (lElementsCount1 // 2) markerList.append({"group": rightVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) - rightDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("dorsal base of right lung")) idx = leftLungElementsCount + (lElementsCount1 // 2) markerList.append({"group": rightDorsalGroup, "elementId": idx, "xi": [0.0, 0.0, 0.0]}) upperRightLungElementsCount = (uElementsCount1 - 1) * uElementsCount2 * (uElementsCount3 + 1) rightLungElementsCount = lowerRightLungElementsCount + upperRightLungElementsCount - accessoryApexGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("apex of accessory lung")) idx_1 = diaphragmaticElementsCount1 * (diaphragmaticElementsCount2 - 1) * (diaphragmaticElementsCount3 - 1) idx = rightLungElementsCount + leftLungElementsCount + idx_1 markerList.append({"group": accessoryApexGroup, "elementId": idx, "xi": [0.0, 0.0, 1.0]}) - accessoryVentralGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("ventral base of accessory lung")) idx_1 = diaphragmaticElementsCount1 * (diaphragmaticElementsCount2 - 1) * ( diaphragmaticElementsCount3 - 1) - 1 idx = rightLungElementsCount + leftLungElementsCount + idx_1 markerList.append({"group": accessoryVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) - accessoryDorsalGroup = findOrCreateAnnotationGroupForTerm(annotationGroups, region, - get_lung_term("dorsal base of accessory lung")) - idx = rightLungElementsCount + leftLungElementsCount + diaphragmaticElementsCount1 - markerList.append({"group": accessoryDorsalGroup, "elementId": idx, "xi": [1.0, 0.0, 0.0]}) - - for marker in markerList: - annotationGroup = marker["group"] - markerPoint = markerPoints.createNode(nodeIdentifier, markerTemplateInternal) - cache.setNode(markerPoint) - markerLocation.assignMeshLocation(cache, mesh.findElementByIdentifier(marker["elementId"]), - marker["xi"]) - markerName.assignString(cache, annotationGroup.getName()) - annotationGroup.getNodesetGroup(nodes).addNode(markerPoint) - lungNodesetGroup.addNode(markerPoint) - nodeIdentifier += 1 + idx = rightLungElementsCount + leftLungElementsCount + diaphragmaticElementsCount1 + 1 + + markerList.append({"group": accessoryDorsalGroup, "elementId": idx, "xi": [0.0, 0.0, 0.0]}) + + for marker in markerList: + annotationGroup = marker["group"] + markerPoint = markerPoints.createNode(nodeIdentifier, markerTemplateInternal) + cache.setNode(markerPoint) + markerLocation.assignMeshLocation(cache, mesh.findElementByIdentifier(marker["elementId"]), + marker["xi"]) + markerName.assignString(cache, annotationGroup.getName()) + annotationGroup.getNodesetGroup(nodes).addNode(markerPoint) + lungNodesetGroup.addNode(markerPoint) + nodeIdentifier += 1 return annotationGroups From 9c6a62937774745f67bed554af6253e1799eb95d Mon Sep 17 00:00:00 2001 From: arti-sukasem <51779010+arti-sukasem@users.noreply.github.com> Date: Thu, 13 May 2021 12:30:22 +1200 Subject: [PATCH 3/5] Fixed invalid meshes (folded and swept) and moved apex of right lung --- .../meshtypes/meshtype_3d_lung1.py | 119 +++++++++--------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py index 42a735f9..5b9e7fc7 100644 --- a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py +++ b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py @@ -417,64 +417,64 @@ def generateBaseMesh(cls, region, options): elif isMouse: # valueLabels = [ Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D_DS3 ] nodeFieldParameters = [ - ( 1, [ [ 0.07403, -9.56577, 3.60357], [ 0.86121, 0.91663, 3.13808], [ -2.20273, -0.23540, 0.46445], [ -1.94940, -4.27711, 3.05223] ] ), - ( 2, [ [ -0.26840, -9.51435, 6.62504], [ -1.32766, -0.69883, 2.49447], [ -1.88606, 0.44731, -0.04715], [ -0.69427, -0.26800, 2.50448] ] ), - ( 3, [ [ -1.92122, -11.21142, 1.24012], [ -0.28342, 2.14970, 2.92579], [ -2.81056, -0.34804, -1.27573], [ -2.55210, -2.28852, 5.04724] ] ), - ( 4, [ [ -2.11315, -9.49992, 4.16902], [ -0.09808, 1.25545, 2.90775], [ -2.14191, 0.37028, 0.66019], [ -1.47041, -2.64230, 2.03708] ] ), - ( 5, [ [ -2.12755, -8.67391, 6.97346], [ 0.06838, 0.39146, 2.66632], [ -1.73858, 1.21136, 0.74634], [ 0.25644, 0.37400, 2.97672] ] ), - ( 6, [ [ -4.29865, -10.50146, 1.20789], [ -0.07732, 1.64159, 3.92748], [ -2.46054, 1.42565, 0.66974], [ -1.93502, -1.59827, 5.10560] ] ), - ( 7, [ [ -4.14920, -8.83455, 4.90568], [ 0.37643, 1.68784, 3.45762], [ -1.80302, 1.03452, 0.80364], [ -0.64093, -1.37872, 1.23650] ] ), - ( 8, [ [ -3.57171, -7.14590, 8.10918], [ 0.77574, 1.68338, 2.93877], [ -1.29608, 1.66826, 0.98992], [ 0.15957, 0.71843, 2.11887] ] ), - ( 9, [ [ -6.33487, -8.48704, 2.61154], [ 0.55076, 0.44025, 2.97780], [ -1.73125, 2.62991, 2.59931], [ -1.05677, -0.95380, 4.51872] ] ), - ( 10, [ [ -5.64451, -7.49459, 5.73593], [ 0.82111, 1.53758, 3.22310], [ -1.53921, 1.63772, 0.76315], [ -1.03865, -0.57333, 1.61890] ] ), - ( 11, [ [ -4.70306, -5.37742, 8.94242], [ 1.05156, 2.67077, 3.15912], [ -0.89806, 2.08222, 0.80487], [ 0.37686, 0.48294, 1.66467] ] ), - ( 12, [ [ -7.18669, -5.55843, 6.39603], [ 0.59266, 2.89465, 3.74833], [ -1.53648, 2.22206, 0.55392], [ 0.54053, 0.26298, 3.06847] ] ), - ( 13, [ [ -5.30307, -3.02550, 9.68332], [ 2.97978, 2.03799, 2.65285], [ -0.29788, 2.58614, 0.66778], [ 0.94911, 0.77526, 2.35180] ] ), - ( 14, [ [ -1.46058, -12.47910, 7.13881], [ 2.09808, 1.60645, 1.90038], [ -1.91804, 1.09320, 0.05112], [ -1.01520, -1.31998, 3.85443] ] ), - ( 15, [ [ -0.66496, -9.64655, 9.32022], [ -0.45511, 3.64447, 2.21117], [ -1.11840, 1.37152, 0.44962], [ -0.09056, 0.00680, 2.85604] ] ), - ( 16, [ [ -3.84500, -12.69000, 6.04000], [ 0.26136, 0.69836, 0.43532], [ -2.37651, 0.65682, -0.60958], [ -1.25919, -0.63612, 4.48080] ] ), - ( 17, [ [ -3.22600, -11.20300, 7.18000], [ 0.97561, 2.27288, 1.84296], [ -1.59753, 1.45029, 0.03086], [ -0.58171, -0.45193, 3.74440] ] ), - ( 18, [ [ -1.88919, -8.18409, 9.76756], [ 1.69766, 3.76414, 3.33147], [ -1.32971, 1.55297, 0.44493], [ 0.21986, 0.60501, 2.60653] ] ), - ( 19, [ [ -5.74928, -11.42016, 5.96798], [ 0.89023, 1.09247, 0.39442], [ -1.74757, 1.95743, 0.30639], [ -0.94426, -0.22098, 4.35656] ] ), - ( 20, [ [ -4.63302, -9.60659, 7.20025], [ 1.30646, 2.49071, 2.05426], [ -1.52303, 1.81789, 0.31218], [ -0.20767, 0.09073, 3.12297] ] ), - ( 21, [ [ -3.32590, -6.54328, 10.20546], [ 1.30123, 3.61772, 3.93635], [ -1.19682, 1.64930, 0.44198], [ 0.33162, 0.48490, 2.06808] ] ), - ( 22, [ [ -7.01142, -8.92140, 6.69950], [ 0.23567, 0.57897, 0.36479], [ -0.67829, 3.29557, 1.55266], [ -0.28477, 0.09552, 3.60778] ] ), - ( 23, [ [ -6.22043, -7.60863, 7.85901], [ 1.34296, 2.03838, 1.94904], [ -1.05423, 2.27614, 0.99210], [ -0.00580, 0.40454, 2.45985] ] ), - ( 24, [ [ -4.28573, -4.92425, 10.64091], [ 2.52517, 3.32869, 3.61294], [ -0.65090, 2.02589, 0.78353], [ 0.45760, 0.42313, 1.73144] ] ), - ( 25, [ [ -6.63445, -5.23571, 9.11277], [ 1.35015, 3.27219, 2.64912], [ 0.21711, 2.37051, 1.45456], [ 0.56325, 0.38213, 2.36108] ] ), - ( 26, [ [ -4.43830, -2.62681, 11.78349], [ 2.92245, 1.86906, 2.58639], [ 0.33621, 2.49812, 1.46020], [ 0.76889, 0.01269, 1.81992] ] ), - ( 27, [ [ -1.93100, -12.43600, 10.55900], [ 2.55948, 1.63705, 1.27258], [ -1.15116, 2.23905, 0.69133], [ -0.63533, 0.34578, 3.55330] ] ), - ( 28, [ [ -0.41906, -9.48854, 12.25446], [ 0.42218, 3.87081, 1.92577], [ -1.25698, 2.34270, -0.16936], [ -0.92031, -0.18621, 2.96052] ] ), - ( 29, [ [ -4.52000, -12.65600, 9.95600], [ 1.35217, 2.21656, 0.83086], [ -2.40411, 0.82849, -0.43856], [ -0.46652, 0.64974, 3.64498] ] ), - ( 30, [ [ -3.13300, -10.25400, 10.92300], [ 1.42083, 2.58580, 1.10253], [ -1.23997, 2.09990, 0.02894], [ -0.18554, 0.74076, 3.42815] ] ), - ( 31, [ [ -1.68905, -7.48625, 12.16850], [ 1.46636, 2.94825, 1.38780], [ -1.27716, 1.65104, -0.00177], [ -0.07484, 0.05607, 2.61833] ] ), - ( 32, [ [ -6.25192, -11.09845, 9.75297], [ 2.03540, 3.10903, 0.47581], [ -1.36274, 2.20607, -0.13783], [ -0.09509, 0.79342, 3.51115] ] ), - ( 33, [ [ -4.37800, -8.28200, 10.63900], [ 1.68764, 2.48600, 1.29046], [ -1.20779, 1.81108, -0.31319], [ 0.13704, 0.85273, 3.27166] ] ), - ( 34, [ [ -2.91467, -6.17486, 12.23057], [ 1.21597, 1.69613, 1.85746], [ -1.06873, 1.49397, 0.11655], [ 0.27563, 0.08593, 2.12064] ] ), - ( 35, [ [ -6.98986, -8.44416, 9.71097], [ 1.17990, 1.47658, -0.09107], [ -0.07160, 3.36699, 0.60791], [ 0.36234, 0.70327, 2.96964] ] ), - ( 36, [ [ -5.53200, -6.64300, 10.30600], [ 1.67267, 2.04670, 1.28602], [ -0.91425, 1.84457, 0.24689], [ 0.68684, 0.84626, 2.70679] ] ), - ( 37, [ [ -3.78791, -4.53368, 12.40070], [ 1.78494, 2.13535, 2.85449], [ -0.46849, 1.73952, 0.54313], [ 0.51030, 0.08286, 1.66357] ] ), - ( 38, [ [ -6.08345, -4.82242, 11.11703], [ 1.72607, 2.92044, 1.90180], [ -0.17690, 1.68471, 1.28954], [ 0.70579, 0.15651, 2.08713] ] ), - ( 39, [ [ -3.80003, -2.88835, 13.25652], [ 2.66118, 0.88778, 2.22689], [ 0.41935, 1.46422, 1.10304], [ 0.90439, -0.64196, 1.70368] ] ), - ( 40, [ [ -2.72404, -11.77560, 14.14633], [ 1.55340, 1.17580, 1.01170], [ -0.80753, 2.16476, -0.12068], [ -1.17968, 1.29992, 2.61646] ] ), - ( 41, [ [ -2.42583, -10.01198, 14.66971], [ -0.68264, 1.67734, 0.02500], [ 0.88132, 1.72091, 0.32221], [ -0.93777, 0.07446, 2.84817] ] ), - ( 42, [ [ -4.78400, -11.50200, 13.19700], [ 1.12674, 1.88575, 0.73723], [ -1.79954, 1.09346, -0.69608], [ 0.33288, 1.24262, 2.91702] ] ), - ( 43, [ [ -3.53400, -9.71000, 13.96000], [ 1.36979, 1.69244, 0.78650], [ -0.81167, 1.96451, -0.25187], [ -0.46943, -0.15270, 2.45281] ] ), - ( 44, [ [ -2.05298, -8.12746, 14.76513], [ 1.58734, 1.46811, 0.82122], [ -0.19471, 1.93276, -0.15298], [ -0.28410, -0.98265, 2.58715] ] ), - ( 45, [ [ -5.98782, -9.93135, 12.86221], [ 1.66750, 2.39142, 0.80255], [ -0.84633, 2.06795, -0.33823], [ 0.83745, 1.49286, 2.98998] ] ), - ( 46, [ [ -4.34300, -7.84900, 13.64900], [ 1.61760, 1.76679, 0.76885], [ -0.66575, 1.88525, -0.36179], [ -0.14614, -0.03047, 2.50738] ] ), - ( 47, [ [ -2.78800, -6.38400, 14.38400], [ 1.48492, 1.15738, 0.69764], [ -0.62649, 1.73742, -0.43431], [ 0.41608, -0.63445, 2.75821] ] ), - ( 48, [ [ -6.29328, -7.53087, 12.56359], [ 1.34012, 1.73997, 0.67057], [ 0.34309, 2.67619, 0.14977], [ 1.06474, 1.03413, 2.64452] ] ), - ( 49, [ [ -4.86400, -5.95300, 13.24000], [ 1.51296, 1.40866, 0.67950], [ -0.46940, 1.45903, -0.17125], [ 0.24780, -0.04317, 2.43130] ] ), - ( 50, [ [ -3.28712, -4.71867, 13.91557], [ 1.63291, 1.05492, 0.66842], [ 0.16640, 1.63261, 0.55187], [ 0.66240, -0.36288, 1.98688] ] ), - ( 51, [ [ -5.23459, -4.94899, 13.22187], [ 1.99474, 2.05185, 1.35243], [ -0.26306, 0.53137, 0.13065], [ 0.63126, -0.84942, 2.04003] ] ), - ( 52, [ [ -2.63217, -4.00133, 15.05523], [ 2.94186, -0.14344, 2.12092], [ 0.81897, -0.14175, 1.23719], [ 0.63217, -1.29051, 1.59520] ] ), - ( 53, [ [ -3.97000, -10.25800, 15.67100], [ 1.35917, 1.05958, 2.09582], [ -1.01355, 2.02429, 0.72368], [ -0.35939, -0.84212, 0.86523] ] ), - ( 54, [ [ -2.24601, -9.44164, 17.27413], [ 1.99351, 0.54698, 1.05978], [ 0.29630, 1.69013, 1.65367], [ -0.10099, -1.63017, 2.40788] ] ), - ( 55, [ [ -4.59066, -8.17597, 15.56314], [ 2.11029, 1.21320, 2.47664], [ -0.46995, 1.96813, -0.40168], [ -0.33349, -0.59545, 1.26153] ] ), - ( 56, [ [ -1.97927, -7.59115, 17.60644], [ 2.96636, -0.04152, 1.53435], [ -0.06400, 2.29997, -0.39224], [ 1.19050, -1.76373, 3.65326] ] ), - ( 57, [ [ -4.90484, -6.41106, 14.92762], [ 1.97629, 1.14920, 1.97034], [ -0.33841, 1.71414, -1.18187], [ -0.28114, -0.74487, 0.80545] ] ), - ( 58, [ [ -2.46755, -5.31416, 16.35299], [ 2.79825, 1.00856, 0.85000], [ -0.31319, 1.79797, -1.34572], [ 0.97558, -0.82711, 2.88452] ] ), + ( 1, [ [ 0.07403, -9.56577, 3.60357], [ 0.95905, 0.71429, 2.93871], [ -1.67030, -0.43147, 0.60812], [ -1.76715, -4.15600, 3.30433] ] ), + ( 2, [ [ 0.00308, -9.73991, 6.23603], [ -0.91222, 0.88040, 1.92742], [ -1.86917, 0.54981, 0.87706], [ -0.58547, -0.52947, 2.21051] ] ), + ( 3, [ [ -1.92122, -11.21142, 1.24012], [ 0.20451, 1.97276, 3.02946], [ -2.80724, -0.35177, -1.27853], [ -2.64525, -2.41685, 4.96318] ] ), + ( 4, [ [ -1.78634, -9.65609, 4.22937], [ 0.06380, 1.12389, 2.92754], [ -2.00998, 0.26127, 0.62875], [ -1.98142, -2.36557, 1.94931] ] ), + ( 5, [ [ -1.78517, -8.93248, 7.02409], [ -0.06077, 0.31971, 2.63203], [ -1.68448, 1.05832, 0.68834], [ -0.39631, 0.49893, 2.33932] ] ), + ( 6, [ [ -4.29865, -10.50146, 1.20789], [ 0.37881, 1.55423, 4.04373], [ -2.63582, 1.48617, 0.80382], [ -2.39199, -1.12119, 5.24367] ] ), + ( 7, [ [ -3.85980, -9.00517, 4.82763], [ 0.49854, 1.43694, 3.19209], [ -2.06719, 1.18963, 0.78973], [ -1.21391, -1.24641, 1.50229] ] ), + ( 8, [ [ -3.32678, -7.65254, 7.59759], [ 0.56647, 1.26600, 2.34353], [ -1.57620, 1.59818, 0.72268], [ 0.28745, 0.97206, 2.28447] ] ), + ( 9, [ [ -6.57368, -8.33292, 2.96552], [ 0.78920, 0.84267, 2.86359], [ -1.63552, 2.60797, 2.67981], [ -0.81873, -0.02233, 5.10575] ] ), + ( 10, [ [ -5.75096, -7.25801, 5.78564], [ 0.85324, 1.30395, 2.76578], [ -1.66434, 1.74323, 0.77869], [ -0.75552, -0.82192, 1.46801] ] ), + ( 11, [ [ -4.87296, -5.72876, 8.47415], [ 0.89963, 1.74845, 2.60217], [ -1.18379, 2.18439, 0.84461], [ 0.85545, 0.88778, 2.03580] ] ), + ( 12, [ [ -7.18669, -5.55843, 6.39603], [ 0.55788, 2.60065, 3.29818], [ -1.20131, 1.64795, 0.43997], [ 0.52133, 0.38157, 2.81760] ] ), + ( 13, [ [ -5.65157, -3.36472, 9.25580], [ 2.37223, 1.68712, 2.28629], [ -0.36631, 2.49508, 0.70494], [ 1.25585, 1.27257, 2.59212] ] ), + ( 14, [ [ -1.46058, -12.47910, 7.13881], [ 2.13302, 1.46093, 1.58835], [ -1.88471, 1.14866, -0.03002], [ -1.24342, -1.53272, 3.65647] ] ), + ( 15, [ [ -0.43063, -10.07412, 8.71137], [ -0.06459, 2.95816, 1.37507], [ -1.52906, 1.62194, 0.84466], [ -0.27598, -0.13356, 2.71766] ] ), + ( 16, [ [ -4.02723, -12.66079, 5.97470], [ 0.49565, 0.81981, 0.68090], [ -2.55416, 0.85551, -0.61402], [ -1.51990, -0.43907, 4.41803] ] ), + ( 17, [ [ -3.22600, -11.20300, 7.18000], [ 1.10652, 2.09530, 1.72930], [ -1.63687, 1.39790, 0.11255], [ -0.66214, -0.44676, 3.72000] ] ), + ( 18, [ [ -1.83711, -8.46276, 9.43760], [ 1.67114, 3.38496, 2.78572], [ -1.28118, 1.59789, 0.60630], [ 0.29795, 0.43356, 2.45509] ] ), + ( 19, [ [ -6.00294, -11.06987, 5.98787], [ 0.97268, 0.66610, 0.76323], [ -1.71493, 2.34334, 0.60678], [ -0.99047, -0.00339, 4.25902] ] ), + ( 20, [ [ -4.71987, -9.70115, 7.36101], [ 1.57616, 2.05951, 1.96948], [ -1.50108, 1.76558, 0.35819], [ -0.33627, 0.02896, 3.35413] ] ), + ( 21, [ [ -2.99367, -6.89314, 9.93095], [ 1.87185, 3.54817, 3.16297], [ -1.13503, 1.70437, 0.56224], [ 0.37721, 0.54150, 2.36994] ] ), + ( 22, [ [ -7.05528, -8.21578, 7.23623], [ -0.04743, 0.21677, 0.14801], [ -0.35683, 3.03360, 1.61413], [ -0.14227, 0.25667, 3.42193] ] ), + ( 23, [ [ -6.17292, -7.68518, 7.91870], [ 1.67759, 1.45942, 1.63685], [ -1.01458, 2.30610, 0.89444], [ -0.01927, 0.04277, 2.66382] ] ), + ( 24, [ [ -4.09024, -5.06093, 10.56252], [ 2.47439, 3.76870, 3.63114], [ -0.77293, 2.14755, 0.90306], [ 0.70426, 0.44194, 2.12733] ] ), + ( 25, [ [ -6.63445, -5.23571, 9.11277], [ 1.29479, 2.91361, 2.31568], [ 0.08865, 2.51141, 1.44678], [ 0.58295, 0.26371, 2.61475] ] ), + ( 26, [ [ -4.41971, -2.69228, 11.72475], [ 3.04409, 2.11045, 2.82422], [ 0.11158, 2.53492, 1.39129], [ 1.17715, 0.04117, 2.28236] ] ), + ( 27, [ [ -2.33590, -12.83832, 10.40150], [ 2.88381, 1.20099, 1.09925], [ -0.18173, 2.66678, 0.70385], [ -0.95964, 0.22905, 3.60979] ] ), + ( 28, [ [ -0.51618, -9.97224, 11.62323], [ 0.65861, 3.94934, 1.17162], [ -0.27952, 1.97737, 0.12067], [ -0.79553, -0.20391, 2.63741] ] ), + ( 29, [ [ -4.99078, -12.32037, 9.79621], [ 2.17352, 1.67823, 1.22241], [ -2.16881, 1.27754, -0.44518], [ -0.49675, 0.67627, 3.73324] ] ), + ( 30, [ [ -2.94100, -10.41126, 10.92996], [ 1.91384, 2.13057, 1.03823], [ -1.02412, 2.12340, 0.33619], [ -0.11626, 0.59407, 3.35135] ] ), + ( 31, [ [ -1.18625, -8.08002, 11.85981], [ 1.58709, 2.51832, 0.81707], [ -1.05238, 1.74870, 0.34892], [ 0.05191, -0.11824, 2.50982] ] ), + ( 32, [ [ -6.41236, -10.67331, 9.55112], [ 2.38572, 1.91451, 1.67718], [ -1.12593, 2.29408, -0.04315], [ -0.05981, 0.67603, 3.43748] ] ), + ( 33, [ [ -4.25751, -8.67962, 11.08139], [ 1.91673, 2.06706, 1.37826], [ -1.36250, 1.71786, -0.03767], [ 0.25732, 0.69329, 3.22903] ] ), + ( 34, [ [ -2.57791, -6.57308, 12.30631], [ 1.43637, 2.13695, 1.06706], [ -1.15375, 1.64566, 0.42214], [ 0.22890, -0.09508, 2.33575] ] ), + ( 35, [ [ -6.97952, -7.90413, 9.77554], [ 0.86359, 0.30450, 0.66061], [ 0.11900, 3.06938, 1.03037], [ 0.39443, 0.52279, 2.69307] ] ), + ( 36, [ [ -5.63978, -7.00879, 10.85483], [ 1.79716, 1.47957, 1.48364], [ -0.94904, 1.95983, 0.28992], [ 0.69943, 0.67916, 2.82105] ] ), + ( 37, [ [ -3.47246, -4.84263, 12.69322], [ 2.53099, 2.84545, 2.18752], [ -0.42103, 1.80597, 0.72698], [ 0.55941, -0.14862, 2.08769] ] ), + ( 38, [ [ -6.02540, -5.02789, 11.62196], [ 1.85963, 2.51542, 2.04771], [ 0.16536, 1.86189, 1.15728], [ 0.77715, 0.08202, 2.22181] ] ), + ( 39, [ [ -3.37913, -3.15743, 13.67816], [ 3.29322, 1.17564, 1.98067], [ 0.57374, 1.47704, 1.17346], [ 0.86448, -0.80651, 1.86683] ] ), + ( 40, [ [ -3.33386, -11.93028, 14.19070], [ 2.06804, 0.54961, 0.32353], [ 0.38128, 1.90260, -0.55892], [ -0.87599, 1.58126, 2.65548] ] ), + ( 41, [ [ -1.86604, -10.42797, 13.76883], [ 0.71046, 2.01037, -0.95585], [ 0.60814, 1.66692, 0.41157], [ -1.01580, -0.02358, 2.50010] ] ), + ( 42, [ [ -5.03969, -11.35668, 13.32227], [ 1.71197, 1.36988, 0.51232], [ -1.51657, 1.17884, -0.76164], [ 0.61153, 1.09233, 3.00633] ] ), + ( 43, [ [ -3.35343, -9.99978, 13.79183], [ 1.66024, 1.34367, 0.42671], [ -0.43316, 1.89482, -0.22013], [ -0.56268, 0.01490, 2.40321] ] ), + ( 44, [ [ -1.71989, -8.67015, 14.17671], [ 1.60654, 1.31535, 0.34299], [ -0.34539, 1.76773, 0.38419], [ -0.62823, -0.95179, 2.32388] ] ), + ( 45, [ [ -6.14401, -9.75429, 12.77928], [ 2.16121, 1.63557, 1.09962], [ -0.71174, 2.19915, -0.43826], [ 0.92132, 1.20642, 3.09774] ] ), + ( 46, [ [ -4.15956, -8.25973, 13.75872], [ 1.80752, 1.35342, 0.85917], [ -0.72596, 1.83976, -0.12734], [ -0.23415, 0.14089, 2.27387] ] ), + ( 47, [ [ -2.53185, -7.04795, 14.50314], [ 1.44769, 1.06997, 0.62959], [ -0.63861, 1.69109, 0.24785], [ 0.29451, -0.80052, 2.67644] ] ), + ( 48, [ [ -6.22965, -7.15528, 12.54983], [ 1.25477, 0.72701, 0.90321], [ 0.54674, 2.54445, 0.40584], [ 1.05654, 0.75533, 2.60184] ] ), + ( 49, [ [ -4.79229, -6.33533, 13.53300], [ 1.61960, 0.91268, 1.06285], [ -0.48367, 1.61128, -0.10092], [ 0.24131, 0.20255, 2.14045] ] ), + ( 50, [ [ -2.98701, -5.33022, 14.66882], [ 1.99066, 1.09737, 1.20861], [ -0.04573, 1.48484, 0.52507], [ 0.62367, -0.56781, 2.05117] ] ), + ( 51, [ [ -5.14160, -5.05188, 13.52129], [ 1.85459, 1.66867, 1.50670], [ -0.21384, 0.95066, 0.07711], [ 0.60599, -0.78027, 1.80907] ] ), + ( 52, [ [ -2.71728, -4.25018, 15.38349], [ 2.81887, 0.06146, 2.08794], [ 0.52113, 0.60132, 0.80528], [ 0.59496, -1.42790, 1.58518] ] ), + ( 53, [ [ -3.97000, -10.25800, 15.67100], [ 1.55801, 0.68063, 1.57097], [ -0.69608, 1.99341, 0.68826], [ -0.64717, -0.51288, 1.30805] ] ), + ( 54, [ [ -2.42877, -9.98303, 16.42373], [ 1.26126, 0.10813, -0.05419], [ 0.04861, 1.36073, 2.12573], [ -0.78095, -1.65579, 2.14658] ] ), + ( 55, [ [ -4.60043, -8.32257, 15.55367], [ 2.24338, 0.78867, 2.52215], [ -0.47654, 1.96418, -0.38080], [ -0.62325, -0.25655, 1.26656] ] ), + ( 56, [ [ -1.90227, -8.23856, 17.57678], [ 2.98702, 0.58799, 1.44387], [ 0.14674, 2.33568, 0.26024], [ 0.95946, -1.57219, 3.45219] ] ), + ( 57, [ [ -4.90484, -6.41106, 14.92762], [ 2.03469, 0.62463, 2.22346], [ -0.28161, 1.70116, -1.06322], [ -0.37352, -0.28350, 0.51958] ] ), + ( 58, [ [ -2.21713, -5.98027, 16.77811], [ 3.24505, 0.23017, 1.43520], [ -0.42258, 2.04102, -1.13906], [ 0.91436, -0.73089, 2.16332] ] ), ( 59, [ [ 3.21000, -14.40000, 2.61000], [ 2.45000, -0.85500, 0.01500], [ 0.34400, 2.19000, 1.23000], [ 0.00400, -0.80200, 2.52000] ] ), ( 60, [ [ 0.88200, -11.40000, 2.59000], [ 2.06000, -0.29900, 1.50000], [ -1.23000, 2.97000, 0.75300], [ -0.22000, -1.37000, 1.92000] ] ), ( 61, [ [ 3.47000, -12.00000, 3.89000], [ 3.07000, -1.43000, 0.64300], [ 0.57500, 1.72000, 2.00000], [ 0.02000, -1.12000, 1.70000] ] ), @@ -739,7 +739,8 @@ def generateBaseMesh(cls, region, options): markerList = [] idx = elementsCount1 * elementsCount2 * (elementsCount3 - 1) + elementsCount1 * (elementsCount2 // 2) - markerList.append({"group": leftApexGroup, "elementId": idx, "xi": [1.0, 0.0, 1.0]}) + print(idx) + markerList.append({"group": leftApexGroup, "elementId": idx, "xi": [1.0, 1.0, 1.0]}) idx = elementsCount1 * elementsCount2 markerList.append({"group": leftVentralGroup, "elementId": idx, "xi": [1.0, 1.0, 0.0]}) From 12e073558aa4279db88c854d6d59ff45fe4e6d6d Mon Sep 17 00:00:00 2001 From: arti-sukasem <51779010+arti-sukasem@users.noreply.github.com> Date: Thu, 13 May 2021 12:37:03 +1200 Subject: [PATCH 4/5] removed print --- src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py index 5b9e7fc7..00508abb 100644 --- a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py +++ b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py @@ -739,7 +739,6 @@ def generateBaseMesh(cls, region, options): markerList = [] idx = elementsCount1 * elementsCount2 * (elementsCount3 - 1) + elementsCount1 * (elementsCount2 // 2) - print(idx) markerList.append({"group": leftApexGroup, "elementId": idx, "xi": [1.0, 1.0, 1.0]}) idx = elementsCount1 * elementsCount2 From afe69232ed3377444ff837e011fa01c2fe582195 Mon Sep 17 00:00:00 2001 From: arti-sukasem <51779010+arti-sukasem@users.noreply.github.com> Date: Thu, 13 May 2021 13:03:32 +1200 Subject: [PATCH 5/5] updated parameters - right-handed arrangement --- .../meshtypes/meshtype_3d_lung1.py | 110 +++++++++--------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py index 00508abb..5e6a01bd 100644 --- a/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py +++ b/src/scaffoldmaker/meshtypes/meshtype_3d_lung1.py @@ -417,64 +417,64 @@ def generateBaseMesh(cls, region, options): elif isMouse: # valueLabels = [ Node.VALUE_LABEL_VALUE, Node.VALUE_LABEL_D_DS1, Node.VALUE_LABEL_D_DS2, Node.VALUE_LABEL_D_DS3 ] nodeFieldParameters = [ - ( 1, [ [ 0.07403, -9.56577, 3.60357], [ 0.95905, 0.71429, 2.93871], [ -1.67030, -0.43147, 0.60812], [ -1.76715, -4.15600, 3.30433] ] ), - ( 2, [ [ 0.00308, -9.73991, 6.23603], [ -0.91222, 0.88040, 1.92742], [ -1.86917, 0.54981, 0.87706], [ -0.58547, -0.52947, 2.21051] ] ), - ( 3, [ [ -1.92122, -11.21142, 1.24012], [ 0.20451, 1.97276, 3.02946], [ -2.80724, -0.35177, -1.27853], [ -2.64525, -2.41685, 4.96318] ] ), - ( 4, [ [ -1.78634, -9.65609, 4.22937], [ 0.06380, 1.12389, 2.92754], [ -2.00998, 0.26127, 0.62875], [ -1.98142, -2.36557, 1.94931] ] ), - ( 5, [ [ -1.78517, -8.93248, 7.02409], [ -0.06077, 0.31971, 2.63203], [ -1.68448, 1.05832, 0.68834], [ -0.39631, 0.49893, 2.33932] ] ), - ( 6, [ [ -4.29865, -10.50146, 1.20789], [ 0.37881, 1.55423, 4.04373], [ -2.63582, 1.48617, 0.80382], [ -2.39199, -1.12119, 5.24367] ] ), - ( 7, [ [ -3.85980, -9.00517, 4.82763], [ 0.49854, 1.43694, 3.19209], [ -2.06719, 1.18963, 0.78973], [ -1.21391, -1.24641, 1.50229] ] ), - ( 8, [ [ -3.32678, -7.65254, 7.59759], [ 0.56647, 1.26600, 2.34353], [ -1.57620, 1.59818, 0.72268], [ 0.28745, 0.97206, 2.28447] ] ), - ( 9, [ [ -6.57368, -8.33292, 2.96552], [ 0.78920, 0.84267, 2.86359], [ -1.63552, 2.60797, 2.67981], [ -0.81873, -0.02233, 5.10575] ] ), - ( 10, [ [ -5.75096, -7.25801, 5.78564], [ 0.85324, 1.30395, 2.76578], [ -1.66434, 1.74323, 0.77869], [ -0.75552, -0.82192, 1.46801] ] ), - ( 11, [ [ -4.87296, -5.72876, 8.47415], [ 0.89963, 1.74845, 2.60217], [ -1.18379, 2.18439, 0.84461], [ 0.85545, 0.88778, 2.03580] ] ), - ( 12, [ [ -7.18669, -5.55843, 6.39603], [ 0.55788, 2.60065, 3.29818], [ -1.20131, 1.64795, 0.43997], [ 0.52133, 0.38157, 2.81760] ] ), - ( 13, [ [ -5.65157, -3.36472, 9.25580], [ 2.37223, 1.68712, 2.28629], [ -0.36631, 2.49508, 0.70494], [ 1.25585, 1.27257, 2.59212] ] ), - ( 14, [ [ -1.46058, -12.47910, 7.13881], [ 2.13302, 1.46093, 1.58835], [ -1.88471, 1.14866, -0.03002], [ -1.24342, -1.53272, 3.65647] ] ), - ( 15, [ [ -0.43063, -10.07412, 8.71137], [ -0.06459, 2.95816, 1.37507], [ -1.52906, 1.62194, 0.84466], [ -0.27598, -0.13356, 2.71766] ] ), - ( 16, [ [ -4.02723, -12.66079, 5.97470], [ 0.49565, 0.81981, 0.68090], [ -2.55416, 0.85551, -0.61402], [ -1.51990, -0.43907, 4.41803] ] ), - ( 17, [ [ -3.22600, -11.20300, 7.18000], [ 1.10652, 2.09530, 1.72930], [ -1.63687, 1.39790, 0.11255], [ -0.66214, -0.44676, 3.72000] ] ), - ( 18, [ [ -1.83711, -8.46276, 9.43760], [ 1.67114, 3.38496, 2.78572], [ -1.28118, 1.59789, 0.60630], [ 0.29795, 0.43356, 2.45509] ] ), - ( 19, [ [ -6.00294, -11.06987, 5.98787], [ 0.97268, 0.66610, 0.76323], [ -1.71493, 2.34334, 0.60678], [ -0.99047, -0.00339, 4.25902] ] ), + ( 1, [ [ 0.07403, -9.56577, 3.60357], [ 0.95906, 0.71429, 2.93871], [ -1.67031, -0.43146, 0.60812], [ -1.76769, -4.15710, 3.30552] ] ), + ( 2, [ [ 0.00308, -9.73991, 6.23603], [ -0.91221, -0.88041, 1.92742], [ -1.86919, 0.54982, 0.87706], [ -0.58548, -0.52947, 2.21052] ] ), + ( 3, [ [ -1.92122, -11.21142, 1.24012], [ 0.20451, 1.97277, 3.02946], [ -2.80724, -0.35177, -1.27853], [ -2.64529, -2.41687, 4.96326] ] ), + ( 4, [ [ -1.78634, -9.65609, 4.22937], [ 0.06380, 1.12389, 2.92754], [ -2.00998, 0.26127, 0.62875], [ -1.98142, -2.36558, 1.94931] ] ), + ( 5, [ [ -1.78517, -8.93248, 7.02409], [ -0.06077, 0.31970, 2.63203], [ -1.68448, 1.05833, 0.68834], [ -0.39630, 0.49892, 2.33932] ] ), + ( 6, [ [ -4.29865, -10.50146, 1.20789], [ 0.37882, 1.55423, 4.04373], [ -2.63582, 1.48617, 0.80382], [ -2.39199, -1.12119, 5.24368] ] ), + ( 7, [ [ -3.85980, -9.00517, 4.82763], [ 0.49854, 1.43694, 3.19209], [ -2.06718, 1.18962, 0.78973], [ -1.21391, -1.24641, 1.50229] ] ), + ( 8, [ [ -3.32678, -7.65254, 7.59759], [ 0.56646, 1.26599, 2.34353], [ -1.57620, 1.59817, 0.72268], [ 0.28745, 0.97206, 2.28447] ] ), + ( 9, [ [ -6.57368, -8.33292, 2.96552], [ 0.78921, 0.84268, 2.86361], [ -1.63553, 2.60797, 2.67981], [ -0.81873, -0.02233, 5.10575] ] ), + ( 10, [ [ -5.75096, -7.25801, 5.78564], [ 0.85324, 1.30395, 2.76578], [ -1.66434, 1.74323, 0.77869], [ -0.75552, -0.82191, 1.46800] ] ), + ( 11, [ [ -4.87296, -5.72876, 8.47415], [ 0.89962, 1.74845, 2.60216], [ -1.18379, 2.18438, 0.84461], [ 0.85546, 0.88778, 2.03581] ] ), + ( 12, [ [ -7.18669, -5.55843, 6.39603], [ 0.55788, 2.60065, 3.29819], [ -1.20131, 1.64796, 0.43996], [ 0.52133, 0.38157, 2.81760] ] ), + ( 13, [ [ -5.65157, -3.36472, 9.25580], [ 2.37223, 1.68711, 2.28630], [ -0.36630, 2.49508, 0.70495], [ 1.25584, 1.27257, 2.59212] ] ), + ( 14, [ [ -1.46058, -12.47910, 7.13881], [ 2.13302, 1.46092, 1.58836], [ -1.88471, 1.14866, -0.03002], [ -1.24286, -1.53158, 3.65525] ] ), + ( 15, [ [ -0.43063, -10.07412, 8.71137], [ -0.06459, 2.95816, 1.37507], [ -1.52906, 1.62194, 0.84465], [ -0.27598, -0.13356, 2.71766] ] ), + ( 16, [ [ -4.02723, -12.66079, 5.97470], [ 0.49565, 0.81981, 0.68090], [ -2.55416, 0.85551, -0.61402], [ -1.51986, -0.43904, 4.41795] ] ), + ( 17, [ [ -3.22600, -11.20300, 7.18000], [ 1.10652, 2.09529, 1.72930], [ -1.63687, 1.39790, 0.11255], [ -0.66214, -0.44676, 3.72000] ] ), + ( 18, [ [ -1.83711, -8.46276, 9.43760], [ 1.67115, 3.38496, 2.78572], [ -1.28118, 1.59789, 0.60630], [ 0.29795, 0.43356, 2.45509] ] ), + ( 19, [ [ -6.00294, -11.06987, 5.98787], [ 0.97269, 0.66609, 0.76324], [ -1.71493, 2.34334, 0.60678], [ -0.99047, -0.00338, 4.25902] ] ), ( 20, [ [ -4.71987, -9.70115, 7.36101], [ 1.57616, 2.05951, 1.96948], [ -1.50108, 1.76558, 0.35819], [ -0.33627, 0.02896, 3.35413] ] ), - ( 21, [ [ -2.99367, -6.89314, 9.93095], [ 1.87185, 3.54817, 3.16297], [ -1.13503, 1.70437, 0.56224], [ 0.37721, 0.54150, 2.36994] ] ), + ( 21, [ [ -2.99367, -6.89314, 9.93095], [ 1.87184, 3.54817, 3.16296], [ -1.13503, 1.70437, 0.56225], [ 0.37722, 0.54150, 2.36993] ] ), ( 22, [ [ -7.05528, -8.21578, 7.23623], [ -0.04743, 0.21677, 0.14801], [ -0.35683, 3.03360, 1.61413], [ -0.14227, 0.25667, 3.42193] ] ), - ( 23, [ [ -6.17292, -7.68518, 7.91870], [ 1.67759, 1.45942, 1.63685], [ -1.01458, 2.30610, 0.89444], [ -0.01927, 0.04277, 2.66382] ] ), - ( 24, [ [ -4.09024, -5.06093, 10.56252], [ 2.47439, 3.76870, 3.63114], [ -0.77293, 2.14755, 0.90306], [ 0.70426, 0.44194, 2.12733] ] ), - ( 25, [ [ -6.63445, -5.23571, 9.11277], [ 1.29479, 2.91361, 2.31568], [ 0.08865, 2.51141, 1.44678], [ 0.58295, 0.26371, 2.61475] ] ), - ( 26, [ [ -4.41971, -2.69228, 11.72475], [ 3.04409, 2.11045, 2.82422], [ 0.11158, 2.53492, 1.39129], [ 1.17715, 0.04117, 2.28236] ] ), - ( 27, [ [ -2.33590, -12.83832, 10.40150], [ 2.88381, 1.20099, 1.09925], [ -0.18173, 2.66678, 0.70385], [ -0.95964, 0.22905, 3.60979] ] ), - ( 28, [ [ -0.51618, -9.97224, 11.62323], [ 0.65861, 3.94934, 1.17162], [ -0.27952, 1.97737, 0.12067], [ -0.79553, -0.20391, 2.63741] ] ), - ( 29, [ [ -4.99078, -12.32037, 9.79621], [ 2.17352, 1.67823, 1.22241], [ -2.16881, 1.27754, -0.44518], [ -0.49675, 0.67627, 3.73324] ] ), - ( 30, [ [ -2.94100, -10.41126, 10.92996], [ 1.91384, 2.13057, 1.03823], [ -1.02412, 2.12340, 0.33619], [ -0.11626, 0.59407, 3.35135] ] ), - ( 31, [ [ -1.18625, -8.08002, 11.85981], [ 1.58709, 2.51832, 0.81707], [ -1.05238, 1.74870, 0.34892], [ 0.05191, -0.11824, 2.50982] ] ), - ( 32, [ [ -6.41236, -10.67331, 9.55112], [ 2.38572, 1.91451, 1.67718], [ -1.12593, 2.29408, -0.04315], [ -0.05981, 0.67603, 3.43748] ] ), - ( 33, [ [ -4.25751, -8.67962, 11.08139], [ 1.91673, 2.06706, 1.37826], [ -1.36250, 1.71786, -0.03767], [ 0.25732, 0.69329, 3.22903] ] ), - ( 34, [ [ -2.57791, -6.57308, 12.30631], [ 1.43637, 2.13695, 1.06706], [ -1.15375, 1.64566, 0.42214], [ 0.22890, -0.09508, 2.33575] ] ), - ( 35, [ [ -6.97952, -7.90413, 9.77554], [ 0.86359, 0.30450, 0.66061], [ 0.11900, 3.06938, 1.03037], [ 0.39443, 0.52279, 2.69307] ] ), - ( 36, [ [ -5.63978, -7.00879, 10.85483], [ 1.79716, 1.47957, 1.48364], [ -0.94904, 1.95983, 0.28992], [ 0.69943, 0.67916, 2.82105] ] ), - ( 37, [ [ -3.47246, -4.84263, 12.69322], [ 2.53099, 2.84545, 2.18752], [ -0.42103, 1.80597, 0.72698], [ 0.55941, -0.14862, 2.08769] ] ), + ( 23, [ [ -6.17292, -7.68518, 7.91870], [ 1.67759, 1.45942, 1.63685], [ -1.01458, 2.30610, 0.89443], [ -0.01928, 0.04277, 2.66382] ] ), + ( 24, [ [ -4.09024, -5.06093, 10.56252], [ 2.47439, 3.76869, 3.63115], [ -0.77293, 2.14754, 0.90306], [ 0.70426, 0.44195, 2.12733] ] ), + ( 25, [ [ -6.63445, -5.23571, 9.11277], [ 1.29479, 2.91361, 2.31569], [ 0.08865, 2.51141, 1.44679], [ 0.58295, 0.26372, 2.61475] ] ), + ( 26, [ [ -4.41971, -2.69228, 11.72475], [ 3.04409, 2.11044, 2.82422], [ 0.11158, 2.53492, 1.39130], [ 1.17715, 0.04117, 2.28236] ] ), + ( 27, [ [ -2.33590, -12.83832, 10.40150], [ 2.88381, 1.20100, 1.09925], [ -0.18173, 2.66677, 0.70385], [ -0.87332, 0.16147, 3.18425] ] ), + ( 28, [ [ -0.51618, -9.97224, 11.62323], [ 0.65861, 3.94935, 1.17161], [ -0.27951, 1.97737, 0.12068], [ -0.79293, -0.21003, 2.63273] ] ), + ( 29, [ [ -4.99078, -12.32037, 9.79621], [ 2.17352, 1.67823, 1.22241], [ -2.16881, 1.27754, -0.44518], [ -0.48233, 0.66527, 3.61343] ] ), + ( 30, [ [ -2.94100, -10.41126, 10.92996], [ 1.91384, 2.13057, 1.03823], [ -1.02412, 2.12341, 0.33619], [ -0.11625, 0.59407, 3.35135] ] ), + ( 31, [ [ -1.18625, -8.08002, 11.85981], [ 1.58710, 2.51833, 0.81707], [ -1.05238, 1.74869, 0.34892], [ 0.05191, -0.11824, 2.50982] ] ), + ( 32, [ [ -6.41236, -10.67331, 9.55112], [ 2.38573, 1.91452, 1.67719], [ -1.12592, 2.29408, -0.04315], [ -0.05981, 0.67603, 3.43748] ] ), + ( 33, [ [ -4.25751, -8.67962, 11.08139], [ 1.91673, 2.06705, 1.37826], [ -1.36250, 1.71786, -0.03767], [ 0.25731, 0.69329, 3.22903] ] ), + ( 34, [ [ -2.57791, -6.57308, 12.30631], [ 1.43636, 2.13694, 1.06705], [ -1.15376, 1.64565, 0.42215], [ 0.22890, -0.09508, 2.33575] ] ), + ( 35, [ [ -6.97952, -7.90413, 9.77554], [ 0.86359, 0.30450, 0.66060], [ 0.11900, 3.06937, 1.03036], [ 0.39443, 0.52278, 2.69307] ] ), + ( 36, [ [ -5.63978, -7.00879, 10.85483], [ 1.79715, 1.47957, 1.48364], [ -0.94905, 1.95983, 0.28992], [ 0.69943, 0.67916, 2.82106] ] ), + ( 37, [ [ -3.47246, -4.84263, 12.69322], [ 2.53100, 2.84545, 2.18753], [ -0.42103, 1.80597, 0.72699], [ 0.55941, -0.14862, 2.08769] ] ), ( 38, [ [ -6.02540, -5.02789, 11.62196], [ 1.85963, 2.51542, 2.04771], [ 0.16536, 1.86189, 1.15728], [ 0.77715, 0.08202, 2.22181] ] ), - ( 39, [ [ -3.37913, -3.15743, 13.67816], [ 3.29322, 1.17564, 1.98067], [ 0.57374, 1.47704, 1.17346], [ 0.86448, -0.80651, 1.86683] ] ), - ( 40, [ [ -3.33386, -11.93028, 14.19070], [ 2.06804, 0.54961, 0.32353], [ 0.38128, 1.90260, -0.55892], [ -0.87599, 1.58126, 2.65548] ] ), - ( 41, [ [ -1.86604, -10.42797, 13.76883], [ 0.71046, 2.01037, -0.95585], [ 0.60814, 1.66692, 0.41157], [ -1.01580, -0.02358, 2.50010] ] ), - ( 42, [ [ -5.03969, -11.35668, 13.32227], [ 1.71197, 1.36988, 0.51232], [ -1.51657, 1.17884, -0.76164], [ 0.61153, 1.09233, 3.00633] ] ), - ( 43, [ [ -3.35343, -9.99978, 13.79183], [ 1.66024, 1.34367, 0.42671], [ -0.43316, 1.89482, -0.22013], [ -0.56268, 0.01490, 2.40321] ] ), - ( 44, [ [ -1.71989, -8.67015, 14.17671], [ 1.60654, 1.31535, 0.34299], [ -0.34539, 1.76773, 0.38419], [ -0.62823, -0.95179, 2.32388] ] ), - ( 45, [ [ -6.14401, -9.75429, 12.77928], [ 2.16121, 1.63557, 1.09962], [ -0.71174, 2.19915, -0.43826], [ 0.92132, 1.20642, 3.09774] ] ), - ( 46, [ [ -4.15956, -8.25973, 13.75872], [ 1.80752, 1.35342, 0.85917], [ -0.72596, 1.83976, -0.12734], [ -0.23415, 0.14089, 2.27387] ] ), - ( 47, [ [ -2.53185, -7.04795, 14.50314], [ 1.44769, 1.06997, 0.62959], [ -0.63861, 1.69109, 0.24785], [ 0.29451, -0.80052, 2.67644] ] ), - ( 48, [ [ -6.22965, -7.15528, 12.54983], [ 1.25477, 0.72701, 0.90321], [ 0.54674, 2.54445, 0.40584], [ 1.05654, 0.75533, 2.60184] ] ), - ( 49, [ [ -4.79229, -6.33533, 13.53300], [ 1.61960, 0.91268, 1.06285], [ -0.48367, 1.61128, -0.10092], [ 0.24131, 0.20255, 2.14045] ] ), - ( 50, [ [ -2.98701, -5.33022, 14.66882], [ 1.99066, 1.09737, 1.20861], [ -0.04573, 1.48484, 0.52507], [ 0.62367, -0.56781, 2.05117] ] ), - ( 51, [ [ -5.14160, -5.05188, 13.52129], [ 1.85459, 1.66867, 1.50670], [ -0.21384, 0.95066, 0.07711], [ 0.60599, -0.78027, 1.80907] ] ), - ( 52, [ [ -2.71728, -4.25018, 15.38349], [ 2.81887, 0.06146, 2.08794], [ 0.52113, 0.60132, 0.80528], [ 0.59496, -1.42790, 1.58518] ] ), - ( 53, [ [ -3.97000, -10.25800, 15.67100], [ 1.55801, 0.68063, 1.57097], [ -0.69608, 1.99341, 0.68826], [ -0.64717, -0.51288, 1.30805] ] ), - ( 54, [ [ -2.42877, -9.98303, 16.42373], [ 1.26126, 0.10813, -0.05419], [ 0.04861, 1.36073, 2.12573], [ -0.78095, -1.65579, 2.14658] ] ), - ( 55, [ [ -4.60043, -8.32257, 15.55367], [ 2.24338, 0.78867, 2.52215], [ -0.47654, 1.96418, -0.38080], [ -0.62325, -0.25655, 1.26656] ] ), - ( 56, [ [ -1.90227, -8.23856, 17.57678], [ 2.98702, 0.58799, 1.44387], [ 0.14674, 2.33568, 0.26024], [ 0.95946, -1.57219, 3.45219] ] ), - ( 57, [ [ -4.90484, -6.41106, 14.92762], [ 2.03469, 0.62463, 2.22346], [ -0.28161, 1.70116, -1.06322], [ -0.37352, -0.28350, 0.51958] ] ), - ( 58, [ [ -2.21713, -5.98027, 16.77811], [ 3.24505, 0.23017, 1.43520], [ -0.42258, 2.04102, -1.13906], [ 0.91436, -0.73089, 2.16332] ] ), + ( 39, [ [ -3.37913, -3.15743, 13.67816], [ 3.29322, 1.17563, 1.98068], [ 0.57374, 1.47703, 1.17346], [ 0.86448, -0.80650, 1.86683] ] ), + ( 40, [ [ -3.17111, -12.20100, 13.38085], [ 2.12652, 0.55899, 0.44433], [ 0.16750, 2.33744, 0.63169], [ -0.85030, 1.34507, 2.74098] ] ), + ( 41, [ [ -1.85859, -10.43779, 13.75973], [ 1.44952, 1.72894, 0.60352], [ 0.24785, 1.72556, 0.51281], [ -1.01790, -0.02591, 2.50059] ] ), + ( 42, [ [ -5.03857, -11.40132, 13.08586], [ 1.70052, 1.42937, 0.86783], [ -1.58299, 1.32180, -0.32245], [ 0.56034, 1.07102, 3.01045] ] ), + ( 43, [ [ -3.35343, -9.99978, 13.79183], [ 1.66537, 1.37001, 0.54186], [ -0.53576, 2.01439, 0.17660], [ -0.56268, 0.01490, 2.40321] ] ), + ( 44, [ [ -1.71989, -8.67015, 14.17671], [ 1.59657, 1.28512, 0.22717], [ -0.35050, 1.77131, 0.38853], [ -0.62823, -0.95180, 2.32388] ] ), + ( 45, [ [ -6.14401, -9.75429, 12.77928], [ 2.16121, 1.63557, 1.09963], [ -0.71076, 2.21275, -0.29315], [ 0.92132, 1.20642, 3.09774] ] ), + ( 46, [ [ -4.15956, -8.25973, 13.75872], [ 1.80752, 1.35343, 0.85917], [ -0.72593, 1.83964, -0.12732], [ -0.23415, 0.14089, 2.27387] ] ), + ( 47, [ [ -2.53185, -7.04795, 14.50314], [ 1.44769, 1.06998, 0.62958], [ -0.63860, 1.69106, 0.24785], [ 0.29451, -0.80052, 2.67644] ] ), + ( 48, [ [ -6.22965, -7.15528, 12.54983], [ 1.25476, 0.72701, 0.90323], [ 0.54615, 2.54332, 0.40531], [ 1.05654, 0.75533, 2.60184] ] ), + ( 49, [ [ -4.79229, -6.33533, 13.53300], [ 1.61960, 0.91268, 1.06285], [ -0.48367, 1.61129, -0.10092], [ 0.24131, 0.20255, 2.14045] ] ), + ( 50, [ [ -2.98701, -5.33022, 14.66882], [ 1.99066, 1.09737, 1.20860], [ -0.04573, 1.48484, 0.52507], [ 0.62367, -0.56781, 2.05117] ] ), + ( 51, [ [ -5.14160, -5.05188, 13.52129], [ 1.85459, 1.66867, 1.50671], [ -0.21383, 0.95066, 0.07710], [ 0.60599, -0.78027, 1.80907] ] ), + ( 52, [ [ -2.71728, -4.25018, 15.38349], [ 2.81886, -0.06146, 2.08793], [ 0.52113, 0.60132, 0.80528], [ 0.59496, -1.42790, 1.58518] ] ), + ( 53, [ [ -3.97000, -10.25800, 15.67100], [ 1.60402, 0.70083, 1.68144], [ -0.82192, 2.28449, 0.98993], [ -0.64717, -0.51289, 1.30805] ] ), + ( 54, [ [ -2.42877, -9.98303, 16.42373], [ 1.15748, -0.11813, -0.13777], [ 0.04611, 1.36745, 2.12860], [ -0.78095, -1.65578, 2.14658] ] ), + ( 55, [ [ -4.60043, -8.32257, 15.55367], [ 2.24339, 0.78867, 2.52215], [ -0.47795, 1.97306, -0.38370], [ -0.62324, -0.25655, 1.26655] ] ), + ( 56, [ [ -1.90227, -8.23856, 17.57678], [ 2.98703, -0.58799, 1.44387], [ 0.14674, 2.33566, 0.26025], [ 0.95946, -1.57221, 3.45219] ] ), + ( 57, [ [ -4.90484, -6.41106, 14.92762], [ 2.03469, 0.62463, 2.22346], [ -0.28161, 1.70116, -1.06322], [ -0.37351, -0.28350, 0.51957] ] ), + ( 58, [ [ -2.21713, -5.98027, 16.77811], [ 3.24505, 0.23016, 1.43520], [ -0.42259, 2.04103, -1.13906], [ 0.91436, -0.73090, 2.16332] ] ), ( 59, [ [ 3.21000, -14.40000, 2.61000], [ 2.45000, -0.85500, 0.01500], [ 0.34400, 2.19000, 1.23000], [ 0.00400, -0.80200, 2.52000] ] ), ( 60, [ [ 0.88200, -11.40000, 2.59000], [ 2.06000, -0.29900, 1.50000], [ -1.23000, 2.97000, 0.75300], [ -0.22000, -1.37000, 1.92000] ] ), ( 61, [ [ 3.47000, -12.00000, 3.89000], [ 3.07000, -1.43000, 0.64300], [ 0.57500, 1.72000, 2.00000], [ 0.02000, -1.12000, 1.70000] ] ),