diff --git a/RESTService/typescriptAPI.cc b/RESTService/typescriptAPI.cc index f3c8fa26a..dd5a0592d 100644 --- a/RESTService/typescriptAPI.cc +++ b/RESTService/typescriptAPI.cc @@ -47,6 +47,7 @@ #include "polyRESTProcessBase.tcd" #include "port.h" #include "port.tcd" +#include "publication.tcd" #include "pubTab.tcd" #include "ravelState.tcd" #include "renderNativeWindow.tcd" diff --git a/ecolab b/ecolab index 9bb347237..3ad41fb1f 160000 --- a/ecolab +++ b/ecolab @@ -1 +1 @@ -Subproject commit 9bb347237e40e5cb0014e709310967230a5af786 +Subproject commit 3ad41fb1f8525e7e2152d3b3689b62a06b4e1afb diff --git a/examples/1Free.mky b/examples/1Free.mky index ed4d5a13b..5c018ea55 100644 --- a/examples/1Free.mky +++ b/examples/1Free.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 64 @@ -9,11 +9,11 @@ 106.48 298.831 - 80.185 - 331.472 - 40.2885 - 126.553 - 26.6527 + 80.2514 + 331.39 + 40.4557 + 126.988 + 29.28 24.26 @@ -24,12 +24,12 @@ 151.48 298.831 - 87.4496 - 366.277 - 38.787 - 168.208 - 7.66182 - 53.3509 + 88.0349 + 365.66 + 39.8172 + 169.402 + 11.28 + 54.26 @@ -39,10 +39,10 @@ 189.48 299.831 - 43.2256 - 426.106 - 9.67091 - 82.4418 + 45.142 + 424.451 + 13.28 + 84.26 @@ -152,7 +152,7 @@ 12 Variable:stock 103 - 153.578 + 152.76 0 0 1 @@ -176,8 +176,8 @@ :Loans 14 Variable:stock - 132.091 - 156.305 + 133 + 155.76 0 0 1 @@ -201,8 +201,8 @@ :Firms 16 Variable:stock - 161.182 - 155.396 + 163 + 154.76 0 0 1 @@ -226,8 +226,8 @@ :Safe 18 Variable:stock - 190.273 - 149.942 + 193 + 149.76 0 0 1 @@ -251,7 +251,7 @@ :Loan 20 Variable:flow - 56.5527 + 56.28 24.26 0 0 @@ -277,8 +277,8 @@ :IntLoan 23 Variable:flow - 47.4618 - 53.3509 + 47.28 + 54.26 0 0 1 @@ -303,8 +303,8 @@ :FirmInt 26 Variable:flow - 48.3709 - 82.4418 + 48.28 + 84.26 0 0 1 @@ -455,7 +455,6 @@ false false false - true true false line @@ -812,4 +811,6 @@ + + diff --git a/examples/4MonetaryMinskyModelLessUnstableStart.mky b/examples/4MonetaryMinskyModelLessUnstableStart.mky index 4d464b9a6..b4535a197 100644 --- a/examples/4MonetaryMinskyModelLessUnstableStart.mky +++ b/examples/4MonetaryMinskyModelLessUnstableStart.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 593 @@ -3929,7 +3929,7 @@ 436 Variable:stock 675.28 - 1000.3 + 999.667 0 0 1 @@ -3953,8 +3953,8 @@ :BPL 438 Variable:stock - 704.371 - 1003.94 + 705.28 + 1003.67 0 0 1 @@ -3978,8 +3978,8 @@ :FL 440 Variable:stock - 733.462 - 998.485 + 735.28 + 998.667 0 0 1 @@ -4003,8 +4003,8 @@ :FD 442 Variable:stock - 762.553 - 999.394 + 765.28 + 999.667 0 0 1 @@ -4028,8 +4028,8 @@ :WD 444 Variable:stock - 791.644 - 1002.12 + 795.28 + 1001.67 0 0 1 @@ -4053,8 +4053,8 @@ :N 446 Variable:stock - 820.735 - 995.758 + 825.28 + 995.667 0 0 1 @@ -4078,8 +4078,8 @@ :a 448 Variable:stock - 849.826 - 993.94 + 855.28 + 993.667 0 0 1 @@ -4103,8 +4103,8 @@ :Kr 450 Variable:stock - 878.917 - 997.576 + 885.28 + 997.667 0 0 1 @@ -4128,8 +4128,8 @@ :PC 452 Variable:stock - 908.008 - 1000.3 + 915.28 + 999.667 0 0 1 @@ -4153,7 +4153,7 @@ :W 454 Variable:stock - 937.099 + 945.28 996.667 0 0 @@ -4178,7 +4178,7 @@ :A 456 Variable:flow - 624.291 + 624.2 436.95 0 0 @@ -4204,8 +4204,8 @@ :B 459 Variable:flow - 624.291 - 466.041 + 624.2 + 466.95 0 0 1 @@ -4230,8 +4230,8 @@ :C 462 Variable:flow - 624.291 - 495.132 + 624.2 + 496.95 0 0 1 @@ -4256,8 +4256,8 @@ :D 465 Variable:flow - 624.291 - 524.223 + 624.2 + 526.95 0 0 1 @@ -4283,7 +4283,7 @@ 468 Variable:flow 625.2 - 553.313 + 556.95 0 0 1 @@ -4309,7 +4309,7 @@ 471 Variable:flow 625.2 - 582.404 + 586.95 0 0 1 @@ -4334,8 +4334,8 @@ :G 474 Variable:flow - 624.291 - 611.495 + 624.2 + 616.95 0 0 1 @@ -4360,8 +4360,8 @@ :H 477 Variable:flow - 624.291 - 640.586 + 624.2 + 646.95 0 0 1 @@ -4386,8 +4386,8 @@ :I 480 Variable:flow - 627.927 - 669.677 + 627.2 + 676.95 0 0 1 @@ -4413,7 +4413,7 @@ 483 Variable:flow 625.2 - 698.768 + 706.95 0 0 1 @@ -4438,8 +4438,8 @@ :ode_W 486 Variable:flow - 612.473 - 758.768 + 612.2 + 768.95 0 0 1 @@ -4464,8 +4464,8 @@ :ode_a 489 Variable:flow - 614.291 - 851.495 + 614.2 + 864.95 0 0 1 @@ -4490,8 +4490,8 @@ :ode_N 492 Variable:flow - 613.382 - 882.404 + 613.2 + 896.95 0 0 1 @@ -4516,8 +4516,8 @@ :ode_{Kr} 495 Variable:flow - 612.473 - 820.586 + 612.2 + 832.95 0 0 1 @@ -4542,8 +4542,8 @@ :ode_{PC} 498 Variable:flow - 610.654 - 789.677 + 610.2 + 800.95 0 0 1 @@ -4568,8 +4568,8 @@ :ode_\lambda 501 Variable:flow - 613.382 - 727.859 + 613.2 + 736.95 0 0 1 @@ -4594,8 +4594,8 @@ :\lambda 504 Variable:stock - 966.189 - 994.849 + 975.28 + 994.667 0 0 1 @@ -5119,7 +5119,6 @@ false false false - true true false line @@ -5337,7 +5336,6 @@ false false false - true true false line @@ -5984,4 +5982,6 @@ + + diff --git a/examples/BasicGrowthModel.mky b/examples/BasicGrowthModel.mky index c9d044e80..e6aae0a4c 100644 --- a/examples/BasicGrowthModel.mky +++ b/examples/BasicGrowthModel.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 74 @@ -448,7 +448,6 @@ false false false - true true false line @@ -695,4 +694,6 @@ + + diff --git a/examples/EndogenousMoney.mky b/examples/EndogenousMoney.mky index 6ea30fa8b..a3cfa9731 100644 --- a/examples/EndogenousMoney.mky +++ b/examples/EndogenousMoney.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 454 @@ -754,7 +754,7 @@ 80 Variable:stock 1362.6 - 546.451 + 545.906 0 0 1 @@ -778,8 +778,8 @@ :Patient 82 Variable:stock - 1420.79 - 540.088 + 1422.6 + 539.906 0 0 1 @@ -803,8 +803,8 @@ :Impatient 84 Variable:stock - 1449.88 - 548.27 + 1452.6 + 547.906 0 0 1 @@ -828,8 +828,8 @@ :Workers 86 Variable:stock - 1478.97 - 543.724 + 1482.6 + 543.906 0 0 1 @@ -853,8 +853,8 @@ :NW_{Bank} 88 Variable:stock - 1508.06 - 539.179 + 1512.6 + 538.906 0 0 1 @@ -878,7 +878,7 @@ :Lend 90 Variable:flow - 1310.81 + 1310.54 108.713 0 0 @@ -904,8 +904,8 @@ :Int 93 Variable:flow - 1318.99 - 137.804 + 1318.54 + 138.713 0 0 1 @@ -930,8 +930,8 @@ :Repay 96 Variable:flow - 1307.17 - 166.895 + 1306.54 + 168.713 0 0 1 @@ -956,8 +956,8 @@ :Wages_P 99 Variable:flow - 1301.72 - 195.986 + 1301.54 + 198.713 0 0 1 @@ -982,8 +982,8 @@ :Wages_I 102 Variable:flow - 1302.63 - 226.895 + 1302.54 + 230.713 0 0 1 @@ -1008,8 +1008,8 @@ :Cons_I 105 Variable:flow - 1308.99 - 257.804 + 1308.54 + 262.713 0 0 1 @@ -1034,8 +1034,8 @@ :Cons_P 108 Variable:flow - 1307.17 - 288.713 + 1306.54 + 294.713 0 0 1 @@ -1060,8 +1060,8 @@ :Cons_{WP} 111 Variable:flow - 1302.63 - 319.622 + 1302.54 + 326.713 0 0 1 @@ -1086,8 +1086,8 @@ :Cons_{WI} 114 Variable:flow - 1304.44 - 350.531 + 1303.54 + 358.713 0 0 1 @@ -1112,8 +1112,8 @@ :Cons_{BP} 117 Variable:flow - 1304.44 - 381.441 + 1303.54 + 390.713 0 0 1 @@ -1138,8 +1138,8 @@ :Cons_{BI} 120 Variable:flow - 1305.35 - 412.35 + 1305.54 + 422.713 0 0 1 @@ -1165,7 +1165,7 @@ 123 Variable:stock 819.278 - 261.604 + 261.422 0 0 1 @@ -1189,7 +1189,7 @@ :Cons_I 125 Variable:flow - 773.183 + 772.728 36.9082 0 0 @@ -1215,8 +1215,8 @@ :Cons_P 128 Variable:flow - 771.364 - 67.8173 + 770.728 + 68.9082 0 0 1 @@ -1241,8 +1241,8 @@ :Cons_{BP} 131 Variable:flow - 768.637 - 98.7264 + 767.728 + 100.908 0 0 1 @@ -1267,8 +1267,8 @@ :Cons_{WP} 134 Variable:flow - 766.819 - 129.636 + 766.728 + 132.908 0 0 1 @@ -1293,8 +1293,8 @@ :Wages_P 137 Variable:flow - 765.91 - 160.545 + 765.728 + 164.908 0 0 1 @@ -1319,8 +1319,8 @@ :NW_P 140 Variable:stock - 848.369 - 252.513 + 849.278 + 252.422 0 0 1 @@ -1345,7 +1345,7 @@ 142 Variable:stock 831.563 - 763.186 + 762.823 0 0 1 @@ -1369,7 +1369,7 @@ :Cons_I 144 Variable:flow - 785.388 + 784.934 435.538 0 0 @@ -1395,8 +1395,8 @@ :Cons_P 147 Variable:flow - 783.57 - 466.447 + 782.934 + 467.538 0 0 1 @@ -1421,8 +1421,8 @@ :Cons_{BI} 150 Variable:flow - 781.752 - 497.357 + 781.934 + 499.538 0 0 1 @@ -1447,8 +1447,8 @@ :Cons_{WI} 153 Variable:flow - 780.843 - 528.266 + 779.934 + 531.538 0 0 1 @@ -1473,8 +1473,8 @@ :Int 156 Variable:flow - 795.388 - 559.175 + 794.934 + 563.538 0 0 1 @@ -1499,8 +1499,8 @@ :Lend 159 Variable:flow - 787.206 - 588.266 + 786.934 + 593.538 0 0 1 @@ -1525,8 +1525,8 @@ :Repay 162 Variable:flow - 783.57 - 617.357 + 782.934 + 623.538 0 0 1 @@ -1551,8 +1551,8 @@ :Wages_I 165 Variable:flow - 779.024 - 646.448 + 778.934 + 653.538 0 0 1 @@ -1577,8 +1577,8 @@ :Loans 168 Variable:stock - 860.654 - 751.368 + 861.563 + 750.822 0 0 1 @@ -1602,8 +1602,8 @@ :NW_I 170 Variable:stock - 889.745 - 744.095 + 891.563 + 743.823 0 0 1 @@ -1627,8 +1627,8 @@ :Loans 172 Variable:stock - 1391.7 - 536.451 + 1392.6 + 535.906 0 0 1 @@ -3147,7 +3147,7 @@ 313 Variable:stock 1320.28 - 895.546 + 895.728 0 0 1 @@ -3171,7 +3171,7 @@ :Cons_{WI} 315 Variable:flow - 1269.64 + 1268.73 704.517 0 0 @@ -3197,8 +3197,8 @@ :Cons_{WP} 318 Variable:flow - 1267.82 - 735.426 + 1267.73 + 736.517 0 0 1 @@ -3223,8 +3223,8 @@ :Wages_I 321 Variable:flow - 1267.82 - 766.335 + 1267.73 + 768.517 0 0 1 @@ -3249,8 +3249,8 @@ :Wages_P 324 Variable:flow - 1266.91 - 797.244 + 1266.73 + 800.517 0 0 1 @@ -3275,8 +3275,8 @@ :NW_{Workers} 327 Variable:stock - 1349.37 - 897.364 + 1350.28 + 897.728 0 0 1 @@ -3353,7 +3353,6 @@ false false false - true true false line @@ -3574,7 +3573,6 @@ false false false - true true false line @@ -3795,7 +3793,6 @@ false false false - true true false line @@ -4016,7 +4013,6 @@ false false false - true true false line @@ -4237,7 +4233,6 @@ false false false - true true false line @@ -4905,4 +4900,6 @@ + + diff --git a/examples/GoodwinLinear.mky b/examples/GoodwinLinear.mky index a31741a63..ac137ded5 100644 --- a/examples/GoodwinLinear.mky +++ b/examples/GoodwinLinear.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 89 @@ -149,10 +149,10 @@ 543.86 254.1 - 678.938 - 223.802 - 806.85 - 314.435 + 683.24 + 222.837 + 814.35 + 320.06 @@ -162,12 +162,12 @@ 300.24 151.25 - 700.727 - -16.1777 - 692.69 - 448.601 - 806.85 - 355.685 + 706.341 + -18.5246 + 698.191 + 452.769 + 814.35 + 357.56 @@ -673,7 +673,6 @@ false false false - true true false line @@ -920,4 +919,6 @@ + + diff --git a/examples/GoodwinLinear02.mky b/examples/GoodwinLinear02.mky index 0510f5cd7..18ae418eb 100644 --- a/examples/GoodwinLinear02.mky +++ b/examples/GoodwinLinear02.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 102 @@ -99,12 +99,12 @@ 400.5 155 - 351.114 - 22.6228 - 1.84109 - 96.9566 - 179.5 - 75.125 + 352.995 + 27.6639 + 17.0226 + 99.167 + 187 + 80.75 @@ -132,10 +132,10 @@ 163.734 305.335 - 105.702 - 189.165 - 179.5 - 116.375 + 106.036 + 189.833 + 187 + 118.25 @@ -178,12 +178,12 @@ 163.734 305.335 - 166.63 - 255.826 - 169.255 - 254.479 - 231.142 - 314.704 + 166.737 + 254 + 169.459 + 252.603 + 234.295 + 306.191 @@ -611,7 +611,6 @@ false false false - true true false line @@ -1075,4 +1074,6 @@ + + diff --git a/examples/LoanableFunds.mky b/examples/LoanableFunds.mky index b8d9eaab3..37114b1da 100644 --- a/examples/LoanableFunds.mky +++ b/examples/LoanableFunds.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 550 @@ -861,7 +861,7 @@ 85 Variable:stock 555.33 - 414.312 + 413.766 0 0 1 @@ -989,8 +989,8 @@ :C_W 99 Variable:flow - 513.377 - 222.287 + 512.922 + 230.287 0 0 1 @@ -1015,8 +1015,8 @@ :C_B 102 Variable:flow - 514.286 - 253.196 + 513.922 + 262.287 0 0 1 @@ -1041,8 +1041,8 @@ :C_I 105 Variable:flow - 516.104 - 160.468 + 515.922 + 166.287 0 0 1 @@ -1067,8 +1067,8 @@ :I_B 108 Variable:flow - 517.013 - 284.105 + 516.922 + 294.287 0 0 1 @@ -1093,8 +1093,8 @@ :I_C 111 Variable:flow - 517.013 - 191.377 + 516.922 + 198.287 0 0 1 @@ -1119,8 +1119,8 @@ :W_C 114 Variable:flow - 511.558 - 98.6502 + 511.922 + 102.287 0 0 1 @@ -1145,8 +1145,8 @@ :W_I 117 Variable:flow - 514.286 - 129.559 + 513.922 + 134.287 0 0 1 @@ -1171,7 +1171,7 @@ :Lend 120 Variable:flow - 505.195 + 504.922 -17.7134 0 0 @@ -1197,8 +1197,8 @@ :Fee 123 Variable:flow - 510.649 - 69.5593 + 509.922 + 72.2866 0 0 1 @@ -1223,8 +1223,8 @@ :Repay 126 Variable:flow - 501.558 - 11.3775 + 500.922 + 12.2866 0 0 1 @@ -1249,8 +1249,8 @@ :int 129 Variable:flow - 513.377 - 40.4684 + 512.922 + 42.2866 0 0 1 @@ -1275,8 +1275,8 @@ :C_B 132 Variable:flow - 875.675 - 175.776 + 875.311 + 180.503 0 0 1 @@ -1301,8 +1301,8 @@ :C_I 135 Variable:flow - 877.493 - 206.685 + 877.311 + 212.503 0 0 1 @@ -1327,8 +1327,8 @@ :C_W 138 Variable:flow - 874.765 - 237.594 + 874.311 + 244.503 0 0 1 @@ -1353,8 +1353,8 @@ :Fee 141 Variable:flow - 872.038 - 115.776 + 871.311 + 118.503 0 0 1 @@ -1379,8 +1379,8 @@ :I_C 144 Variable:flow - 878.402 - 268.503 + 878.311 + 276.503 0 0 1 @@ -1405,7 +1405,7 @@ :Lend 147 Variable:flow - 866.584 + 866.311 28.5033 0 0 @@ -1431,8 +1431,8 @@ :Repay 150 Variable:flow - 862.947 - 57.5942 + 862.311 + 58.5033 0 0 1 @@ -1457,8 +1457,8 @@ :W_C 153 Variable:flow - 872.947 - 144.867 + 873.311 + 148.503 0 0 1 @@ -1483,8 +1483,8 @@ :int 156 Variable:flow - 874.765 - 86.6851 + 874.311 + 88.5033 0 0 1 @@ -1509,8 +1509,8 @@ :D 159 Variable:stock - 941.889 - 359.559 + 942.98 + 359.378 0 0 1 @@ -1534,8 +1534,8 @@ :C_{NW} 161 Variable:stock - 970.98 - 367.741 + 972.98 + 367.378 0 0 1 @@ -1559,8 +1559,8 @@ :C_I 163 Variable:flow - 584.493 - 394.582 + 584.311 + 398.401 0 0 1 @@ -1585,8 +1585,8 @@ :I_B 166 Variable:flow - 585.402 - 425.491 + 585.311 + 430.401 0 0 1 @@ -1611,8 +1611,8 @@ :I_C 169 Variable:flow - 585.402 - 456.401 + 585.311 + 462.401 0 0 1 @@ -1637,7 +1637,7 @@ :Lend 172 Variable:flow - 573.584 + 573.311 276.401 0 0 @@ -1663,8 +1663,8 @@ :Repay 175 Variable:flow - 569.947 - 305.491 + 569.311 + 306.401 0 0 1 @@ -1689,8 +1689,8 @@ :W_I 178 Variable:flow - 582.675 - 363.673 + 582.311 + 366.401 0 0 1 @@ -1715,8 +1715,8 @@ :int 181 Variable:flow - 581.765 - 334.582 + 581.311 + 336.401 0 0 1 @@ -1741,8 +1741,8 @@ :I_{NW} 184 Variable:stock - 677.98 - 544.018 + 679.98 + 543.382 0 0 1 @@ -1766,8 +1766,8 @@ :C_W 186 Variable:flow - 847.955 - 363.697 + 847.5 + 365.879 0 0 1 @@ -1792,7 +1792,7 @@ :W_C 189 Variable:flow - 846.136 + 846.5 301.879 0 0 @@ -1818,8 +1818,8 @@ :W_I 192 Variable:flow - 848.864 - 332.788 + 848.5 + 333.879 0 0 1 @@ -1844,8 +1844,8 @@ :W_{NW} 195 Variable:stock - 913.359 - 441.969 + 914.45 + 441.787 0 0 1 @@ -3372,8 +3372,8 @@ :D 343 Variable:stock - 648.889 - 538.564 + 649.98 + 538.382 0 0 1 @@ -3837,8 +3837,8 @@ :C_D 394 Variable:stock - 584.421 - 391.585 + 585.33 + 391.767 0 0 1 @@ -3862,8 +3862,8 @@ :I_D 396 Variable:stock - 615.33 - 388.857 + 617.33 + 388.766 0 0 1 @@ -3887,8 +3887,8 @@ :W_D 398 Variable:stock - 646.239 - 393.403 + 649.33 + 393.766 0 0 1 @@ -3912,8 +3912,8 @@ :B_E 400 Variable:stock - 677.148 - 391.585 + 681.33 + 390.767 0 0 1 @@ -3938,7 +3938,7 @@ 402 Variable:stock 910.98 - 363.196 + 363.377 0 0 1 @@ -3963,7 +3963,7 @@ 404 Variable:stock 617.98 - 539.473 + 539.382 0 0 1 @@ -3988,7 +3988,7 @@ 406 Variable:stock 882.45 - 437.424 + 437.788 0 0 1 @@ -4013,7 +4013,6 @@ false false false - true true false line @@ -4234,7 +4233,6 @@ false false false - true true false line @@ -4455,7 +4453,6 @@ false false false - true true false line @@ -4676,7 +4673,6 @@ false false false - true true false line @@ -4897,7 +4893,6 @@ false false false - true true false line @@ -5118,7 +5113,6 @@ false false false - true true false line @@ -5786,4 +5780,6 @@ + + diff --git a/examples/MinskyGovernmentNonlinear.mky b/examples/MinskyGovernmentNonlinear.mky index ae8c92e39..dc686ac09 100644 --- a/examples/MinskyGovernmentNonlinear.mky +++ b/examples/MinskyGovernmentNonlinear.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 411 @@ -214,12 +214,12 @@ 811 402 - 795.897 - 420.513 - 847.537 - 498.456 - 1031.83 - 487.5 + 795.711 + 420.74 + 847.986 + 499.64 + 1037.67 + 480 @@ -591,10 +591,10 @@ 786 370 - 889.541 - 271.253 - 1013.5 - 343.125 + 892.649 + 268.289 + 1021 + 348.75 @@ -3134,7 +3134,6 @@ false false false - true true false line @@ -3352,7 +3351,6 @@ false false false - true true false line @@ -3570,7 +3568,6 @@ false false false - true true false line @@ -3817,4 +3814,6 @@ + + diff --git a/examples/MinskyNonLinear.mky b/examples/MinskyNonLinear.mky index 4d510e8ee..27c4b9cee 100644 --- a/examples/MinskyNonLinear.mky +++ b/examples/MinskyNonLinear.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 507 @@ -2702,7 +2702,6 @@ false false false - true true false line @@ -2923,7 +2922,6 @@ false false false - true true false line @@ -3144,7 +3142,6 @@ false false false - true true false line @@ -3365,7 +3362,6 @@ false false false - true true false line @@ -3586,7 +3582,6 @@ false false false - true true false line @@ -4970,4 +4965,6 @@ + + diff --git a/examples/MinskyPricesFinal.mky b/examples/MinskyPricesFinal.mky index ce76d8dec..d86af71cc 100644 --- a/examples/MinskyPricesFinal.mky +++ b/examples/MinskyPricesFinal.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 659 @@ -600,12 +600,12 @@ 558 554 - 614.475 - 270.223 - 626.545 - 234.929 - 628.31 - 266.807 + 610.035 + 259.54 + 616.408 + 240.905 + 615.99 + 254.941 @@ -678,12 +678,12 @@ 601 594 - 943.809 - 610.967 - 851.72 - 314.098 - 931.424 - 591.842 + 939.49 + 610.807 + 907.245 + 506.856 + 931.53 + 611.346 @@ -701,12 +701,12 @@ 603 599 - 937.48 - 620.387 - 870.106 - 394.831 - 914.319 - 616.498 + 938.8 + 612.932 + 902.889 + 492.707 + 927.671 + 607.201 @@ -774,12 +774,12 @@ 646 639 - 878.416 - 53.2633 - 845.335 - 29.0701 - 889.867 - 27.7115 + 873.218 + 47.9017 + 863.667 + 40.9165 + 881.261 + 47.0859 @@ -792,12 +792,12 @@ 648 640 - 874.998 - 56.3614 - 860.366 - 42.6585 - 889.867 - 48.1115 + 871.683 + 48.6002 + 861.573 + 39.1317 + 881.261 + 41.7951 @@ -805,12 +805,12 @@ 648 644 - 874.998 - 56.3614 - 856.035 - 38.5995 - 900.762 - 58.4169 + 871.683 + 48.6002 + 862.261 + 39.7747 + 883.718 + 44.1186 @@ -1624,7 +1624,7 @@ :Invest 156 Variable:flow - 166.905 + 167.269 -6.56 0 0 @@ -1650,8 +1650,8 @@ :IntL 159 Variable:flow - 175.087 - 22.5309 + 174.269 + 23.44 0 0 1 @@ -1676,8 +1676,8 @@ :IntDF 162 Variable:flow - 169.633 - 51.6218 + 169.269 + 53.44 0 0 1 @@ -1702,8 +1702,8 @@ :Wages 165 Variable:flow - 164.178 - 109.804 + 164.269 + 113.44 0 0 1 @@ -1728,8 +1728,8 @@ :ConsB 168 Variable:flow - 165.087 - 138.895 + 164.269 + 143.44 0 0 1 @@ -1754,8 +1754,8 @@ :ConsW 171 Variable:flow - 162.36 - 167.985 + 162.269 + 173.44 0 0 1 @@ -1780,8 +1780,8 @@ :Repay 174 Variable:flow - 166.905 - 197.076 + 166.269 + 203.44 0 0 1 @@ -1807,7 +1807,7 @@ 177 Variable:stock 216.889 - 267.978 + 268.16 0 0 1 @@ -1831,8 +1831,8 @@ :DF 179 Variable:stock - 245.98 - 268.887 + 246.889 + 269.16 0 0 1 @@ -1856,8 +1856,8 @@ :DW 181 Variable:stock - 275.071 - 271.615 + 276.889 + 271.16 0 0 1 @@ -1881,8 +1881,8 @@ :EB 183 Variable:stock - 304.162 - 268.887 + 306.889 + 269.16 0 0 1 @@ -2192,8 +2192,8 @@ :IntDW 215 Variable:flow - 166.905 - 80.7127 + 166.269 + 83.44 0 0 1 @@ -3859,7 +3859,6 @@ false false false - true true false line @@ -4077,7 +4076,6 @@ false false false - true true false line @@ -4295,7 +4293,6 @@ false false false - true true false line @@ -4513,7 +4510,6 @@ false false false - true true false line @@ -4731,7 +4727,6 @@ false false false - true true false line @@ -4949,7 +4944,6 @@ false false false - true true false line @@ -6356,4 +6350,6 @@ + + diff --git a/examples/MonetaryMinskyNeoPrices.mky b/examples/MonetaryMinskyNeoPrices.mky index fc92df3e9..7de2a3408 100644 --- a/examples/MonetaryMinskyNeoPrices.mky +++ b/examples/MonetaryMinskyNeoPrices.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 827 @@ -740,12 +740,12 @@ 697 703 - 594.162 - 310.276 - 587.456 - 299.304 - 579.573 - 314.006 + 583.912 + 305.013 + 582.304 + 302.382 + 584.394 + 301.435 @@ -863,12 +863,12 @@ 769 762 - 942.07 - 634.207 - 847.872 - 368.898 - 929.685 - 615.082 + 937.751 + 634.047 + 904.767 + 541.147 + 929.791 + 634.586 @@ -886,12 +886,12 @@ 771 767 - 935.741 - 643.627 - 867.054 - 442.245 - 912.58 - 639.738 + 937.061 + 636.172 + 900.45 + 528.831 + 925.932 + 630.441 @@ -959,12 +959,12 @@ 814 807 - 840.916 - 244.922 - 785.84 - 195.993 - 852.367 - 219.371 + 835.718 + 239.561 + 819.816 + 225.433 + 843.761 + 238.745 @@ -977,12 +977,12 @@ 816 808 - 837.498 - 248.02 - 811.51 - 221.506 - 852.367 - 239.771 + 834.183 + 240.259 + 816.225 + 221.938 + 843.761 + 233.454 @@ -990,12 +990,12 @@ 816 812 - 837.498 - 248.02 - 803.814 - 213.652 - 863.262 - 250.076 + 834.183 + 240.259 + 817.446 + 223.183 + 846.218 + 235.778 @@ -2170,7 +2170,7 @@ :Invest 228 Variable:flow - 1497.36 + 1497.72 88.5882 0 0 @@ -2196,8 +2196,8 @@ :Wages 231 Variable:flow - 1494.63 - 210.406 + 1494.72 + 214.588 0 0 1 @@ -2222,8 +2222,8 @@ :Repay 234 Variable:flow - 1497.36 - 301.316 + 1496.72 + 308.588 0 0 1 @@ -3723,8 +3723,8 @@ :Int_L 396 Variable:flow - 1506.45 - 117.679 + 1506.72 + 118.588 0 0 1 @@ -3749,8 +3749,8 @@ :Int_{DW} 399 Variable:flow - 1500.99 - 179.497 + 1500.72 + 182.588 0 0 1 @@ -3775,8 +3775,8 @@ :Int_{DF} 402 Variable:flow - 1502.81 - 148.588 + 1502.72 + 150.588 0 0 1 @@ -3801,8 +3801,8 @@ :Cons_B 405 Variable:flow - 1497.36 - 239.497 + 1496.72 + 244.588 0 0 1 @@ -3827,8 +3827,8 @@ :Cons_W 408 Variable:flow - 1495.54 - 270.406 + 1495.72 + 276.588 0 0 1 @@ -3854,7 +3854,7 @@ 411 Variable:stock 1548.95 - 389.873 + 389.872 0 0 1 @@ -3878,8 +3878,8 @@ :D_F 413 Variable:stock - 1579.86 - 391.691 + 1580.95 + 390.873 0 0 1 @@ -3903,8 +3903,8 @@ :D_W 415 Variable:stock - 1610.77 - 392.6 + 1612.95 + 392.872 0 0 1 @@ -3928,8 +3928,8 @@ :E_B 417 Variable:stock - 1641.68 - 390.782 + 1644.95 + 390.872 0 0 1 @@ -4917,7 +4917,6 @@ false false false - true true false line @@ -5136,7 +5135,6 @@ false false false - true true false line @@ -5355,7 +5353,6 @@ false false false - true true false line @@ -5574,7 +5571,6 @@ false false false - true true false line @@ -5795,7 +5791,6 @@ false false false - true true false line @@ -6014,7 +6009,6 @@ false false false - true true false line @@ -6233,7 +6227,6 @@ false false false - true true false line @@ -6452,7 +6445,6 @@ false false false - true true false line @@ -7859,4 +7851,6 @@ + + diff --git a/examples/PredatorPrey.mky b/examples/PredatorPrey.mky index 5d8396941..919f8a2ec 100644 --- a/examples/PredatorPrey.mky +++ b/examples/PredatorPrey.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 125 @@ -910,7 +910,6 @@ false false false - true true false line @@ -1157,4 +1156,6 @@ + + diff --git a/examples/Solow.mky b/examples/Solow.mky index 242db1106..b8cf115b9 100644 --- a/examples/Solow.mky +++ b/examples/Solow.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 112 @@ -149,10 +149,10 @@ 352.5 147.363 - 374.169 - 150.4 - 374 - 187.988 + 375.318 + 150.561 + 381.5 + 186.113 @@ -649,7 +649,6 @@ false false false - true true false line @@ -867,7 +866,6 @@ false false false - true true false line @@ -1114,4 +1112,6 @@ + + diff --git a/examples/Steve.mky b/examples/Steve.mky index 4adf9ae33..c9b56d859 100644 --- a/examples/Steve.mky +++ b/examples/Steve.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 197 @@ -129,10 +129,10 @@ 70.5 414.04 - 165.329 - 346.439 - 379.5 - 333.915 + 167.911 + 344.598 + 387 + 328.29 @@ -594,7 +594,7 @@ 59 Variable:stock 468.1 - 231.458 + 230.64 0 0 1 @@ -618,7 +618,7 @@ :Loan 61 Variable:stock - 497.191 + 498.1 229.64 0 0 @@ -643,8 +643,8 @@ :Firm 63 Variable:stock - 526.282 - 228.731 + 528.1 + 228.64 0 0 1 @@ -668,8 +668,8 @@ :Worker 65 Variable:stock - 555.373 - 237.822 + 558.1 + 237.64 0 0 1 @@ -693,8 +693,8 @@ :Safe 67 Variable:stock - 584.464 - 227.822 + 588.1 + 227.64 0 0 1 @@ -718,7 +718,7 @@ :A 69 Variable:flow - 433.091 + 433 -21.49 0 0 @@ -744,8 +744,8 @@ :B 72 Variable:flow - 433.091 - 7.6009 + 433 + 8.51 0 0 1 @@ -770,8 +770,8 @@ :C 75 Variable:flow - 433.091 - 36.6918 + 433 + 38.51 0 0 1 @@ -796,8 +796,8 @@ :D 78 Variable:flow - 433.091 - 65.7827 + 433 + 68.51 0 0 1 @@ -823,7 +823,7 @@ 81 Variable:flow 434 - 94.8736 + 98.51 0 0 1 @@ -849,7 +849,7 @@ 84 Variable:flow 434 - 123.965 + 128.51 0 0 1 @@ -874,8 +874,8 @@ :G 87 Variable:flow - 433.091 - 153.055 + 433 + 158.51 0 0 1 @@ -1075,7 +1075,6 @@ false false false - true true false line @@ -1293,7 +1292,6 @@ false false false - true true false line @@ -1511,7 +1509,6 @@ false false false - true true false line @@ -1729,7 +1726,6 @@ false false false - true true false line @@ -2139,4 +2135,6 @@ + + diff --git a/examples/SteveTest028.mky b/examples/SteveTest028.mky index ebc86906f..1590a947b 100644 --- a/examples/SteveTest028.mky +++ b/examples/SteveTest028.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 128 @@ -114,10 +114,10 @@ 36.5 33 - 54.2518 - 2.16803 - 243.5 - 67.125 + 54.959 + 0.939705 + 251 + 72.75 @@ -132,10 +132,10 @@ 37.5 164 - 120.157 - 236.851 - 243.5 - 149.625 + 123.206 + 239.538 + 251 + 147.75 @@ -586,7 +586,7 @@ 60 Variable:stock 424.55 - 261.527 + 261.8 0 0 1 @@ -610,8 +610,8 @@ :FL 62 Variable:stock - 453.641 - 260.618 + 454.55 + 260.8 0 0 1 @@ -635,8 +635,8 @@ :FD 64 Variable:stock - 482.732 - 261.527 + 484.55 + 261.8 0 0 1 @@ -660,8 +660,8 @@ :WD 66 Variable:stock - 511.823 - 264.255 + 514.55 + 263.8 0 0 1 @@ -685,8 +685,8 @@ :BS 68 Variable:stock - 540.914 - 261.527 + 544.55 + 261.8 0 0 1 @@ -710,7 +710,7 @@ :A 70 Variable:flow - 389.591 + 389.5 49.26 0 0 @@ -736,8 +736,8 @@ :B 73 Variable:flow - 389.591 - 78.3509 + 389.5 + 79.26 0 0 1 @@ -762,8 +762,8 @@ :C 76 Variable:flow - 389.591 - 107.442 + 389.5 + 111.26 0 0 1 @@ -788,8 +788,8 @@ :D 79 Variable:flow - 389.591 - 136.533 + 389.5 + 141.26 0 0 1 @@ -815,7 +815,7 @@ 82 Variable:flow 390.5 - 165.624 + 171.26 0 0 1 @@ -841,7 +841,7 @@ 85 Variable:flow 390.5 - 194.715 + 201.26 0 0 1 @@ -1066,7 +1066,6 @@ false false false - true true false line @@ -1465,4 +1464,6 @@ + + diff --git a/examples/UDFCallGroup.mky b/examples/UDFCallGroup.mky index ad34fbfdc..1c402f169 100644 --- a/examples/UDFCallGroup.mky +++ b/examples/UDFCallGroup.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 44 @@ -51,7 +51,6 @@ false false false - true true false automatic @@ -460,4 +459,6 @@ + + diff --git a/examples/UWS05.mky b/examples/UWS05.mky index 7d2f8134f..f13c026c3 100644 --- a/examples/UWS05.mky +++ b/examples/UWS05.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 127 @@ -94,10 +94,10 @@ 30 99 - 147.398 - 4.12322 - 217.5 - 283.375 + 150.385 + 1.7092 + 225 + 285.25 @@ -107,10 +107,10 @@ 35 150 - 149.081 - 90.0591 - 217.5 - 324.625 + 150.981 + 89.061 + 225 + 322.75 @@ -120,10 +120,10 @@ 34 205 - 155.617 - 139.813 - 217.5 - 365.875 + 156.665 + 139.251 + 225 + 360.25 @@ -488,7 +488,7 @@ 45 Variable:stock 386.55 - 243.636 + 243 0 0 1 @@ -512,8 +512,8 @@ :Loans 47 Variable:stock - 415.641 - 244.545 + 416.55 + 244 0 0 1 @@ -537,8 +537,8 @@ :Safe 49 Variable:stock - 444.732 - 238.182 + 446.55 + 238 0 0 1 @@ -562,8 +562,8 @@ :Vault 51 Variable:stock - 473.823 - 241.818 + 476.55 + 241 0 0 1 @@ -587,8 +587,8 @@ :Workers 53 Variable:stock - 502.914 - 251.818 + 506.55 + 252 0 0 1 @@ -612,7 +612,7 @@ :A 55 Variable:flow - 351.591 + 351.5 52.05 0 0 @@ -638,8 +638,8 @@ :B 58 Variable:flow - 351.591 - 81.1409 + 351.5 + 82.05 0 0 1 @@ -664,8 +664,8 @@ :C 61 Variable:flow - 351.591 - 110.232 + 351.5 + 112.05 0 0 1 @@ -690,8 +690,8 @@ :D 64 Variable:flow - 351.591 - 139.323 + 351.5 + 142.05 0 0 1 @@ -717,7 +717,7 @@ 67 Variable:flow 352.5 - 168.414 + 172.05 0 0 1 @@ -867,7 +867,6 @@ false false false - true true false line @@ -1085,7 +1084,6 @@ false false false - true true false line @@ -1463,4 +1461,6 @@ + + diff --git a/examples/binaryInterpolation.mky b/examples/binaryInterpolation.mky index 2577cd609..db7341b60 100644 --- a/examples/binaryInterpolation.mky +++ b/examples/binaryInterpolation.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 55 @@ -801,4 +801,6 @@ + + diff --git a/examples/data-example.mky b/examples/data-example.mky index 1616edb55..6f512ce32 100644 --- a/examples/data-example.mky +++ b/examples/data-example.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 31 @@ -109,7 +109,6 @@ false false false - true true false line @@ -356,4 +355,6 @@ + + diff --git a/examples/exponentialGrowth.mky b/examples/exponentialGrowth.mky index 1f3b612c9..c14940c3f 100644 --- a/examples/exponentialGrowth.mky +++ b/examples/exponentialGrowth.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 35 @@ -135,7 +135,6 @@ false false false - true true false line @@ -382,4 +381,6 @@ + + diff --git a/examples/exponentialGrowthWithExtraLabel.mky b/examples/exponentialGrowthWithExtraLabel.mky index a49502938..911055993 100644 --- a/examples/exponentialGrowthWithExtraLabel.mky +++ b/examples/exponentialGrowthWithExtraLabel.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 38 @@ -167,7 +167,6 @@ false false false - true true false line @@ -414,4 +413,6 @@ + + diff --git a/examples/fundamentalConstants.mky b/examples/fundamentalConstants.mky index b5414384f..eb83297e9 100644 --- a/examples/fundamentalConstants.mky +++ b/examples/fundamentalConstants.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 156 @@ -163,7 +163,6 @@ false false false - true true false line @@ -663,7 +662,6 @@ false false false - true true false line @@ -1064,7 +1062,6 @@ false false false - true true false line @@ -1489,4 +1486,6 @@ + + diff --git a/examples/gammaAndFriends.mky b/examples/gammaAndFriends.mky index 48da341a0..98f49e8e3 100644 --- a/examples/gammaAndFriends.mky +++ b/examples/gammaAndFriends.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 58 @@ -82,7 +82,6 @@ false false false - true true false automatic @@ -555,4 +554,6 @@ + + diff --git a/examples/histogram.mky b/examples/histogram.mky index d7bdf887a..92aed4bfd 100644 --- a/examples/histogram.mky +++ b/examples/histogram.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 30 @@ -67,7 +67,6 @@ false false false - true true false bar @@ -339,4 +338,6 @@ + + diff --git a/examples/importedCSV.mky b/examples/importedCSV.mky index 4711dddb9..fc05ad364 100644 --- a/examples/importedCSV.mky +++ b/examples/importedCSV.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 12 @@ -204,4 +204,6 @@ + + diff --git a/examples/indexing.mky b/examples/indexing.mky index e1c0f9a56..cd0950408 100644 --- a/examples/indexing.mky +++ b/examples/indexing.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 39 @@ -456,4 +456,6 @@ + + diff --git a/examples/inner-outer-example.mky b/examples/inner-outer-example.mky index 13574d504..c309a4a59 100644 --- a/examples/inner-outer-example.mky +++ b/examples/inner-outer-example.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 32 @@ -325,4 +325,6 @@ + + diff --git a/examples/math-examples.mky b/examples/math-examples.mky index 7771585b2..75a6bee58 100644 --- a/examples/math-examples.mky +++ b/examples/math-examples.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 @@ -245,4 +245,6 @@ + + diff --git a/examples/plotWidget.mky b/examples/plotWidget.mky index 3e0f2724d..d29e2528c 100644 --- a/examples/plotWidget.mky +++ b/examples/plotWidget.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 87 @@ -27,10 +27,10 @@ 267 365 - 316.985 - 358.52 - 360.833 - 337.5 + 321 + 358 + 366.667 + 330 @@ -40,10 +40,10 @@ 261 186 - 325.062 - 390.39 - 379.167 - 337.5 + 324 + 387 + 383.333 + 330 @@ -82,7 +82,6 @@ false false false - true true false automatic @@ -407,7 +406,6 @@ false false false - true true false automatic @@ -761,7 +759,6 @@ false false false - true true false automatic @@ -1029,4 +1026,6 @@ + + diff --git a/examples/rand-gather-interpolation.mky b/examples/rand-gather-interpolation.mky index d8a9adbb5..8c7a532ce 100644 --- a/examples/rand-gather-interpolation.mky +++ b/examples/rand-gather-interpolation.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 31 @@ -50,7 +50,6 @@ false false false - true true false line @@ -342,4 +341,6 @@ + + diff --git a/examples/reductionExample.mky b/examples/reductionExample.mky index b0b5391c6..733b4e00e 100644 --- a/examples/reductionExample.mky +++ b/examples/reductionExample.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 66 @@ -73,7 +73,6 @@ false false false - true true false line @@ -413,7 +412,6 @@ false false false - true true false line @@ -667,4 +665,6 @@ + + diff --git a/examples/reductionsTest.mky b/examples/reductionsTest.mky index 656a1d926..2710dd71f 100644 --- a/examples/reductionsTest.mky +++ b/examples/reductionsTest.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 217 @@ -452,7 +452,6 @@ false false false - true true false automatic @@ -765,7 +764,6 @@ false false false - true true false automatic @@ -1033,7 +1031,6 @@ false false false - true true false automatic @@ -1377,7 +1374,6 @@ false false false - true true false automatic @@ -2001,4 +1997,6 @@ + + diff --git a/examples/scansTest.mky b/examples/scansTest.mky index d7fdb748e..5c8b28cd4 100644 --- a/examples/scansTest.mky +++ b/examples/scansTest.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 85 @@ -291,7 +291,6 @@ false false false - true true false automatic @@ -797,4 +796,6 @@ + + diff --git a/examples/statistics.mky b/examples/statistics.mky index 60d233969..1db09c45f 100644 --- a/examples/statistics.mky +++ b/examples/statistics.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 83 @@ -204,7 +204,6 @@ false false false - true true false automatic @@ -793,4 +792,6 @@ + + diff --git a/examples/switchBlock.mky b/examples/switchBlock.mky index 2bbec97d1..56f17ab0e 100644 --- a/examples/switchBlock.mky +++ b/examples/switchBlock.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 46 @@ -202,7 +202,6 @@ false false false - true true false line @@ -471,4 +470,6 @@ + + diff --git a/examples/tensor-switch.mky b/examples/tensor-switch.mky index 1153b4bfd..427832509 100644 --- a/examples/tensor-switch.mky +++ b/examples/tensor-switch.mky @@ -1,6 +1,6 @@ 3 - 3.2.0-alpha.33 + 3.2.0-beta.2 85 @@ -190,7 +190,6 @@ false false false - true true false line @@ -604,7 +603,6 @@ false false false - true true false line @@ -877,4 +875,6 @@ + + diff --git a/gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts b/gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts index ed74e272b..65f29b43e 100644 --- a/gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts +++ b/gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts @@ -716,9 +716,12 @@ export class CommandsManager { break; - case ClassType.Group: + case ClassType.Group: + if (await CommandsManager.selectVar(mouseX,mouseY)) + await CommandsManager.editVar(); + else await CommandsManager.editItem(ClassType.Group); - break; + break; case ClassType.Item: await CommandsManager.postNote('item'); diff --git a/gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts b/gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts index a86528b62..fa7295a1d 100644 --- a/gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts +++ b/gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts @@ -71,6 +71,13 @@ export class ContextMenuManager { }, enabled: await pubTab.getItemAt(this.x,this.y), }), + new MenuItem({ + label: 'Toggle editor mode', + click: () => { + pubTab.toggleEditorModeAt(this.x,this.y); + }, + enabled: await pubTab.getItemAt(this.x,this.y), + }), new MenuItem({ label: 'Remove item', click: () => { diff --git a/gui-js/libs/shared/src/lib/backend/minsky.ts b/gui-js/libs/shared/src/lib/backend/minsky.ts index 5eb09be3e..996937504 100644 --- a/gui-js/libs/shared/src/lib/backend/minsky.ts +++ b/gui-js/libs/shared/src/lib/backend/minsky.ts @@ -70,6 +70,7 @@ export class Item extends CppClass { async drawResizeHandles(a1: minsky__dummy): Promise {return this.$callMethod('drawResizeHandles',a1);} async drawSelected(a1: minsky__dummy): Promise {return this.$callMethod('drawSelected',a1);} async dummyDraw(): Promise {return this.$callMethod('dummyDraw');} + async editorMode(): Promise {return this.$callMethod('editorMode');} async ensureBBValid(): Promise {return this.$callMethod('ensureBBValid');} async flip(): Promise {return this.$callMethod('flip');} async height(): Promise {return this.$callMethod('height');} @@ -111,6 +112,7 @@ export class Item extends CppClass { async select(a1: number,a2: number): Promise {return this.$callMethod('select',a1,a2);} async selected(...args: boolean[]): Promise {return this.$callMethod('selected',...args);} async throw_error(a1: string): Promise {return this.$callMethod('throw_error',a1);} + async toggleEditorMode(): Promise {return this.$callMethod('toggleEditorMode');} async tooltip(...args: string[]): Promise {return this.$callMethod('tooltip',...args);} async top(): Promise {return this.$callMethod('top');} async units(a1: boolean): Promise {return this.$callMethod('units',a1);} @@ -231,6 +233,7 @@ export class VariableBase extends Item { async drawResizeHandles(a1: minsky__dummy): Promise {return this.$callMethod('drawResizeHandles',a1);} async drawSelected(a1: minsky__dummy): Promise {return this.$callMethod('drawSelected',a1);} async dummyDraw(): Promise {return this.$callMethod('dummyDraw');} + async editorMode(): Promise {return this.$callMethod('editorMode');} async enableSlider(...args: boolean[]): Promise {return this.$callMethod('enableSlider',...args);} async engExp(): Promise {return this.$callMethod('engExp');} async ensureBBValid(): Promise {return this.$callMethod('ensureBBValid');} @@ -304,6 +307,7 @@ export class VariableBase extends Item { async sliderVisible(): Promise {return this.$callMethod('sliderVisible');} async temp(): Promise {return this.$callMethod('temp');} async throw_error(a1: string): Promise {return this.$callMethod('throw_error',a1);} + async toggleEditorMode(): Promise {return this.$callMethod('toggleEditorMode');} async toggleLocal(): Promise {return this.$callMethod('toggleLocal');} async tooltip(...args: string[]): Promise {return this.$callMethod('tooltip',...args);} async top(): Promise {return this.$callMethod('top');} @@ -1082,6 +1086,7 @@ export class Group extends Item { async drawSelected(a1: minsky__dummy): Promise {return this.$callMethod('drawSelected',a1);} async dummyDraw(): Promise {return this.$callMethod('dummyDraw');} async edgeScale(): Promise {return this.$callMethod('edgeScale');} + async editorMode(): Promise {return this.$callMethod('editorMode');} async empty(): Promise {return this.$callMethod('empty');} async ensureBBValid(): Promise {return this.$callMethod('ensureBBValid');} async findGroup(a1: Group): Promise {return this.$callMethod('findGroup',a1);} @@ -1162,6 +1167,7 @@ export class Group extends Item { async summariseGodleys(): Promise {return this.$callMethod('summariseGodleys');} async throw_error(a1: string): Promise {return this.$callMethod('throw_error',a1);} async title(...args: string[]): Promise {return this.$callMethod('title',...args);} + async toggleEditorMode(): Promise {return this.$callMethod('toggleEditorMode');} async tooltip(...args: string[]): Promise {return this.$callMethod('tooltip',...args);} async top(): Promise {return this.$callMethod('top');} async uniqueItems(...args: any[]): Promise {return this.$callMethod('uniqueItems',...args);} @@ -1723,11 +1729,15 @@ export class PubItem extends CppClass { super(prefix); this.itemRef=new Item(this.$prefix()+'.itemRef'); } + async editorMode(...args: boolean[]): Promise {return this.$callMethod('editorMode',...args);} + async item(...args: number[]): Promise {return this.$callMethod('item',...args);} async itemCoords(a1: number,a2: number): Promise {return this.$callMethod('itemCoords',a1,a2);} async rotation(...args: number[]): Promise {return this.$callMethod('rotation',...args);} async x(...args: number[]): Promise {return this.$callMethod('x',...args);} async y(...args: number[]): Promise {return this.$callMethod('y',...args);} async zoomFactor(...args: number[]): Promise {return this.$callMethod('zoomFactor',...args);} + async zoomX(...args: number[]): Promise {return this.$callMethod('zoomX',...args);} + async zoomY(...args: number[]): Promise {return this.$callMethod('zoomY',...args);} } export class PubTab extends RenderNativeWindow { @@ -1755,6 +1765,7 @@ export class PubTab extends RenderNativeWindow { async removeItemAt(a1: number,a2: number): Promise {return this.$callMethod('removeItemAt',a1,a2);} async removeSelf(): Promise {return this.$callMethod('removeSelf');} async rotateItemAt(a1: number,a2: number): Promise {return this.$callMethod('rotateItemAt',a1,a2);} + async toggleEditorModeAt(a1: number,a2: number): Promise {return this.$callMethod('toggleEditorModeAt',a1,a2);} async zoom(a1: number,a2: number,a3: number): Promise {return this.$callMethod('zoom',a1,a2,a3);} async zoomFactor(): Promise {return this.$callMethod('zoomFactor');} } @@ -1786,7 +1797,7 @@ export class Ravel extends Item { async displayDelayedTooltip(a1: number,a2: number): Promise {return this.$callMethod('displayDelayedTooltip',a1,a2);} async displayFilterCaliper(): Promise {return this.$callMethod('displayFilterCaliper');} async draw(a1: minsky__dummy): Promise {return this.$callMethod('draw',a1);} - async editorMode(...args: boolean[]): Promise {return this.$callMethod('editorMode',...args);} + async editorMode(): Promise {return this.$callMethod('editorMode');} async exportAsCSV(a1: string): Promise {return this.$callMethod('exportAsCSV',a1);} async getState(): Promise {return this.$callMethod('getState');} async handleDescription(a1: number): Promise {return this.$callMethod('handleDescription',a1);} @@ -1979,6 +1990,7 @@ export class Selection extends CppClass { async drawSelected(a1: minsky__dummy): Promise {return this.$callMethod('drawSelected',a1);} async dummyDraw(): Promise {return this.$callMethod('dummyDraw');} async edgeScale(): Promise {return this.$callMethod('edgeScale');} + async editorMode(): Promise {return this.$callMethod('editorMode');} async empty(): Promise {return this.$callMethod('empty');} async ensureBBValid(): Promise {return this.$callMethod('ensureBBValid');} async ensureGroupInserted(a1: Group): Promise {return this.$callMethod('ensureGroupInserted',a1);} @@ -2060,6 +2072,7 @@ export class Selection extends CppClass { async summariseGodleys(): Promise {return this.$callMethod('summariseGodleys');} async throw_error(a1: string): Promise {return this.$callMethod('throw_error',a1);} async title(...args: string[]): Promise {return this.$callMethod('title',...args);} + async toggleEditorMode(): Promise {return this.$callMethod('toggleEditorMode');} async toggleItemMembership(a1: Item): Promise {return this.$callMethod('toggleItemMembership',a1);} async tooltip(...args: string[]): Promise {return this.$callMethod('tooltip',...args);} async top(): Promise {return this.$callMethod('top');} diff --git a/model/godleyIcon.h b/model/godleyIcon.h index 6401fe0d7..ac07725a5 100644 --- a/model/godleyIcon.h +++ b/model/godleyIcon.h @@ -65,8 +65,8 @@ namespace minsky ~GodleyIcon() {Item::removeControlledItems();} /// indicate whether icon is in editor mode or icon mode - bool editorMode() const {return m_editorMode;} - void toggleEditorMode(); + bool editorMode() const override {return m_editorMode;} + void toggleEditorMode() override; /// enable/disable drawing buttons in table on canvas display bool buttonDisplay() const; diff --git a/model/group.cc b/model/group.cc index 88a4c8e8c..352a510c8 100644 --- a/model/group.cc +++ b/model/group.cc @@ -516,10 +516,10 @@ namespace minsky } } - VariablePtr Group::addIOVar() + VariablePtr Group::addIOVar(const char* prefix) { VariablePtr v(VariableType::flow, - uqName(cminsky().variableValues.newName(to_string(size_t(this))+":"))); + uqName(cminsky().variableValues.newName(to_string(size_t(this))+":"+prefix))); addItem(v,true); createdIOvariables.push_back(v); v->rotation(rotation()); diff --git a/model/group.h b/model/group.h index 6f63cdba3..3bfc90ae4 100644 --- a/model/group.h +++ b/model/group.h @@ -219,7 +219,7 @@ namespace minsky class Group: public ItemT, public GroupItems, public CallableFunction { bool m_displayContentsChanged=true; - VariablePtr addIOVar(); + VariablePtr addIOVar(const char*); protected: /// returns the smallest group whose icon completely encloses the /// rectangle given by the argument. If no candidate group found, @@ -290,8 +290,8 @@ namespace minsky /// check if item is a variable and located in an I/O region, and add it if it is void checkAddIORegion(const ItemPtr& x); - void addInputVar() {inVariables.push_back(addIOVar());} - void addOutputVar() {outVariables.push_back(addIOVar());} + void addInputVar() {inVariables.push_back(addIOVar("input"));} + void addOutputVar() {outVariables.push_back(addIOVar("output"));} /// remove item from group, and also all attached wires. void deleteItem(const Item&); diff --git a/model/item.h b/model/item.h index 06b35c760..61478b826 100644 --- a/model/item.h +++ b/model/item.h @@ -334,6 +334,11 @@ namespace minsky /// enable extended tooltip help message appropriate for mouse at (x,y) virtual void displayDelayedTooltip(float x, float y) {} virtual void disableDelayedTooltip() {} + + /// some items have an editor mode attribute + virtual bool editorMode() const {return false;} + virtual void toggleEditorMode() {} + /// compute the dimensional units /// @param check - if true, then perform consistency checks /// @throw if check=true and dimensions inconsistent diff --git a/model/minsky.cc b/model/minsky.cc index 61208d618..1ba9a4025 100644 --- a/model/minsky.cc +++ b/model/minsky.cc @@ -217,19 +217,23 @@ namespace minsky void Minsky::paste() try { + map existingParms; + // preserve initial conditions. + for (auto& [valueId,vv]: variableValues) + existingParms.emplace(valueId,vv->init); + istringstream is(clipboard.getClipboard()); xml_unpack_t unpacker(is); schema3::Minsky m(unpacker); GroupPtr g(new Group); g->self=g; m.populateGroup(*g); - // stash values of parameters in copied group, as they are reset for some unknown reason later on. for ticket 1258 - map existingParms; - for (auto& i: g->items) { - auto v=i->variableCast(); - if (v && v->type()==VariableType::parameter) + + // stash values of parameters in the copied group, for ticket 1258 + for (auto& i: g->items) + if (auto v=i->variableCast(); v && v->type()==VariableType::parameter) existingParms.emplace(v->valueId(),v->init()); - } + // Default pasting no longer occurs as grouped items or as a group within a group. Fix for tickets 1080/1098 canvas.selection.clear(); // The following is only necessary if one pastes into an existing model. For ticket 1258 @@ -284,18 +288,14 @@ namespace minsky canvas.model->moveContents(*g); // leave newly ungrouped items in selection - for (auto& i: copyOfItems) { + for (auto& i: copyOfItems) canvas.selection.ensureItemInserted(i); - // ensure that initial values of pasted parameters are correct. for ticket 1258 - if (auto v=i->variableCast()) - if (v->type()==VariableType::parameter && !existingParms.empty()) - { - auto it=existingParms.find(v->valueId()); - if (it!=existingParms.end()) v->init(it->second); - } - } - - if (!existingParms.empty()) existingParms.clear(); + + // ensure that initial values of pasted parameters are correct. for ticket 1258 + for (auto& p: existingParms) + if (auto vv=variableValues.find(p.first); vv!=variableValues.end()) + vv->second->init=p.second; + existingParms.clear(); // Attach mouse focus only to first visible item in selection. For ticket 1098. for (auto& i: canvas.selection.items) diff --git a/model/pubTab.cc b/model/pubTab.cc index eb784ae3a..81967e561 100644 --- a/model/pubTab.cc +++ b/model/pubTab.cc @@ -19,7 +19,9 @@ #include "lasso.h" #include "minsky.h" +#include "cairoItems.h" #include "pubTab.h" +#include "publication.rcd" #include "pubTab.xcd" #include "pubTab.rcd" #include "pannableTab.rcd" @@ -29,6 +31,33 @@ using namespace ecolab::cairo; namespace minsky { + namespace { + struct EnsureEditorMode + { + PubItem& item; + bool editorModeToggled; + LassoBox origBox; + float origIWidth, origIHeight; + EnsureEditorMode(PubItem& item): + item(item), editorModeToggled(item.editorMode!=item.itemRef->editorMode()), + origIWidth(item.itemRef? item.itemRef->iWidth(): 0), + origIHeight(item.itemRef? item.itemRef->iHeight(): 0) + { + if (editorModeToggled) + item.itemRef->toggleEditorMode(); + item.itemRef->iWidth(item.zoomX*origIWidth); + item.itemRef->iHeight(item.zoomY*origIHeight); + } + ~EnsureEditorMode() + { + if (editorModeToggled) + item.itemRef->toggleEditorMode(); + item.itemRef->iWidth(origIWidth); + item.itemRef->iHeight(origIHeight); + } + }; + } + Point PubItem::itemCoords(float x, float y) const { if (!itemRef) return {0,0}; @@ -90,6 +119,7 @@ namespace minsky CairoSave cs(cairo); cairo_translate(cairo, offsx, offsy); cairo_scale(cairo, m_zoomFactor, m_zoomFactor); + cairo_set_line_width(cairo, 1); for (auto& i: items) { CairoSave cs(cairo); @@ -98,24 +128,28 @@ namespace minsky cairo_rotate(cairo,(M_PI/180)*i.rotation-i.itemRef->rotation()); try { + EnsureEditorMode ensureEditorMode(i); i.itemRef->draw(cairo); } catch (...) {} } - if (resizing) + if (clickType==ClickType::onResize) { cairo_rectangle(cairo,std::min(lasso.x0,lasso.x1), std::min(lasso.y0,lasso.y1), abs(lasso.x0-lasso.x1), abs(lasso.y0-lasso.y1)); cairo_stroke(cairo); } - return !items.empty() || resizing; + return !items.empty() || clickType!=ClickType::outside; } PubItem* PubTab::m_getItemAt(float x, float y) { for (auto& i: items) - if (i.itemRef->contains(i.itemCoords(x,y))) + { + EnsureEditorMode e(i); + if (i.itemRef->contains(i.itemCoords(x,y))) return &i; + } return nullptr; } @@ -124,16 +158,19 @@ namespace minsky x-=offsx; y-=offsy; item=m_getItemAt(x,y); if (item) - if (auto p=item->itemCoords(x,y); - item->itemRef->clickType(p.x(),p.y())==ClickType::onResize) - { - resizing=true; - auto scale=item->zoomFactor/item->itemRef->zoomFactor(); - lasso.x0=x>item->x? x-item->itemRef->width()*scale: x+item->itemRef->width()*scale; - lasso.y0=y>item->y? y-item->itemRef->height()*scale: y+item->itemRef->height()*scale; - lasso.x1=x; - lasso.y1=y; - } + { + EnsureEditorMode e(*item); + auto p=item->itemCoords(x,y); + clickType=item->itemRef->clickType(p.x(),p.y()); + if (clickType==ClickType::onResize) + { + auto scale=item->zoomFactor/item->itemRef->zoomFactor(); + lasso.x0=x>item->x? x-item->itemRef->width()*scale: x+item->itemRef->width()*scale; + lasso.y0=y>item->y? y-item->itemRef->height()*scale: y+item->itemRef->height()*scale; + lasso.x1=x; + lasso.y1=y; + } + } } void PubTab::mouseUp(float x, float y) @@ -145,17 +182,16 @@ namespace minsky return; } mouseMove(x,y); - if (item && resizing) + if (item && clickType==ClickType::onResize) { - item->zoomFactor=std::min( - abs(lasso.x1-lasso.x0)/item->itemRef->width(), - abs(lasso.y1-lasso.y0)/item->itemRef->height()); + item->zoomX=abs(lasso.x1-lasso.x0)/(item->itemRef->width()*item->zoomFactor); + item->zoomY=abs(lasso.y1-lasso.y0)/(item->itemRef->height()*item->zoomFactor); item->x=0.5*(lasso.x0+lasso.x1); item->y=0.5*(lasso.y0+lasso.y1); } minsky().pushHistory(); item=nullptr; - resizing=false; + clickType=ClickType::outside; rotating=false; } @@ -174,16 +210,27 @@ namespace minsky { item->rotation=(180/M_PI)*atan2(x-rx, y-ry); } - else if (resizing) - { - lasso.x1=x; - lasso.y1=y; - } else - { - item->x=x; - item->y=y; - } + switch (clickType) + { + case ClickType::onResize: + lasso.x1=x; + lasso.y1=y; + break; + case ClickType::onSlider: + if (auto v=item->itemRef->variableCast()) + { + RenderVariable rv(*v); + double rw=fabs(v->zoomFactor()*(rv.width()iWidth()? 0.5*v->iWidth() : rv.width())*cos(v->rotation()*M_PI/180)); + double sliderPos=(x-item->x)* (v->sliderMax-v->sliderMin)/rw+0.5*(v->sliderMin+v->sliderMax); + double sliderHatch=sliderPos-fmod(sliderPos,v->sliderStep); // matches slider's hatch marks to sliderStep value. for ticket 1258 + v->sliderSet(sliderHatch); + } + break; + default: + item->x=x; + item->y=y; + } } else // indicate mouse focus @@ -192,5 +239,6 @@ namespace minsky requestRedraw(); } } +CLASSDESC_ACCESS_EXPLICIT_INSTANTIATION(schema3::PublicationItem); CLASSDESC_ACCESS_EXPLICIT_INSTANTIATION(minsky::PubTab); CLASSDESC_ACCESS_EXPLICIT_INSTANTIATION(minsky::PubItem); diff --git a/model/pubTab.h b/model/pubTab.h index b238c160f..0ffef8b38 100644 --- a/model/pubTab.h +++ b/model/pubTab.h @@ -22,20 +22,22 @@ #include "item.h" #include "pannableTab.h" +#include "publication.h" #include "renderNativeWindow.h" namespace minsky { - class PubItem + class PubItem: public schema3::PublicationItem { public: PubItem()=default; - PubItem(const ItemPtr& item): itemRef(item) {} + PubItem(const ItemPtr& item): itemRef(item) { + if (item) editorMode=item->editorMode(); + } + PubItem(const ItemPtr& item, const schema3::PublicationItem& state): + schema3::PublicationItem(state), itemRef(item) {} ItemPtr itemRef; - float x=100,y=100; - float zoomFactor=1; - double rotation=0; - /// given (x,y) in PubTab, returns coordinates within item + /// given (x,y) in PubTab, returns coordinates within item. Nb: must be wrapped by EnsureEditorMode Point itemCoords(float x, float y) const; }; @@ -52,7 +54,8 @@ namespace minsky CLASSDESC_ACCESS(PubTab); PubItem* item=nullptr; // weak reference for moving items PubItem* m_getItemAt(float x, float y); - bool resizing=false, rotating=false; + bool rotating=false; + ClickType::Type clickType=ClickType::outside; float rx=0, ry=0; ///< reference position for rotating LassoBox lasso; public: @@ -67,6 +70,10 @@ namespace minsky void removeSelf(); void removeItemAt(float x, float y); void rotateItemAt(float x, float y); + void toggleEditorModeAt(float x, float y) { + if (auto i=m_getItemAt(x-offsx,y-offsy)) + i->editorMode=!i->editorMode; + } bool getItemAt(float x, float y) override {return m_getItemAt(x-offsx,y-offsy);} void mouseDown(float x, float y) override; void controlMouseDown(float x, float y) override {panning=true; PannableTab::mouseDown(x,y);} diff --git a/model/ravelWrap.cc b/model/ravelWrap.cc index 979ca0666..00890853f 100644 --- a/model/ravelWrap.cc +++ b/model/ravelWrap.cc @@ -68,12 +68,12 @@ namespace minsky } if (minsky().model->findAny(&GroupItems::items, [](const ItemPtr& i){return i->ravelCast();})) return; // early return if at least 1 ravel already present - editorMode=true; // first ravel is in editor mode + m_editorMode=true; // first ravel is in editor mode } void Ravel::draw(cairo_t* cairo) const { - double z=zoomFactor(), r=editorMode? 1.1*z*wrappedRavel.radius(): 30*z; + double z=zoomFactor(), r=m_editorMode? 1.1*z*wrappedRavel.radius(): 30*z; m_ports[0]->moveTo(x()+1.1*r, y()); m_ports[1]->moveTo(x()-1.1*r, y()); if (mouseFocus) @@ -81,7 +81,7 @@ namespace minsky drawPorts(cairo); displayTooltip(cairo,tooltip.empty()? explanation: tooltip); // Resize handles always visible on mousefocus. For ticket 92. - if (editorMode) drawResizeHandles(cairo); + if (m_editorMode) drawResizeHandles(cairo); } cairo_rectangle(cairo,-r,-r,2*r,2*r); cairo_rectangle(cairo,-1.1*r,-1.1*r,2.2*r,2.2*r); @@ -105,7 +105,7 @@ namespace minsky cairo::CairoSave cs(cairo); cairo_rectangle(cairo,-r,-r,2*r,2*r); cairo_clip(cairo); - if (editorMode) + if (m_editorMode) { cairo_scale(cairo,z,z); CairoRenderer cr(cairo); @@ -130,7 +130,7 @@ namespace minsky bool Ravel::inItem(float xx, float yy) const { - if (editorMode) + if (m_editorMode) { float r=1.1*zoomFactor()*wrappedRavel.radius(); return std::abs(xx-x())<=r && std::abs(yy-y())<=r; diff --git a/model/ravelWrap.h b/model/ravelWrap.h index 5fc3a9f0b..50f02b1db 100644 --- a/model/ravelWrap.h +++ b/model/ravelWrap.h @@ -61,6 +61,9 @@ namespace minsky using HandleState=ravel::HandleState; /// position of the "move" handle, as a proportion of radius const double moveX=0.5, moveY=0.5, moveSz=0.1; + + /// indicate whether icon is in editor mode or icon mode + bool m_editorMode=false; //std::string m_filename; std::string explanation; // explanation of Ravel bits displayed as tooltip ravel::HandleSort::Order previousOrder=ravel::HandleSort::staticForward; @@ -202,8 +205,8 @@ namespace minsky Units units(bool) const override; /// indicate whether icon is in editor mode or icon mode - bool editorMode=false; - void toggleEditorMode() {editorMode=!editorMode;updateBoundingBox();} + bool editorMode() const override {return m_editorMode;} + void toggleEditorMode() override {m_editorMode=!m_editorMode;updateBoundingBox();} }; diff --git a/schema/publication.h b/schema/publication.h new file mode 100644 index 000000000..8b45ca230 --- /dev/null +++ b/schema/publication.h @@ -0,0 +1,49 @@ +/* + @copyright Steve Keen 2024 + @author Russell Standish + This file is part of Minsky. + + Minsky is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Minsky is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Minsky. If not, see . +*/ + +#ifndef PUBLICATION_H +#define PUBLICATION_H +#include +#include +namespace schema3 +{ + struct PublicationItem + { + int item=-1; + float x=100,y=100; + float zoomFactor=1; + float zoomX=1, zoomY=1; + double rotation=0; + bool editorMode=false; + PublicationItem()=default; + PublicationItem(int item, const PublicationItem& x) {*this=x; this->item=item;} + }; + + struct PublicationTab + { + std::string name; + std::vector items; + float x=100,y=100,zoomFactor=1; + }; +} +using classdesc::xsd_generate; +using classdesc::xml_pack; +#include "publication.cd" +#include "publication.xcd" +#endif diff --git a/schema/schema3.cc b/schema/schema3.cc index eff276070..890e22d6d 100644 --- a/schema/schema3.cc +++ b/schema/schema3.cc @@ -1,4 +1,4 @@ -/* + /* @copyright Steve Keen 2017 @author Russell Standish This file is part of Minsky. @@ -180,7 +180,7 @@ namespace schema3 { items.back().ravelState=s; items.back().dimensions=r->axisDimensions; - items.back().editorMode=r->editorMode; + items.back().editorMode=r->editorMode(); } } if (auto* l=dynamic_cast(i)) @@ -283,7 +283,7 @@ namespace schema3 struct MinskyImpl { - IdMap itemMap; // for serialisation + IdMap itemMap, pubItemMap; // for serialisation map reverseItemMap; // for deserialisation }; @@ -414,37 +414,15 @@ namespace schema3 publicationTabs.emplace_back(); publicationTabs.back().name=i.name; for (auto& j: i.items) - publicationTabs.back().items.emplace_back(itemMap[j.itemRef.get()], j); + { + // add locally added notes on publication tab to items list in schema + if (!itemMap.count(j.itemRef.get())) + itemMap.emplaceIf(publicationItems,j.itemRef.get()); + publicationTabs.back().items.emplace_back(itemMap[j.itemRef.get()], j); + } } } - void Minsky::populatePublicationTabs(std::vector& pubTabs) const - { - assert(impl.get()); - auto& itemMap=impl->reverseItemMap; - - pubTabs.clear(); - for (auto& pub: publicationTabs) - { - pubTabs.emplace_back(pub.name); - pubTabs.back().offsx=pub.x; - pubTabs.back().offsy=pub.y; - pubTabs.back().m_zoomFactor=pub.zoomFactor; - - for (auto& item: pub.items) - if (itemMap[item.item]) - { - pubTabs.back().items.emplace_back(itemMap[item.item]); - auto& newItem=pubTabs.back().items.back(); - newItem.x=item.x; - newItem.y=item.y; - newItem.zoomFactor=item.zoomFactor; - newItem.rotation=item.rotation; - } - } - if (pubTabs.empty()) pubTabs.emplace_back("Publication"); - } - void Minsky::populateMinsky(minsky::Minsky& m) const { minsky::LocalMinsky lm(m); @@ -514,7 +492,7 @@ namespace schema3 if (y.dimensions) x1->axisDimensions=*y.dimensions; - if (y.editorMode && *y.editorMode!=x1->editorMode) + if (y.editorMode && *y.editorMode!=x1->editorMode()) x1->toggleEditorMode(); } if (auto* x1=dynamic_cast(&x)) @@ -608,6 +586,32 @@ namespace schema3 LockGroupFactory(): shared_ptr(new minsky::RavelLockGroup) {} }; + void Minsky::populatePublicationTabs(std::vector& pubTabs) const + { + assert(impl.get()); + auto& itemMap=impl->reverseItemMap; + + // add in publication tab only items + MinskyItemFactory factory; + for (auto& i: publicationItems) + if (auto newItem=itemMap[i.id]=minsky::ItemPtr(factory.create(i.type))) + populateItem(*newItem,i); + + pubTabs.clear(); + for (auto& pub: publicationTabs) + { + pubTabs.emplace_back(pub.name); + pubTabs.back().offsx=pub.x; + pubTabs.back().offsy=pub.y; + pubTabs.back().m_zoomFactor=pub.zoomFactor; + + for (auto& item: pub.items) + if (itemMap.count(item.item)) + pubTabs.back().items.emplace_back(itemMap[item.item], item); + } + if (pubTabs.empty()) pubTabs.emplace_back("Publication"); + } + void Minsky::populateGroup(minsky::Group& g) const { assert(impl.get()); auto& itemMap=impl->reverseItemMap; diff --git a/schema/schema3.h b/schema/schema3.h index f5bd03c0c..eb6726a1f 100644 --- a/schema/schema3.h +++ b/schema/schema3.h @@ -233,23 +233,6 @@ namespace schema3 void populatePhillipsDiagram(minsky::PhillipsDiagram&) const; }; - struct PublicationItem - { - int item=-1; - float x=100,y=100; - float zoomFactor=1; - double rotation=0; - PublicationItem()=default; - PublicationItem(int id, const minsky::PubItem& p): item(id), x(p.x), y(p.y), zoomFactor(p.zoomFactor), rotation(p.rotation) {} - }; - - struct PublicationTab - { - std::string name; - std::vector items; - float x=100,y=100,zoomFactor=1; - }; - struct MinskyImpl; ///< working structure, not serialised class Minsky @@ -271,7 +254,7 @@ namespace schema3 minsky::ConversionsMap conversions; PhillipsDiagram phillipsDiagram; std::vector publicationTabs; - + std::vector publicationItems; Minsky(): schemaVersion(0) {makeImpl();} // schemaVersion defined on read in ~Minsky(); diff --git a/test/testModel.cc b/test/testModel.cc index d57bc1fba..1d8591422 100644 --- a/test/testModel.cc +++ b/test/testModel.cc @@ -108,7 +108,7 @@ SUITE(Group) TEST_FIXTURE(TestFixture, accessibleVars) { vector globalAccessibleVars{"c"}; - vector group0AccessibleVars{"1",":c","a","b"}; + vector group0AccessibleVars{":c","a","b","output1"}; group0->makeSubroutine(); CHECK_EQUAL(globalAccessibleVars.size(), model->accessibleVars().size()); CHECK_ARRAY_EQUAL(globalAccessibleVars, model->accessibleVars(), globalAccessibleVars.size());