43 0.26700401, 0.00487433, 0.32941519, 0.26851048, 0.00960483, 0.33542652,
44 0.26994384, 0.01462494, 0.34137895, 0.27130489, 0.01994186, 0.34726862,
45 0.27259384, 0.02556309, 0.35309303, 0.27380934, 0.03149748, 0.35885256,
46 0.27495242, 0.03775181, 0.36454323, 0.27602238, 0.04416723, 0.37016418,
47 0.2770184, 0.05034437, 0.37571452, 0.27794143, 0.05632444, 0.38119074,
48 0.27879067, 0.06214536, 0.38659204, 0.2795655, 0.06783587, 0.39191723,
49 0.28026658, 0.07341724, 0.39716349, 0.28089358, 0.07890703, 0.40232944,
50 0.28144581, 0.0843197, 0.40741404, 0.28192358, 0.08966622, 0.41241521,
51 0.28232739, 0.09495545, 0.41733086, 0.28265633, 0.10019576, 0.42216032,
52 0.28291049, 0.10539345, 0.42690202, 0.28309095, 0.11055307, 0.43155375,
53 0.28319704, 0.11567966, 0.43611482, 0.28322882, 0.12077701, 0.44058404,
54 0.28318684, 0.12584799, 0.44496, 0.283072, 0.13089477, 0.44924127,
55 0.28288389, 0.13592005, 0.45342734, 0.28262297, 0.14092556, 0.45751726,
56 0.28229037, 0.14591233, 0.46150995, 0.28188676, 0.15088147, 0.46540474,
57 0.28141228, 0.15583425, 0.46920128, 0.28086773, 0.16077132, 0.47289909,
58 0.28025468, 0.16569272, 0.47649762, 0.27957399, 0.17059884, 0.47999675,
59 0.27882618, 0.1754902, 0.48339654, 0.27801236, 0.18036684, 0.48669702,
60 0.27713437, 0.18522836, 0.48989831, 0.27619376, 0.19007447, 0.49300074,
61 0.27519116, 0.1949054, 0.49600488, 0.27412802, 0.19972086, 0.49891131,
62 0.27300596, 0.20452049, 0.50172076, 0.27182812, 0.20930306, 0.50443413,
63 0.27059473, 0.21406899, 0.50705243, 0.26930756, 0.21881782, 0.50957678,
64 0.26796846, 0.22354911, 0.5120084, 0.26657984, 0.2282621, 0.5143487,
65 0.2651445, 0.23295593, 0.5165993, 0.2636632, 0.23763078, 0.51876163,
66 0.26213801, 0.24228619, 0.52083736, 0.26057103, 0.2469217, 0.52282822,
67 0.25896451, 0.25153685, 0.52473609, 0.25732244, 0.2561304, 0.52656332,
68 0.25564519, 0.26070284, 0.52831152, 0.25393498, 0.26525384, 0.52998273,
69 0.25219404, 0.26978306, 0.53157905, 0.25042462, 0.27429024, 0.53310261,
70 0.24862899, 0.27877509, 0.53455561, 0.2468114, 0.28323662, 0.53594093,
71 0.24497208, 0.28767547, 0.53726018, 0.24311324, 0.29209154, 0.53851561,
72 0.24123708, 0.29648471, 0.53970946, 0.23934575, 0.30085494, 0.54084398,
73 0.23744138, 0.30520222, 0.5419214, 0.23552606, 0.30952657, 0.54294396,
74 0.23360277, 0.31382773, 0.54391424, 0.2316735, 0.3181058, 0.54483444,
75 0.22973926, 0.32236127, 0.54570633, 0.22780192, 0.32659432, 0.546532,
76 0.2258633, 0.33080515, 0.54731353, 0.22392515, 0.334994, 0.54805291,
77 0.22198915, 0.33916114, 0.54875211, 0.22005691, 0.34330688, 0.54941304,
78 0.21812995, 0.34743154, 0.55003755, 0.21620971, 0.35153548, 0.55062743,
79 0.21429757, 0.35561907, 0.5511844, 0.21239477, 0.35968273, 0.55171011,
80 0.2105031, 0.36372671, 0.55220646, 0.20862342, 0.36775151, 0.55267486,
81 0.20675628, 0.37175775, 0.55311653, 0.20490257, 0.37574589, 0.55353282,
82 0.20306309, 0.37971644, 0.55392505, 0.20123854, 0.38366989, 0.55429441,
83 0.1994295, 0.38760678, 0.55464205, 0.1976365, 0.39152762, 0.55496905,
84 0.19585993, 0.39543297, 0.55527637, 0.19410009, 0.39932336, 0.55556494,
85 0.19235719, 0.40319934, 0.55583559, 0.19063135, 0.40706148, 0.55608907,
86 0.18892259, 0.41091033, 0.55632606, 0.18723083, 0.41474645, 0.55654717,
87 0.18555593, 0.4185704, 0.55675292, 0.18389763, 0.42238275, 0.55694377,
88 0.18225561, 0.42618405, 0.5571201, 0.18062949, 0.42997486, 0.55728221,
89 0.17901879, 0.43375572, 0.55743035, 0.17742298, 0.4375272, 0.55756466,
90 0.17584148, 0.44128981, 0.55768526, 0.17427363, 0.4450441, 0.55779216,
91 0.17271876, 0.4487906, 0.55788532, 0.17117615, 0.4525298, 0.55796464,
92 0.16964573, 0.45626209, 0.55803034, 0.16812641, 0.45998802, 0.55808199,
93 0.1666171, 0.46370813, 0.55811913, 0.16511703, 0.4674229, 0.55814141,
94 0.16362543, 0.47113278, 0.55814842, 0.16214155, 0.47483821, 0.55813967,
95 0.16066467, 0.47853961, 0.55811466, 0.15919413, 0.4822374, 0.5580728,
96 0.15772933, 0.48593197, 0.55801347, 0.15626973, 0.4896237, 0.557936,
97 0.15481488, 0.49331293, 0.55783967, 0.15336445, 0.49700003, 0.55772371,
98 0.1519182, 0.50068529, 0.55758733, 0.15047605, 0.50436904, 0.55742968,
99 0.14903918, 0.50805136, 0.5572505, 0.14760731, 0.51173263, 0.55704861,
100 0.14618026, 0.51541316, 0.55682271, 0.14475863, 0.51909319, 0.55657181,
101 0.14334327, 0.52277292, 0.55629491, 0.14193527, 0.52645254, 0.55599097,
102 0.14053599, 0.53013219, 0.55565893, 0.13914708, 0.53381201, 0.55529773,
103 0.13777048, 0.53749213, 0.55490625, 0.1364085, 0.54117264, 0.55448339,
104 0.13506561, 0.54485335, 0.55402906, 0.13374299, 0.54853458, 0.55354108,
105 0.13244401, 0.55221637, 0.55301828, 0.13117249, 0.55589872, 0.55245948,
106 0.1299327, 0.55958162, 0.55186354, 0.12872938, 0.56326503, 0.55122927,
107 0.12756771, 0.56694891, 0.55055551, 0.12645338, 0.57063316, 0.5498411,
108 0.12539383, 0.57431754, 0.54908564, 0.12439474, 0.57800205, 0.5482874,
109 0.12346281, 0.58168661, 0.54744498, 0.12260562, 0.58537105, 0.54655722,
110 0.12183122, 0.58905521, 0.54562298, 0.12114807, 0.59273889, 0.54464114,
111 0.12056501, 0.59642187, 0.54361058, 0.12009154, 0.60010387, 0.54253043,
112 0.11973756, 0.60378459, 0.54139999, 0.11951163, 0.60746388, 0.54021751,
113 0.11942341, 0.61114146, 0.53898192, 0.11948255, 0.61481702, 0.53769219,
114 0.11969858, 0.61849025, 0.53634733, 0.12008079, 0.62216081, 0.53494633,
115 0.12063824, 0.62582833, 0.53348834, 0.12137972, 0.62949242, 0.53197275,
116 0.12231244, 0.63315277, 0.53039808, 0.12344358, 0.63680899, 0.52876343,
117 0.12477953, 0.64046069, 0.52706792, 0.12632581, 0.64410744, 0.52531069,
118 0.12808703, 0.64774881, 0.52349092, 0.13006688, 0.65138436, 0.52160791,
119 0.13226797, 0.65501363, 0.51966086, 0.13469183, 0.65863619, 0.5176488,
120 0.13733921, 0.66225157, 0.51557101, 0.14020991, 0.66585927, 0.5134268,
121 0.14330291, 0.66945881, 0.51121549, 0.1466164, 0.67304968, 0.50893644,
122 0.15014782, 0.67663139, 0.5065889, 0.15389405, 0.68020343, 0.50417217,
123 0.15785146, 0.68376525, 0.50168574, 0.16201598, 0.68731632, 0.49912906,
124 0.1663832, 0.69085611, 0.49650163, 0.1709484, 0.69438405, 0.49380294,
125 0.17570671, 0.6978996, 0.49103252, 0.18065314, 0.70140222, 0.48818938,
126 0.18578266, 0.70489133, 0.48527326, 0.19109018, 0.70836635, 0.48228395,
127 0.19657063, 0.71182668, 0.47922108, 0.20221902, 0.71527175, 0.47608431,
128 0.20803045, 0.71870095, 0.4728733, 0.21400015, 0.72211371, 0.46958774,
129 0.22012381, 0.72550945, 0.46622638, 0.2263969, 0.72888753, 0.46278934,
130 0.23281498, 0.73224735, 0.45927675, 0.2393739, 0.73558828, 0.45568838,
131 0.24606968, 0.73890972, 0.45202405, 0.25289851, 0.74221104, 0.44828355,
132 0.25985676, 0.74549162, 0.44446673, 0.26694127, 0.74875084, 0.44057284,
133 0.27414922, 0.75198807, 0.4366009, 0.28147681, 0.75520266, 0.43255207,
134 0.28892102, 0.75839399, 0.42842626, 0.29647899, 0.76156142, 0.42422341,
135 0.30414796, 0.76470433, 0.41994346, 0.31192534, 0.76782207, 0.41558638,
136 0.3198086, 0.77091403, 0.41115215, 0.3277958, 0.77397953, 0.40664011,
137 0.33588539, 0.7770179, 0.40204917, 0.34407411, 0.78002855, 0.39738103,
138 0.35235985, 0.78301086, 0.39263579, 0.36074053, 0.78596419, 0.38781353,
139 0.3692142, 0.78888793, 0.38291438, 0.37777892, 0.79178146, 0.3779385,
140 0.38643282, 0.79464415, 0.37288606, 0.39517408, 0.79747541, 0.36775726,
141 0.40400101, 0.80027461, 0.36255223, 0.4129135, 0.80304099, 0.35726893,
142 0.42190813, 0.80577412, 0.35191009, 0.43098317, 0.80847343, 0.34647607,
143 0.44013691, 0.81113836, 0.3409673, 0.44936763, 0.81376835, 0.33538426,
144 0.45867362, 0.81636288, 0.32972749, 0.46805314, 0.81892143, 0.32399761,
145 0.47750446, 0.82144351, 0.31819529, 0.4870258, 0.82392862, 0.31232133,
146 0.49661536, 0.82637633, 0.30637661, 0.5062713, 0.82878621, 0.30036211,
147 0.51599182, 0.83115784, 0.29427888, 0.52577622, 0.83349064, 0.2881265,
148 0.5356211, 0.83578452, 0.28190832, 0.5455244, 0.83803918, 0.27562602,
149 0.55548397, 0.84025437, 0.26928147, 0.5654976, 0.8424299, 0.26287683,
150 0.57556297, 0.84456561, 0.25641457, 0.58567772, 0.84666139, 0.24989748,
151 0.59583934, 0.84871722, 0.24332878, 0.60604528, 0.8507331, 0.23671214,
152 0.61629283, 0.85270912, 0.23005179, 0.62657923, 0.85464543, 0.22335258,
153 0.63690157, 0.85654226, 0.21662012, 0.64725685, 0.85839991, 0.20986086,
154 0.65764197, 0.86021878, 0.20308229, 0.66805369, 0.86199932, 0.19629307,
155 0.67848868, 0.86374211, 0.18950326, 0.68894351, 0.86544779, 0.18272455,
156 0.69941463, 0.86711711, 0.17597055, 0.70989842, 0.86875092, 0.16925712,
157 0.72039115, 0.87035015, 0.16260273, 0.73088902, 0.87191584, 0.15602894,
158 0.74138803, 0.87344918, 0.14956101, 0.75188414, 0.87495143, 0.14322828,
159 0.76237342, 0.87642392, 0.13706449, 0.77285183, 0.87786808, 0.13110864,
160 0.78331535, 0.87928545, 0.12540538, 0.79375994, 0.88067763, 0.12000532,
161 0.80418159, 0.88204632, 0.11496505, 0.81457634, 0.88339329, 0.11034678,
162 0.82494028, 0.88472036, 0.10621724, 0.83526959, 0.88602943, 0.1026459,
163 0.84556056, 0.88732243, 0.09970219, 0.8558096, 0.88860134, 0.09745186,
164 0.86601325, 0.88986815, 0.09595277, 0.87616824, 0.89112487, 0.09525046,
165 0.88627146, 0.89237353, 0.09537439, 0.89632002, 0.89361614, 0.09633538,
166 0.90631121, 0.89485467, 0.09812496, 0.91624212, 0.89609127, 0.1007168,
167 0.92610579, 0.89732977, 0.10407067, 0.93590444, 0.8985704, 0.10813094,
168 0.94563626, 0.899815, 0.11283773, 0.95529972, 0.90106534, 0.11812832,
169 0.96489353, 0.90232311, 0.12394051, 0.97441665, 0.90358991, 0.13021494,
170 0.98386829, 0.90486726, 0.13689671, 0.99324789, 0.90615657, 0.1439362};
180 {0, 32, 77, 0.0000000}, {0, 33, 78, 0.0039215},
181 {0, 34, 80, 0.0078430}, {0, 34, 82, 0.0117645},
182 {0, 35, 83, 0.0156865}, {0, 36, 85, 0.0196080},
183 {0, 37, 87, 0.0235295}, {0, 37, 88, 0.0274510},
184 {0, 38, 90, 0.0313725}, {0, 39, 92, 0.0352940},
185 {0, 39, 94, 0.0392155}, {0, 40, 96, 0.0431375},
186 {0, 41, 97, 0.0470590}, {0, 42, 99, 0.0509805},
187 {0, 42, 101, 0.0549020}, {0, 43, 103, 0.0588235},
188 {0, 44, 105, 0.0627450}, {0, 44, 106, 0.0666665},
189 {0, 45, 108, 0.0705880}, {0, 46, 110, 0.0745100},
190 {0, 46, 111, 0.0784315}, {0, 47, 111, 0.0823530},
191 {0, 47, 111, 0.0862745}, {0, 48, 111, 0.0901960},
192 {0, 48, 111, 0.0941175}, {0, 49, 111, 0.0980390},
193 {0, 50, 111, 0.1019610}, {0, 51, 111, 0.1058825},
194 {0, 51, 111, 0.1098040}, {0, 52, 111, 0.1137255},
195 {0, 53, 110, 0.1176470}, {1, 54, 110, 0.1215685},
196 {6, 54, 110, 0.1254900}, {11, 55, 110, 0.1294120},
197 {15, 56, 110, 0.1333335}, {18, 56, 109, 0.1372550},
198 {21, 57, 109, 0.1411765}, {24, 58, 109, 0.1450980},
199 {26, 59, 109, 0.1490195}, {29, 59, 109, 0.1529410},
200 {31, 60, 109, 0.1568625}, {33, 61, 109, 0.1607845},
201 {35, 62, 108, 0.1647060}, {36, 62, 108, 0.1686275},
202 {38, 63, 108, 0.1725490}, {40, 64, 108, 0.1764705},
203 {42, 64, 108, 0.1803920}, {43, 65, 108, 0.1843135},
204 {45, 66, 108, 0.1882355}, {46, 67, 108, 0.1921570},
205 {48, 67, 108, 0.1960785}, {49, 68, 107, 0.2000000},
206 {50, 69, 107, 0.2039215}, {52, 69, 107, 0.2078430},
207 {53, 70, 107, 0.2117645}, {54, 71, 107, 0.2156865},
208 {56, 72, 107, 0.2196080}, {57, 72, 107, 0.2235295},
209 {58, 73, 107, 0.2274510}, {59, 74, 107, 0.2313725},
210 {61, 74, 107, 0.2352940}, {62, 75, 107, 0.2392155},
211 {63, 76, 107, 0.2431375}, {64, 77, 107, 0.2470590},
212 {65, 77, 107, 0.2509805}, {66, 78, 107, 0.2549020},
213 {67, 79, 107, 0.2588235}, {68, 79, 107, 0.2627450},
214 {70, 80, 107, 0.2666665}, {71, 81, 107, 0.2705880},
215 {72, 82, 107, 0.2745100}, {73, 82, 107, 0.2784315},
216 {74, 83, 107, 0.2823530}, {75, 84, 108, 0.2862745},
217 {76, 84, 108, 0.2901960}, {77, 85, 108, 0.2941175},
218 {78, 86, 108, 0.2980390}, {79, 87, 108, 0.3019610},
219 {80, 87, 108, 0.3058825}, {81, 88, 108, 0.3098040},
220 {82, 89, 108, 0.3137255}, {83, 89, 108, 0.3176470},
221 {84, 90, 108, 0.3215685}, {85, 91, 109, 0.3254900},
222 {86, 92, 109, 0.3294120}, {87, 92, 109, 0.3333335},
223 {88, 93, 109, 0.3372550}, {89, 94, 109, 0.3411765},
224 {89, 95, 109, 0.3450980}, {90, 95, 109, 0.3490195},
225 {91, 96, 110, 0.3529410}, {92, 97, 110, 0.3568625},
226 {93, 97, 110, 0.3607845}, {94, 98, 110, 0.3647060},
227 {95, 99, 110, 0.3686275}, {96, 100, 111, 0.3725490},
228 {97, 100, 111, 0.3764705}, {98, 101, 111, 0.3803920},
229 {99, 102, 111, 0.3843135}, {100, 102, 111, 0.3882355},
230 {100, 103, 112, 0.3921570}, {101, 104, 112, 0.3960785},
231 {102, 105, 112, 0.4000000}, {103, 105, 112, 0.4039215},
232 {104, 106, 113, 0.4078430}, {105, 107, 113, 0.4117645},
233 {106, 108, 113, 0.4156865}, {107, 108, 113, 0.4196080},
234 {108, 109, 114, 0.4235295}, {108, 110, 114, 0.4274510},
235 {109, 110, 114, 0.4313725}, {110, 111, 115, 0.4352940},
236 {111, 112, 115, 0.4392155}, {112, 113, 115, 0.4431375},
237 {113, 113, 116, 0.4470590}, {114, 114, 116, 0.4509805},
238 {114, 115, 116, 0.4549020}, {115, 116, 117, 0.4588235},
239 {116, 116, 117, 0.4627450}, {117, 117, 117, 0.4666665},
240 {118, 118, 118, 0.4705880}, {119, 119, 118, 0.4745100},
241 {120, 119, 119, 0.4784315}, {120, 120, 119, 0.4823530},
242 {121, 121, 119, 0.4862745}, {122, 122, 120, 0.4901960},
243 {123, 122, 120, 0.4941175}, {124, 123, 120, 0.4980390},
244 {125, 124, 120, 0.5019610}, {126, 125, 120, 0.5058825},
245 {127, 125, 120, 0.5098040}, {128, 126, 121, 0.5137255},
246 {129, 127, 121, 0.5176470}, {130, 128, 121, 0.5215685},
247 {131, 128, 121, 0.5254900}, {132, 129, 121, 0.5294120},
248 {132, 130, 121, 0.5333335}, {133, 131, 121, 0.5372550},
249 {134, 131, 121, 0.5411765}, {135, 132, 121, 0.5450980},
250 {136, 133, 121, 0.5490195}, {137, 134, 121, 0.5529410},
251 {138, 135, 121, 0.5568625}, {139, 135, 121, 0.5607845},
252 {140, 136, 121, 0.5647060}, {141, 137, 121, 0.5686275},
253 {142, 138, 121, 0.5725490}, {143, 138, 121, 0.5764705},
254 {144, 139, 121, 0.5803920}, {145, 140, 120, 0.5843135},
255 {146, 141, 120, 0.5882355}, {147, 142, 120, 0.5921570},
256 {148, 142, 120, 0.5960785}, {149, 143, 120, 0.6000000},
257 {150, 144, 120, 0.6039215}, {151, 145, 120, 0.6078430},
258 {152, 146, 120, 0.6117645}, {153, 146, 120, 0.6156865},
259 {154, 147, 119, 0.6196080}, {155, 148, 119, 0.6235295},
260 {156, 149, 119, 0.6274510}, {157, 150, 119, 0.6313725},
261 {158, 150, 119, 0.6352940}, {159, 151, 119, 0.6392155},
262 {160, 152, 119, 0.6431375}, {161, 153, 118, 0.6470590},
263 {162, 154, 118, 0.6509805}, {163, 154, 118, 0.6549020},
264 {164, 155, 118, 0.6588235}, {165, 156, 118, 0.6627450},
265 {166, 157, 117, 0.6666665}, {168, 158, 117, 0.6705880},
266 {169, 159, 117, 0.6745100}, {170, 159, 117, 0.6784315},
267 {171, 160, 116, 0.6823530}, {172, 161, 116, 0.6862745},
268 {173, 162, 116, 0.6901960}, {174, 163, 116, 0.6941175},
269 {175, 164, 115, 0.6980390}, {176, 164, 115, 0.7019610},
270 {177, 165, 115, 0.7058825}, {178, 166, 114, 0.7098040},
271 {179, 167, 114, 0.7137255}, {180, 168, 114, 0.7176470},
272 {181, 169, 113, 0.7215685}, {182, 169, 113, 0.7254900},
273 {183, 170, 113, 0.7294120}, {184, 171, 112, 0.7333335},
274 {185, 172, 112, 0.7372550}, {186, 173, 112, 0.7411765},
275 {187, 174, 111, 0.7450980}, {188, 175, 111, 0.7490195},
276 {190, 175, 111, 0.7529410}, {191, 176, 110, 0.7568625},
277 {192, 177, 110, 0.7607845}, {193, 178, 109, 0.7647060},
278 {194, 179, 109, 0.7686275}, {195, 180, 109, 0.7725490},
279 {196, 181, 108, 0.7764705}, {197, 181, 108, 0.7803920},
280 {198, 182, 107, 0.7843135}, {199, 183, 107, 0.7882355},
281 {200, 184, 106, 0.7921570}, {201, 185, 106, 0.7960785},
282 {203, 186, 105, 0.8000000}, {204, 187, 105, 0.8039215},
283 {205, 188, 104, 0.8078430}, {206, 188, 104, 0.8117645},
284 {207, 189, 103, 0.8156865}, {208, 190, 103, 0.8196080},
285 {209, 191, 102, 0.8235295}, {210, 192, 102, 0.8274510},
286 {211, 193, 101, 0.8313725}, {212, 194, 100, 0.8352940},
287 {214, 195, 100, 0.8392155}, {215, 196, 99, 0.8431375},
288 {216, 197, 99, 0.8470590}, {217, 197, 98, 0.8509805},
289 {218, 198, 97, 0.8549020}, {219, 199, 97, 0.8588235},
290 {220, 200, 96, 0.8627450}, {221, 201, 95, 0.8666665},
291 {222, 202, 95, 0.8705880}, {224, 203, 94, 0.8745100},
292 {225, 204, 93, 0.8784315}, {226, 205, 92, 0.8823530},
293 {227, 206, 92, 0.8862745}, {228, 207, 91, 0.8901960},
294 {229, 208, 90, 0.8941175}, {230, 209, 89, 0.8980390},
295 {232, 210, 89, 0.9019610}, {233, 211, 88, 0.9058825},
296 {234, 211, 87, 0.9098040}, {235, 212, 86, 0.9137255},
297 {236, 213, 85, 0.9176470}, {237, 214, 84, 0.9215685},
298 {239, 215, 83, 0.9254900}, {240, 216, 82, 0.9294120},
299 {241, 217, 81, 0.9333335}, {242, 218, 80, 0.9372550},
300 {243, 219, 79, 0.9411765}, {244, 220, 78, 0.9450980},
301 {246, 221, 77, 0.9490195}, {247, 222, 76, 0.9529410},
302 {248, 223, 75, 0.9568625}, {249, 224, 74, 0.9607845},
303 {250, 225, 73, 0.9647060}, {251, 226, 72, 0.9686275},
304 {253, 227, 70, 0.9725490}, {254, 228, 69, 0.9764705},
305 {255, 229, 68, 0.9803920}, {255, 230, 66, 0.9843135},
306 {255, 231, 66, 0.9882355}, {255, 232, 67, 0.9921570},
307 {255, 233, 68, 0.9960785}, {255, 234, 70, 1.0000000}};
351 QStringList scales = settings.childGroups();
352 CVLog::Print(QString(
"[ccColorScalesManager] Found %1 custom scale(s) in "
353 "persistent settings")
354 .arg(scales.size()));
357 for (
int j = 0; j < scales.size(); ++j) {
358 settings.beginGroup(scales[j]);
365 double minVal = settings.value(
c_csm_minVal, 0.0).toDouble();
366 double maxVal = settings.value(
c_csm_maxVal, 1.0).toDouble();
367 scale->setAbsolute(minVal, maxVal);
374 for (
int i = 0; i <
size; ++i) {
375 settings.setArrayIndex(i);
379 QRgb
rgb =
static_cast<QRgb
>(
381 QColor
color = QColor::fromRgb(
rgb);
391 for (
int i = 0; i <
size; ++i) {
392 settings.setArrayIndex(i);
398 scale->customLabels().insert({label, text});
402 }
catch (
const std::bad_alloc&) {
404 "scale '%1' (not enough memory)")
405 .arg(scale->getName()));
430 if (!(*it)->isLocked())
432 settings.beginGroup((*it)->getUuid());
436 if (!(*it)->isRelative()) {
439 (*it)->getAbsoluteBoundaries(minVal, maxVal);
446 for (
int i = 0; i < (*it)->stepCount(); ++i) {
447 settings.setArrayIndex(i);
449 (*it)->step(i).getRelativePos());
450 int rgb =
static_cast<int>((*it)->step(i).getColor().rgb());
459 for (ccColorScale::LabelSet::const_iterator itL =
460 (*it)->customLabels().begin();
461 itL != (*it)->customLabels().end(); ++itL, ++i) {
462 settings.setArrayIndex(i);
464 if (!itL->text.isEmpty()) {
483 if (!scale || scale->getUuid().isEmpty()) {
485 "[ccColorScalesManager::addScale] Invalid scale/UUID!"));
490 m_scales.insert(scale->getUuid(), scale);
494 ScalesMap::const_iterator it =
m_scales.constFind(UUID);
496 if ((*it)->isLocked()) {
498 "remove a locked scale (%1)!")
507 const QString
name = [scaleType]() {
510 return QStringLiteral(
"Blue>Green>Yellow>Red");
512 return QStringLiteral(
"Grey");
514 return QStringLiteral(
"Blue>White>Red");
516 return QStringLiteral(
"Red>Yellow");
518 return QStringLiteral(
"Red>White");
520 return QStringLiteral(
"Intensity [0-1]");
522 return QStringLiteral(
"HSV angle [0-360]");
524 return QStringLiteral(
"Vertex types default colors");
526 return QStringLiteral(
"Dip [0-90]");
528 return QStringLiteral(
"Dip direction (repeat) [0-360]");
530 return QStringLiteral(
"Viridis");
532 return QStringLiteral(
"Brown>Yellow");
534 return QStringLiteral(
"Yellow>Brown");
536 return QStringLiteral(
"Topo landserf");
538 return QStringLiteral(
"High contrast");
540 return QStringLiteral(
"Cividis");
549 CVLog::Error(QStringLiteral(
"Unhandled pre-defined scale (%1)")
584 scale->setAbsolute(0.0, 1.0);
585 scale->customLabels().insert(0);
586 scale->customLabels().insert(0.5);
587 scale->customLabels().insert(1.0);
598 scale->setAbsolute(0.0, 360.0);
599 scale->customLabels().insert(0);
600 scale->customLabels().insert(60);
601 scale->customLabels().insert(120);
602 scale->customLabels().insert(180);
603 scale->customLabels().insert(240);
604 scale->customLabels().insert(300);
617 scale->customLabels().insert(0);
618 scale->customLabels().insert(0.5);
619 scale->customLabels().insert(1.0);
627 scale->setAbsolute(0, 90.0);
628 scale->customLabels().insert(0);
629 scale->customLabels().insert(30);
630 scale->customLabels().insert(60);
631 scale->customLabels().insert(90);
660 scale->setAbsolute(0, 360.0);
661 scale->customLabels().insert(0);
662 scale->customLabels().insert(90);
663 scale->customLabels().insert(180);
664 scale->customLabels().insert(270);
668 for (
int i = 0; i < 256; ++i, _viridis += 3) {
669 int r =
static_cast<int>(_viridis[0] * 255);
670 int g =
static_cast<int>(_viridis[1] * 255);
671 int b =
static_cast<int>(_viridis[2] * 255);
714 for (
unsigned i = 0; i < 256; ++i) {
730 scale->setLocked(
true);
static bool Warning(const char *format,...)
Prints out a formatted warning message in console.
static bool Print(const char *format,...)
Prints out a formatted message in console.
static bool Error(const char *format,...)
Display an error dialog with formatted message.
Color scale element: one value + one color.
QSharedPointer< ccColorScale > Shared
Shared pointer type.
Color scales manager/container.
ccColorScale::Shared getScale(QString UUID) const
Returns a color scale based on its UUID.
void addScale(ccColorScale::Shared scale)
Adds a new color scale.
static ccColorScale::Shared Create(DEFAULT_SCALES scaleType)
Creates a pre-defined color scale.
DEFAULT_SCALES
Pre-defined color scales (all relative - i.e. expand to actual SF)
void removeScale(QString UUID)
Removes a color scale.
void toPersistentSettings() const
Save custom color scales to persistent settings.
static void ReleaseUniqueInstance()
Releases unique instance.
ccColorScalesManager()
Default constructor.
virtual ~ccColorScalesManager()
Destructor.
static ccColorScalesManager * GetUniqueInstance()
Returns unique instance.
void fromPersistentSettings()
Loads custom color scales from persistent settings.
ScalesMap m_scales
Color scales.
static const char c_csm_stepsList[]
static const char c_csm_customLabelValue[]
static const char c_csm_scaleName[]
static const ColorStep s_cividis[]
static ecvSingleton< ccColorScalesManager > s_uniqueInstance
static const char c_csm_customLabelText[]
static const char c_csm_maxVal[]
static const char c_csm_groupName[]
static const char c_csm_stepRelativePos[]
static const char c_csm_relative[]
static const double s_viridis[]
static const char c_csm_customLabels[]
static const char c_csm_minVal[]
static const char c_csm_stepColor[]
constexpr Rgb cyan(0, MAX, MAX)
constexpr Rgb black(0, 0, 0)
constexpr Rgb magenta(MAX, 0, MAX)
constexpr Rgb white(MAX, MAX, MAX)
constexpr Rgb red(MAX, 0, 0)
constexpr Rgb blue(0, 0, MAX)
constexpr Rgb green(0, MAX, 0)
constexpr Rgb yellow(MAX, MAX, 0)
Generic singleton encapsulation structure.