1 | /* |
2 | * SPDX-FileCopyrightText: 2007-2009 Petri Damstén <damu@iki.fi> |
3 | * SPDX-FileCopyrightText: 2014 John Layt <jlayt@kde.org> |
4 | * |
5 | * SPDX-License-Identifier: LGPL-2.0-or-later |
6 | */ |
7 | |
8 | #ifndef KUNITCONVERSION_UNIT_H |
9 | #define KUNITCONVERSION_UNIT_H |
10 | |
11 | #include "kunitconversion/kunitconversion_export.h" |
12 | |
13 | #include <QExplicitlySharedDataPointer> |
14 | #include <QString> |
15 | |
16 | /*! |
17 | * \namespace KUnitConversion |
18 | * \inmodule KUnitConversion |
19 | */ |
20 | namespace KUnitConversion |
21 | { |
22 | /*! |
23 | * \enum KUnitConversion::CategoryId |
24 | * \value InvalidCategory |
25 | * \value LengthCategory |
26 | * \value AreaCategory |
27 | * \value VolumeCategory |
28 | * \value TemperatureCategory |
29 | * \value VelocityCategory |
30 | * \value MassCategory |
31 | * \value PressureCategory |
32 | * \value EnergyCategory |
33 | * \value CurrencyCategory |
34 | * \value PowerCategory |
35 | * \value TimeCategory |
36 | * \value FuelEfficiencyCategory |
37 | * \value DensityCategory |
38 | * \value WeightPerAreaCategory |
39 | * \value AccelerationCategory |
40 | * \value AngleCategory |
41 | * \value FrequencyCategory |
42 | * \value ForceCategory |
43 | * \value [since 5.27] ThermalConductivityCategory |
44 | * \value [since 5.27] ThermalFluxCategory |
45 | * \value [since 5.27] ThermalGenerationCategory |
46 | * \value [since 5.27] VoltageCategory |
47 | * \value [since 5.27] ElectricalCurrentCategory |
48 | * \value [since 5.27] ElectricalResistanceCategory |
49 | * \value [since 5.53] PermeabilityCategory |
50 | * \value [since 5.61] BinaryDataCategory |
51 | */ |
52 | enum CategoryId { |
53 | InvalidCategory = -1, |
54 | LengthCategory, |
55 | AreaCategory, |
56 | VolumeCategory, |
57 | TemperatureCategory, |
58 | VelocityCategory, |
59 | MassCategory, |
60 | PressureCategory, |
61 | EnergyCategory, |
62 | CurrencyCategory, |
63 | PowerCategory, |
64 | TimeCategory, |
65 | FuelEfficiencyCategory, |
66 | DensityCategory, |
67 | WeightPerAreaCategory, |
68 | AccelerationCategory, |
69 | AngleCategory, |
70 | FrequencyCategory, |
71 | ForceCategory, |
72 | ThermalConductivityCategory, |
73 | ThermalFluxCategory, |
74 | ThermalGenerationCategory, |
75 | VoltageCategory, |
76 | ElectricalCurrentCategory, |
77 | ElectricalResistanceCategory, |
78 | PermeabilityCategory, |
79 | BinaryDataCategory |
80 | }; |
81 | |
82 | /*! |
83 | * \enum KUnitConversion::UnitId |
84 | * \value InvalidUnit |
85 | * \value NoUnit |
86 | * \value Percent |
87 | * |
88 | * \value SquareYottameter |
89 | * \value SquareZettameter |
90 | * \value SquareExameter |
91 | * \value SquarePetameter |
92 | * \value SquareTerameter |
93 | * \value SquareGigameter |
94 | * \value SquareMegameter |
95 | * \value SquareKilometer |
96 | * \value SquareHectometer |
97 | * \value SquareDecameter |
98 | * \value SquareMeter |
99 | * \value SquareDecimeter |
100 | * \value SquareCentimeter |
101 | * \value SquareMillimeter |
102 | * \value SquareMicrometer |
103 | * \value SquareNanometer |
104 | * \value SquarePicometer |
105 | * \value SquareFemtometer |
106 | * \value SquareAttometer |
107 | * \value SquareZeptometer |
108 | * \value SquareYoctometer |
109 | * \value Acre |
110 | * \value SquareFoot |
111 | * \value SquareInch |
112 | * \value SquareMile |
113 | * |
114 | * \value Yottameter |
115 | * \value Zettameter |
116 | * \value Exameter |
117 | * \value Petameter |
118 | * \value Terameter |
119 | * \value Gigameter |
120 | * \value Megameter |
121 | * \value Kilometer |
122 | * \value Hectometer |
123 | * \value Decameter |
124 | * \value Meter |
125 | * \value Decimeter |
126 | * \value Centimeter |
127 | * \value Millimeter |
128 | * \value Micrometer |
129 | * \value Nanometer |
130 | * \value Picometer |
131 | * \value Femtometer |
132 | * \value Attometer |
133 | * \value Zeptometer |
134 | * \value Yoctometer |
135 | * \value Inch |
136 | * \value Foot |
137 | * \value Yard |
138 | * \value Mile |
139 | * \value NauticalMile |
140 | * \value LightYear |
141 | * \value Parsec |
142 | * \value AstronomicalUnit |
143 | * \value Thou |
144 | * \value Angstrom |
145 | * \value RackUnit |
146 | * \value Link |
147 | * \value Chain |
148 | * \value Furlong |
149 | * \value Fathom |
150 | * \value RodPerchPole |
151 | * |
152 | * \value CubicYottameter |
153 | * \value CubicZettameter |
154 | * \value CubicExameter |
155 | * \value CubicPetameter |
156 | * \value CubicTerameter |
157 | * \value CubicGigameter |
158 | * \value CubicMegameter |
159 | * \value CubicKilometer |
160 | * \value CubicHectometer |
161 | * \value CubicDecameter |
162 | * \value CubicMeter |
163 | * \value CubicDecimeter |
164 | * \value CubicCentimeter |
165 | * \value CubicMillimeter |
166 | * \value CubicMicrometer |
167 | * \value CubicNanometer |
168 | * \value CubicPicometer |
169 | * \value CubicFemtometer |
170 | * \value CubicAttometer |
171 | * \value CubicZeptometer |
172 | * \value CubicYoctometer |
173 | * \value Yottaliter |
174 | * \value Zettaliter |
175 | * \value Exaliter |
176 | * \value Petaliter |
177 | * \value Teraliter |
178 | * \value Gigaliter |
179 | * \value Megaliter |
180 | * \value Kiloliter |
181 | * \value Hectoliter |
182 | * \value Decaliter |
183 | * \value Liter |
184 | * \value Deciliter |
185 | * \value Centiliter |
186 | * \value Milliliter |
187 | * \value Microliter |
188 | * \value Nanoliter |
189 | * \value Picoliter |
190 | * \value Femtoliter |
191 | * \value Attoliter |
192 | * \value Zeptoliter |
193 | * \value Yoctoliter |
194 | * \value CubicFoot |
195 | * \value CubicInch |
196 | * \value CubicMile |
197 | * \value FluidOunce |
198 | * \value Cup |
199 | * \value Teaspoon |
200 | * \value Tablespoon |
201 | * \value GallonUS |
202 | * \value PintImperial |
203 | * \value [since 5.53] OilBarrel |
204 | * \value [since 5.70] GallonImperial |
205 | * \value [since 5.70] PintUS |
206 | * |
207 | * \value Yottagram |
208 | * \value Zettagram |
209 | * \value Exagram |
210 | * \value Petagram |
211 | * \value Teragram |
212 | * \value Gigagram |
213 | * \value Megagram |
214 | * \value Kilogram |
215 | * \value Hectogram |
216 | * \value Decagram |
217 | * \value Gram |
218 | * \value Decigram |
219 | * \value Centigram |
220 | * \value Milligram |
221 | * \value Microgram |
222 | * \value Nanogram |
223 | * \value Picogram |
224 | * \value Femtogram |
225 | * \value Attogram |
226 | * \value Zeptogram |
227 | * \value Yoctogram |
228 | * \value Ton |
229 | * \value Carat |
230 | * \value Pound |
231 | * \value Ounce |
232 | * \value TroyOunce |
233 | * \value MassNewton |
234 | * \value Kilonewton |
235 | * |
236 | * \value [since 5.26] Stone |
237 | * |
238 | * \value Yottapascal |
239 | * \value Zettapascal |
240 | * \value Exapascal |
241 | * \value Petapascal |
242 | * \value Terapascal |
243 | * \value Gigapascal |
244 | * \value Megapascal |
245 | * \value Kilopascal |
246 | * \value Hectopascal |
247 | * \value Decapascal |
248 | * \value Pascal |
249 | * \value Decipascal |
250 | * \value Centipascal |
251 | * \value Millipascal |
252 | * \value Micropascal |
253 | * \value Nanopascal |
254 | * \value Picopascal |
255 | * \value Femtopascal |
256 | * \value Attopascal |
257 | * \value Zeptopascal |
258 | * \value Yoctopascal |
259 | * \value Bar |
260 | * \value Millibar |
261 | * \value Decibar |
262 | * \value Torr |
263 | * \value TechnicalAtmosphere |
264 | * \value Atmosphere |
265 | * \value PoundForcePerSquareInch |
266 | * \value InchesOfMercury |
267 | * \value MillimetersOfMercury |
268 | * |
269 | * \value Kelvin |
270 | * \value Celsius |
271 | * \value Fahrenheit |
272 | * \value Rankine |
273 | * \value Delisle |
274 | * \value TemperatureNewton |
275 | * \value Reaumur |
276 | * \value Romer |
277 | * |
278 | * \value Yottajoule |
279 | * \value Zettajoule |
280 | * \value Exajoule |
281 | * \value Petajoule |
282 | * \value Terajoule |
283 | * \value Gigajoule |
284 | * \value Megajoule |
285 | * \value Kilojoule |
286 | * \value Hectojoule |
287 | * \value Decajoule |
288 | * \value Joule |
289 | * \value Decijoule |
290 | * \value Centijoule |
291 | * \value Millijoule |
292 | * \value Microjoule |
293 | * \value Nanojoule |
294 | * \value Picojoule |
295 | * \value Femtojoule |
296 | * \value Attojoule |
297 | * \value Zeptojoule |
298 | * \value Yoctojoule |
299 | * \value GuidelineDailyAmount |
300 | * \value Electronvolt |
301 | * \value Rydberg |
302 | * \value Kilocalorie |
303 | * \value PhotonWavelength |
304 | * \value KiloJoulePerMole |
305 | * \value JoulePerMole |
306 | * \value [since 5.27] Btu |
307 | * \value [since 5.27] Erg |
308 | * |
309 | * \value Eur |
310 | * \value Ats |
311 | * \value Bef |
312 | * \value Nlg |
313 | * \value Fim |
314 | * \value Frf |
315 | * \value Dem |
316 | * \value Iep |
317 | * \value Itl |
318 | * \value Luf |
319 | * \value Pte |
320 | * \value Esp |
321 | * \value Grd |
322 | * \value Sit |
323 | * \value Cyp |
324 | * \value Mtl |
325 | * \value Skk |
326 | * \value Usd |
327 | * \value Jpy |
328 | * \value Bgn |
329 | * \value Czk |
330 | * \value Dkk |
331 | * \value Eek |
332 | * \value Gbp |
333 | * \value Huf |
334 | * \value Ltl |
335 | * \value Lvl |
336 | * \value Pln |
337 | * \value Ron |
338 | * \value Sek |
339 | * \value Chf |
340 | * \value Nok |
341 | * \value Hrk |
342 | * \value Rub |
343 | * \value Try |
344 | * \value Aud |
345 | * \value Brl |
346 | * \value Cad |
347 | * \value Cny |
348 | * \value Hkd |
349 | * \value Idr |
350 | * \value Inr |
351 | * \value Krw |
352 | * \value Mxn |
353 | * \value Myr |
354 | * \value Nzd |
355 | * \value Php |
356 | * \value Sgd |
357 | * \value Thb |
358 | * \value Zar |
359 | * \value Ils |
360 | * \value Isk |
361 | * |
362 | * \value MeterPerSecond |
363 | * \value KilometerPerHour |
364 | * \value MilePerHour |
365 | * \value FootPerSecond |
366 | * \value InchPerSecond |
367 | * \value Knot |
368 | * \value Mach |
369 | * \value SpeedOfLight |
370 | * \value Beaufort |
371 | * |
372 | * \value Yottawatt |
373 | * \value Zettawatt |
374 | * \value Exawatt |
375 | * \value Petawatt |
376 | * \value Terawatt |
377 | * \value Gigawatt |
378 | * \value Megawatt |
379 | * \value Kilowatt |
380 | * \value Hectowatt |
381 | * \value Decawatt |
382 | * \value Watt |
383 | * \value Deciwatt |
384 | * \value Centiwatt |
385 | * \value Milliwatt |
386 | * \value Microwatt |
387 | * \value Nanowatt |
388 | * \value Picowatt |
389 | * \value Femtowatt |
390 | * \value Attowatt |
391 | * \value Zeptowatt |
392 | * \value Yoctowatt |
393 | * \value Horsepower |
394 | * \value [since 5.62] DecibelKilowatt |
395 | * \value [since 5.62] DecibelWatt |
396 | * \value [since 5.62] DecibelMilliwatt |
397 | * \value [since 5.62] DecibelMicrowatt |
398 | * |
399 | * \value Yottasecond |
400 | * \value Zettasecond |
401 | * \value Exasecond |
402 | * \value Petasecond |
403 | * \value Terasecond |
404 | * \value Gigasecond |
405 | * \value Megasecond |
406 | * \value Kilosecond |
407 | * \value Hectosecond |
408 | * \value Decasecond |
409 | * \value Second |
410 | * \value Decisecond |
411 | * \value Centisecond |
412 | * \value Millisecond |
413 | * \value Microsecond |
414 | * \value Nanosecond |
415 | * \value Picosecond |
416 | * \value Femtosecond |
417 | * \value Attosecond |
418 | * \value Zeptosecond |
419 | * \value Yoctosecond |
420 | * \value Minute |
421 | * \value Hour |
422 | * \value Day |
423 | * \value Week |
424 | * \value JulianYear |
425 | * \value LeapYear |
426 | * \value Year |
427 | * |
428 | * \value LitersPer100Kilometers |
429 | * \value MilePerUsGallon |
430 | * \value MilePerImperialGallon |
431 | * \value KilometrePerLitre |
432 | * |
433 | * \value YottakilogramsPerCubicMeter |
434 | * \value ZettakilogramPerCubicMeter |
435 | * \value ExakilogramPerCubicMeter |
436 | * \value PetakilogramPerCubicMeter |
437 | * \value TerakilogramPerCubicMeter |
438 | * \value GigakilogramPerCubicMeter |
439 | * \value MegakilogramPerCubicMeter |
440 | * \value KilokilogramPerCubicMeter |
441 | * \value HectokilogramsPerCubicMeter |
442 | * \value DecakilogramsPerCubicMeter |
443 | * \value KilogramsPerCubicMeter |
444 | * \value DecikilogramsPerCubicMeter |
445 | * \value CentikilogramsPerCubicMeter |
446 | * \value MillikilogramsPerCubicMeter |
447 | * \value MicrokilogramsPerCubicMeter |
448 | * \value NanokilogramsPerCubicMeter |
449 | * \value PicokilogramsPerCubicMeter |
450 | * \value FemtokilogramsPerCubicMeter |
451 | * \value AttokilogramsPerCubicMeter |
452 | * \value ZeptokilogramsPerCubicMeter |
453 | * \value YoctokilogramsPerCubicMeter |
454 | * \value KilogramPerLiter |
455 | * \value GramPerLiter |
456 | * \value GramPerMilliliter |
457 | * \value OuncePerCubicInch |
458 | * \value OuncePerCubicFoot |
459 | * \value OuncePerCubicYard |
460 | * \value PoundPerCubicInch |
461 | * \value PoundPerCubicFoot |
462 | * \value PoundPerCubicYard |
463 | * |
464 | * \value GramsPerSquareMeter |
465 | * \value OuncesPerSquareYard |
466 | * |
467 | * \value MetresPerSecondSquared |
468 | * \value FeetPerSecondSquared |
469 | * \value StandardGravity |
470 | * |
471 | * \value Yottanewton |
472 | * \value Zettanewton |
473 | * \value Exanewton |
474 | * \value Petanewton |
475 | * \value Teranewton |
476 | * \value Giganewton |
477 | * \value Meganewton |
478 | * \value KilonewtonForce |
479 | * \value Hectonewton |
480 | * \value Decanewton |
481 | * \value Newton |
482 | * \value Decinewton |
483 | * \value Centinewton |
484 | * \value Millinewton |
485 | * \value Micronewton |
486 | * \value Nanonewton |
487 | * \value Piconewton |
488 | * \value Femtonewton |
489 | * \value Attonewton |
490 | * \value Zeptonewton |
491 | * \value Yoctonewton |
492 | * \value Dyne |
493 | * \value Kilopond |
494 | * \value PoundForce |
495 | * \value Poundal |
496 | * |
497 | * \value Degree |
498 | * \value Radian |
499 | * \value Gradian |
500 | * \value ArcMinute |
501 | * \value ArcSecond |
502 | * |
503 | * \value Yottahertz |
504 | * \value Zettahertz |
505 | * \value Exahertz |
506 | * \value Petahertz |
507 | * \value Terahertz |
508 | * \value Gigahertz |
509 | * \value Megahertz |
510 | * \value Kilohertz |
511 | * \value Hectohertz |
512 | * \value Decahertz |
513 | * \value Hertz |
514 | * \value Decihertz |
515 | * \value Centihertz |
516 | * \value Millihertz |
517 | * \value Microhertz |
518 | * \value Nanohertz |
519 | * \value Picohertz |
520 | * \value Femtohertz |
521 | * \value Attohertz |
522 | * \value Zeptohertz |
523 | * \value Yoctohertz |
524 | * \value RPM |
525 | * |
526 | * \value [since 5.27] WattPerMeterKelvin |
527 | * \value [since 5.27] BtuPerFootHourFahrenheit |
528 | * \value [since 5.27] BtuPerSquareFootHourFahrenheitPerInch |
529 | * |
530 | * \value [since 5.27] WattPerSquareMeter |
531 | * \value [since 5.27] BtuPerHourPerSquareFoot |
532 | * |
533 | * \value [since 5.27] WattPerCubicMeter |
534 | * \value [since 5.27] BtuPerHourPerCubicFoot |
535 | * |
536 | * \value [since 5.27] Yottavolts |
537 | * \value [since 5.27] Zettavolts |
538 | * \value [since 5.27] Exavolts |
539 | * \value [since 5.27] Petavolts |
540 | * \value [since 5.27] Teravolts |
541 | * \value [since 5.27] Gigavolts |
542 | * \value [since 5.27] Megavolts |
543 | * \value [since 5.27] Kilovolts |
544 | * \value [since 5.27] Hectovolts |
545 | * \value [since 5.27] Decavolts |
546 | * \value [since 5.27] Volts |
547 | * \value [since 5.27] Decivolts |
548 | * \value [since 5.27] Centivolts |
549 | * \value [since 5.27] Millivolts |
550 | * \value [since 5.27] Microvolts |
551 | * \value [since 5.27] Nanovolts |
552 | * \value [since 5.27] Picovolts |
553 | * \value [since 5.27] Femtovolts |
554 | * \value [since 5.27] Attovolts |
555 | * \value [since 5.27] Zeptovolts |
556 | * \value [since 5.27] Yoctovolts |
557 | * \value [since 5.27] Statvolts |
558 | * \value [since 5.27] Yottaampere |
559 | * \value [since 5.27] Zettaampere |
560 | * \value [since 5.27] Exaampere |
561 | * \value [since 5.27] Petaampere |
562 | * \value [since 5.27] Teraampere |
563 | * \value [since 5.27] Gigaampere |
564 | * \value [since 5.27] Megaampere |
565 | * \value [since 5.27] Kiloampere |
566 | * \value [since 5.27] Hectoampere |
567 | * \value [since 5.27] Decaampere |
568 | * \value [since 5.27] Ampere |
569 | * \value [since 5.27] Deciampere |
570 | * \value [since 5.27] Centiampere |
571 | * \value [since 5.27] Milliampere |
572 | * \value [since 5.27] Microampere |
573 | * \value [since 5.27] Nanoampere |
574 | * \value [since 5.27] Picoampere |
575 | * \value [since 5.27] Femtoampere |
576 | * \value [since 5.27] Attoampere |
577 | * \value [since 5.27] Zeptoampere |
578 | * \value [since 5.27] Yoctoampere |
579 | * \value [since 5.27] Yottaohms |
580 | * \value [since 5.27] Zettaohms |
581 | * \value [since 5.27] Exaohms |
582 | * \value [since 5.27] Petaohms |
583 | * \value [since 5.27] Teraohms |
584 | * \value [since 5.27] Gigaohms |
585 | * \value [since 5.27] Megaohms |
586 | * \value [since 5.27] Kiloohms |
587 | * \value [since 5.27] Hectoohms |
588 | * \value [since 5.27] Decaohms |
589 | * \value [since 5.27] Ohms |
590 | * \value [since 5.27] Deciohms |
591 | * \value [since 5.27] Centiohms |
592 | * \value [since 5.27] Milliohms |
593 | * \value [since 5.27] Microohms |
594 | * \value [since 5.27] Nanoohms |
595 | * \value [since 5.27] Picoohms |
596 | * \value [since 5.27] Femtoohms |
597 | * \value [since 5.27] Attoohms |
598 | * \value [since 5.27] Zeptoohms |
599 | * \value [since 5.27] Yoctoohms |
600 | * |
601 | * \value [since 5.53] Darcy |
602 | * \value [since 5.53] MiliDarcy |
603 | * \value [since 5.53] PermeabilitySquareMicrometer |
604 | * |
605 | * \value [since 5.61] Yobibyte |
606 | * \value [since 5.61] Yobibit |
607 | * \value [since 5.61] Yottabyte |
608 | * \value [since 5.61] Yottabit |
609 | * \value [since 5.61] Zebibyte |
610 | * \value [since 5.61] Zebibit |
611 | * \value [since 5.61] Zettabyte |
612 | * \value [since 5.61] Zettabit |
613 | * \value [since 5.61] Exbibyte |
614 | * \value [since 5.61] Exbibit |
615 | * \value [since 5.61] Exabyte |
616 | * \value [since 5.61] Exabit |
617 | * \value [since 5.61] Pebibyte |
618 | * \value [since 5.61] Pebibit |
619 | * \value [since 5.61] Petabyte |
620 | * \value [since 5.61] Petabit |
621 | * \value [since 5.61] Tebibyte |
622 | * \value [since 5.61] Tebibit |
623 | * \value [since 5.61] Terabyte |
624 | * \value [since 5.61] Terabit |
625 | * \value [since 5.61] Gibibyte |
626 | * \value [since 5.61] Gibibit |
627 | * \value [since 5.61] Gigabyte |
628 | * \value [since 5.61] Gigabit |
629 | * \value [since 5.61] Mebibyte |
630 | * \value [since 5.61] Mebibit |
631 | * \value [since 5.61] Megabyte |
632 | * \value [since 5.61] Megabit |
633 | * \value [since 5.61] Kibibyte |
634 | * \value [since 5.61] Kibibit |
635 | * \value [since 5.61] Kilobyte |
636 | * \value [since 5.61] Kilobit |
637 | * \value [since 5.61] Byte |
638 | * \value [since 5.61] Bit |
639 | */ |
640 | enum UnitId { |
641 | InvalidUnit = -1, |
642 | NoUnit = 0, |
643 | Percent = 1, |
644 | |
645 | // Area |
646 | SquareYottameter = 1000, |
647 | SquareZettameter, |
648 | SquareExameter, |
649 | SquarePetameter, |
650 | SquareTerameter, |
651 | SquareGigameter, |
652 | SquareMegameter, |
653 | SquareKilometer, |
654 | SquareHectometer, |
655 | SquareDecameter, |
656 | SquareMeter, |
657 | SquareDecimeter, |
658 | SquareCentimeter, |
659 | SquareMillimeter, |
660 | SquareMicrometer, |
661 | SquareNanometer, |
662 | SquarePicometer, |
663 | SquareFemtometer, |
664 | SquareAttometer, |
665 | SquareZeptometer, |
666 | SquareYoctometer, |
667 | Acre, |
668 | , |
669 | SquareInch, |
670 | SquareMile, |
671 | |
672 | // Length |
673 | Yottameter = 2000, |
674 | Zettameter, |
675 | Exameter, |
676 | Petameter, |
677 | Terameter, |
678 | Gigameter, |
679 | Megameter, |
680 | Kilometer, |
681 | Hectometer, |
682 | Decameter, |
683 | Meter, |
684 | Decimeter, |
685 | Centimeter, |
686 | Millimeter, |
687 | Micrometer, |
688 | Nanometer, |
689 | Picometer, |
690 | Femtometer, |
691 | Attometer, |
692 | Zeptometer, |
693 | Yoctometer, |
694 | Inch, |
695 | , |
696 | Yard, |
697 | Mile, |
698 | NauticalMile, |
699 | LightYear, |
700 | Parsec, |
701 | AstronomicalUnit, |
702 | Thou, |
703 | Angstrom, |
704 | RackUnit, |
705 | Link, |
706 | Chain, |
707 | Furlong, |
708 | Fathom, |
709 | RodPerchPole, |
710 | |
711 | // Volume |
712 | CubicYottameter = 3000, |
713 | CubicZettameter, |
714 | CubicExameter, |
715 | CubicPetameter, |
716 | CubicTerameter, |
717 | CubicGigameter, |
718 | CubicMegameter, |
719 | CubicKilometer, |
720 | CubicHectometer, |
721 | CubicDecameter, |
722 | CubicMeter, |
723 | CubicDecimeter, |
724 | CubicCentimeter, |
725 | CubicMillimeter, |
726 | CubicMicrometer, |
727 | CubicNanometer, |
728 | CubicPicometer, |
729 | CubicFemtometer, |
730 | CubicAttometer, |
731 | CubicZeptometer, |
732 | CubicYoctometer, |
733 | Yottaliter, |
734 | Zettaliter, |
735 | Exaliter, |
736 | Petaliter, |
737 | Teraliter, |
738 | Gigaliter, |
739 | Megaliter, |
740 | Kiloliter, |
741 | Hectoliter, |
742 | Decaliter, |
743 | Liter, |
744 | Deciliter, |
745 | Centiliter, |
746 | Milliliter, |
747 | Microliter, |
748 | Nanoliter, |
749 | Picoliter, |
750 | Femtoliter, |
751 | Attoliter, |
752 | Zeptoliter, |
753 | Yoctoliter, |
754 | , |
755 | CubicInch, |
756 | CubicMile, |
757 | FluidOunce, |
758 | Cup, |
759 | Teaspoon, |
760 | Tablespoon, |
761 | GallonUS, |
762 | PintImperial, |
763 | OilBarrel, |
764 | GallonImperial, |
765 | PintUS, |
766 | |
767 | // Mass |
768 | Yottagram = 4000, |
769 | Zettagram, |
770 | Exagram, |
771 | Petagram, |
772 | Teragram, |
773 | Gigagram, |
774 | Megagram, |
775 | Kilogram, |
776 | Hectogram, |
777 | Decagram, |
778 | Gram, |
779 | Decigram, |
780 | Centigram, |
781 | Milligram, |
782 | Microgram, |
783 | Nanogram, |
784 | Picogram, |
785 | Femtogram, |
786 | Attogram, |
787 | Zeptogram, |
788 | Yoctogram, |
789 | Ton, |
790 | Carat, |
791 | Pound, |
792 | Ounce, |
793 | TroyOunce, |
794 | MassNewton, |
795 | Kilonewton, |
796 | |
797 | Stone, |
798 | |
799 | // Pressure |
800 | Yottapascal = 5000, |
801 | Zettapascal, |
802 | Exapascal, |
803 | Petapascal, |
804 | Terapascal, |
805 | Gigapascal, |
806 | Megapascal, |
807 | Kilopascal, |
808 | Hectopascal, |
809 | Decapascal, |
810 | Pascal, |
811 | Decipascal, |
812 | Centipascal, |
813 | Millipascal, |
814 | Micropascal, |
815 | Nanopascal, |
816 | Picopascal, |
817 | Femtopascal, |
818 | Attopascal, |
819 | Zeptopascal, |
820 | Yoctopascal, |
821 | Bar, |
822 | Millibar, |
823 | Decibar, |
824 | Torr, |
825 | TechnicalAtmosphere, |
826 | Atmosphere, |
827 | PoundForcePerSquareInch, |
828 | InchesOfMercury, |
829 | MillimetersOfMercury, |
830 | |
831 | // Temperature |
832 | Kelvin = 6000, |
833 | Celsius, |
834 | Fahrenheit, |
835 | Rankine, |
836 | Delisle, |
837 | TemperatureNewton, |
838 | Reaumur, |
839 | Romer, |
840 | |
841 | // Energy |
842 | Yottajoule = 7000, |
843 | Zettajoule, |
844 | Exajoule, |
845 | Petajoule, |
846 | Terajoule, |
847 | Gigajoule, |
848 | Megajoule, |
849 | Kilojoule, |
850 | Hectojoule, |
851 | Decajoule, |
852 | Joule, |
853 | Decijoule, |
854 | Centijoule, |
855 | Millijoule, |
856 | Microjoule, |
857 | Nanojoule, |
858 | Picojoule, |
859 | Femtojoule, |
860 | Attojoule, |
861 | Zeptojoule, |
862 | Yoctojoule, |
863 | GuidelineDailyAmount, |
864 | Electronvolt, |
865 | Rydberg, |
866 | Kilocalorie, |
867 | PhotonWavelength, |
868 | KiloJoulePerMole, |
869 | JoulePerMole, |
870 | Btu, |
871 | Erg, |
872 | |
873 | // Currency |
874 | Eur = 8000, |
875 | Ats, |
876 | Bef, |
877 | Nlg, |
878 | Fim, |
879 | Frf, |
880 | Dem, |
881 | Iep, |
882 | Itl, |
883 | Luf, |
884 | Pte, |
885 | Esp, |
886 | Grd, |
887 | Sit, |
888 | Cyp, |
889 | Mtl, |
890 | Skk, |
891 | Usd, |
892 | Jpy, |
893 | Bgn, |
894 | Czk, |
895 | Dkk, |
896 | Eek, |
897 | Gbp, |
898 | Huf, |
899 | Ltl, |
900 | Lvl, |
901 | Pln, |
902 | Ron, |
903 | Sek, |
904 | Chf, |
905 | Nok, |
906 | Hrk, |
907 | Rub, |
908 | Try, |
909 | Aud, |
910 | Brl, |
911 | Cad, |
912 | Cny, |
913 | Hkd, |
914 | Idr, |
915 | Inr, |
916 | Krw, |
917 | Mxn, |
918 | Myr, |
919 | Nzd, |
920 | Php, |
921 | Sgd, |
922 | Thb, |
923 | Zar, |
924 | Ils, |
925 | Isk, |
926 | Xpf, /// @since 6.9 |
927 | |
928 | // Velocity |
929 | MeterPerSecond = 9000, |
930 | KilometerPerHour, |
931 | MilePerHour, |
932 | , |
933 | InchPerSecond, |
934 | Knot, |
935 | Mach, |
936 | SpeedOfLight, |
937 | Beaufort, |
938 | |
939 | // Power |
940 | Yottawatt = 10000, |
941 | Zettawatt, |
942 | Exawatt, |
943 | Petawatt, |
944 | Terawatt, |
945 | Gigawatt, |
946 | Megawatt, |
947 | Kilowatt, |
948 | Hectowatt, |
949 | Decawatt, |
950 | Watt, |
951 | Deciwatt, |
952 | Centiwatt, |
953 | Milliwatt, |
954 | Microwatt, |
955 | Nanowatt, |
956 | Picowatt, |
957 | Femtowatt, |
958 | Attowatt, |
959 | Zeptowatt, |
960 | Yoctowatt, |
961 | Horsepower, |
962 | DecibelKilowatt, |
963 | DecibelWatt, |
964 | DecibelMilliwatt, |
965 | DecibelMicrowatt, |
966 | |
967 | // Time |
968 | Yottasecond = 11000, |
969 | Zettasecond, |
970 | Exasecond, |
971 | Petasecond, |
972 | Terasecond, |
973 | Gigasecond, |
974 | Megasecond, |
975 | Kilosecond, |
976 | Hectosecond, |
977 | Decasecond, |
978 | Second, |
979 | Decisecond, |
980 | Centisecond, |
981 | Millisecond, |
982 | Microsecond, |
983 | Nanosecond, |
984 | Picosecond, |
985 | Femtosecond, |
986 | Attosecond, |
987 | Zeptosecond, |
988 | Yoctosecond, |
989 | Minute, |
990 | Hour, |
991 | Day, |
992 | Week, |
993 | JulianYear, |
994 | LeapYear, |
995 | Year, |
996 | |
997 | // FuelEfficiency |
998 | LitersPer100Kilometers = 12000, |
999 | MilePerUsGallon, |
1000 | MilePerImperialGallon, |
1001 | KilometrePerLitre, |
1002 | |
1003 | // Density |
1004 | YottakilogramsPerCubicMeter = 13000, |
1005 | ZettakilogramPerCubicMeter, |
1006 | ExakilogramPerCubicMeter, |
1007 | PetakilogramPerCubicMeter, |
1008 | TerakilogramPerCubicMeter, |
1009 | GigakilogramPerCubicMeter, |
1010 | MegakilogramPerCubicMeter, |
1011 | KilokilogramPerCubicMeter, |
1012 | HectokilogramsPerCubicMeter, |
1013 | DecakilogramsPerCubicMeter, |
1014 | KilogramsPerCubicMeter, |
1015 | DecikilogramsPerCubicMeter, |
1016 | CentikilogramsPerCubicMeter, |
1017 | MillikilogramsPerCubicMeter, |
1018 | MicrokilogramsPerCubicMeter, |
1019 | NanokilogramsPerCubicMeter, |
1020 | PicokilogramsPerCubicMeter, |
1021 | FemtokilogramsPerCubicMeter, |
1022 | AttokilogramsPerCubicMeter, |
1023 | ZeptokilogramsPerCubicMeter, |
1024 | YoctokilogramsPerCubicMeter, |
1025 | KilogramPerLiter, |
1026 | GramPerLiter, |
1027 | GramPerMilliliter, |
1028 | OuncePerCubicInch, |
1029 | , |
1030 | OuncePerCubicYard, |
1031 | PoundPerCubicInch, |
1032 | , |
1033 | PoundPerCubicYard, |
1034 | |
1035 | // Weight per area |
1036 | GramsPerSquareMeter, |
1037 | OuncesPerSquareYard, |
1038 | |
1039 | // Acceleration |
1040 | MetresPerSecondSquared = 14000, |
1041 | FeetPerSecondSquared, |
1042 | StandardGravity, |
1043 | |
1044 | // Force |
1045 | Yottanewton = 15000, |
1046 | Zettanewton, |
1047 | Exanewton, |
1048 | Petanewton, |
1049 | Teranewton, |
1050 | Giganewton, |
1051 | Meganewton, |
1052 | KilonewtonForce, |
1053 | Hectonewton, |
1054 | Decanewton, |
1055 | Newton, |
1056 | Decinewton, |
1057 | Centinewton, |
1058 | Millinewton, |
1059 | Micronewton, |
1060 | Nanonewton, |
1061 | Piconewton, |
1062 | Femtonewton, |
1063 | Attonewton, |
1064 | Zeptonewton, |
1065 | Yoctonewton, |
1066 | Dyne, |
1067 | Kilopond, |
1068 | PoundForce, |
1069 | Poundal, |
1070 | |
1071 | // Angle |
1072 | Degree = 16000, |
1073 | Radian, |
1074 | Gradian, |
1075 | ArcMinute, |
1076 | ArcSecond, |
1077 | |
1078 | // Frequency |
1079 | Yottahertz = 17000, |
1080 | Zettahertz, |
1081 | Exahertz, |
1082 | Petahertz, |
1083 | Terahertz, |
1084 | Gigahertz, |
1085 | Megahertz, |
1086 | Kilohertz, |
1087 | Hectohertz, |
1088 | Decahertz, |
1089 | Hertz, |
1090 | Decihertz, |
1091 | Centihertz, |
1092 | Millihertz, |
1093 | Microhertz, |
1094 | Nanohertz, |
1095 | Picohertz, |
1096 | Femtohertz, |
1097 | Attohertz, |
1098 | Zeptohertz, |
1099 | Yoctohertz, |
1100 | RPM, |
1101 | |
1102 | // Thermal Conductivity |
1103 | WattPerMeterKelvin = 18000, |
1104 | , |
1105 | , |
1106 | |
1107 | // Thermal Flux Density |
1108 | WattPerSquareMeter = 19000, |
1109 | , |
1110 | |
1111 | // Thermal Generation per volume |
1112 | WattPerCubicMeter = 20000, |
1113 | , |
1114 | |
1115 | // Voltage |
1116 | Yottavolts = 30000, |
1117 | Zettavolts, |
1118 | Exavolts, |
1119 | Petavolts, |
1120 | Teravolts, |
1121 | Gigavolts, |
1122 | Megavolts, |
1123 | Kilovolts, |
1124 | Hectovolts, |
1125 | Decavolts, |
1126 | Volts, |
1127 | Decivolts, |
1128 | Centivolts, |
1129 | Millivolts, |
1130 | Microvolts, |
1131 | Nanovolts, |
1132 | Picovolts, |
1133 | Femtovolts, |
1134 | Attovolts, |
1135 | Zeptovolts, |
1136 | Yoctovolts, |
1137 | Statvolts, |
1138 | |
1139 | // Electrical Current |
1140 | Yottaampere = 31000, |
1141 | Zettaampere, |
1142 | Exaampere, |
1143 | Petaampere, |
1144 | Teraampere, |
1145 | Gigaampere, |
1146 | Megaampere, |
1147 | Kiloampere, |
1148 | Hectoampere, |
1149 | Decaampere, |
1150 | Ampere, |
1151 | Deciampere, |
1152 | Centiampere, |
1153 | Milliampere, |
1154 | Microampere, |
1155 | Nanoampere, |
1156 | Picoampere, |
1157 | Femtoampere, |
1158 | Attoampere, |
1159 | Zeptoampere, |
1160 | Yoctoampere, |
1161 | |
1162 | // Electrical Resistance |
1163 | Yottaohms = 32000, |
1164 | Zettaohms, |
1165 | Exaohms, |
1166 | Petaohms, |
1167 | Teraohms, |
1168 | Gigaohms, |
1169 | Megaohms, |
1170 | Kiloohms, |
1171 | Hectoohms, |
1172 | Decaohms, |
1173 | Ohms, |
1174 | Deciohms, |
1175 | Centiohms, |
1176 | Milliohms, |
1177 | Microohms, |
1178 | Nanoohms, |
1179 | Picoohms, |
1180 | Femtoohms, |
1181 | Attoohms, |
1182 | Zeptoohms, |
1183 | Yoctoohms, |
1184 | |
1185 | Darcy = 33000, |
1186 | MiliDarcy, |
1187 | PermeabilitySquareMicrometer, |
1188 | |
1189 | Yobibyte = 34000, |
1190 | Yobibit, |
1191 | Yottabyte, |
1192 | Yottabit, |
1193 | Zebibyte, |
1194 | Zebibit, |
1195 | Zettabyte, |
1196 | Zettabit, |
1197 | Exbibyte, |
1198 | Exbibit, |
1199 | Exabyte, |
1200 | Exabit, |
1201 | Pebibyte, |
1202 | Pebibit, |
1203 | Petabyte, |
1204 | Petabit, |
1205 | Tebibyte, |
1206 | Tebibit, |
1207 | Terabyte, |
1208 | Terabit, |
1209 | Gibibyte, |
1210 | Gibibit, |
1211 | Gigabyte, |
1212 | Gigabit, |
1213 | Mebibyte, |
1214 | Mebibit, |
1215 | Megabyte, |
1216 | Megabit, |
1217 | Kibibyte, |
1218 | Kibibit, |
1219 | Kilobyte, |
1220 | Kilobit, |
1221 | Byte, |
1222 | Bit |
1223 | }; |
1224 | |
1225 | class UnitCategory; |
1226 | class UnitPrivate; |
1227 | |
1228 | /*! |
1229 | * \class KUnitConversion::Unit |
1230 | * \inmodule KUnitConversion |
1231 | * |
1232 | * \brief Class to define a unit of measurement. |
1233 | * |
1234 | * This is a class to define a unit of measurement. |
1235 | * |
1236 | * \sa Converter, UnitCategory, Value |
1237 | * |
1238 | */ |
1239 | |
1240 | class KUNITCONVERSION_EXPORT Unit |
1241 | { |
1242 | public: |
1243 | /*! |
1244 | * Null constructor |
1245 | **/ |
1246 | Unit(); |
1247 | |
1248 | Unit(const Unit &other); |
1249 | |
1250 | ~Unit(); |
1251 | |
1252 | Unit &operator=(const Unit &other); |
1253 | |
1254 | Unit &operator=(Unit &&other); |
1255 | |
1256 | /*! |
1257 | * Returns true if this Unit is equal to the \a other Unit. |
1258 | **/ |
1259 | bool operator==(const Unit &other) const; |
1260 | |
1261 | bool operator!=(const Unit &other) const; |
1262 | |
1263 | /*! |
1264 | * Returns returns true if this Unit is null |
1265 | **/ |
1266 | bool isNull() const; |
1267 | |
1268 | /*! |
1269 | * Returns if unit is valid. |
1270 | **/ |
1271 | bool isValid() const; |
1272 | |
1273 | /*! |
1274 | * Returns unit id. |
1275 | **/ |
1276 | UnitId id() const; |
1277 | |
1278 | /*! |
1279 | * Returns category id. |
1280 | **/ |
1281 | CategoryId categoryId() const; |
1282 | |
1283 | /*! |
1284 | * Returns unit category. |
1285 | **/ |
1286 | UnitCategory category() const; |
1287 | |
1288 | /*! |
1289 | * Returns translated name for unit. |
1290 | **/ |
1291 | QString description() const; |
1292 | |
1293 | /*! |
1294 | * Returns symbol for the unit. |
1295 | **/ |
1296 | QString symbol() const; |
1297 | |
1298 | /*! |
1299 | * \a value number value |
1300 | * |
1301 | * \a fieldWidth width of the formatted field, padded by spaces. |
1302 | * Positive value aligns right, negative aligns left |
1303 | * |
1304 | * \a format type of floating point formatting, like in \l QString::arg |
1305 | * |
1306 | * \a precision number of digits after the decimal separator |
1307 | * |
1308 | * \a fillChar the character used to fill up the empty places when |
1309 | * field width is greater than argument width |
1310 | * |
1311 | * Returns value + unit string |
1312 | **/ |
1313 | QString toString(qreal value, int fieldWidth = 0, char format = 'g', int precision = -1, const QChar &fillChar = QLatin1Char(' ')) const; |
1314 | |
1315 | /*! |
1316 | * \a value number value |
1317 | * |
1318 | * \a fieldWidth width of the formatted field, padded by spaces. |
1319 | * Positive value aligns right, negative aligns left |
1320 | * |
1321 | * \a format type of floating point formatting, like in \l QString::arg |
1322 | * |
1323 | * \a precision number of digits after the decimal separator |
1324 | * |
1325 | * \a fillChar the character used to fill up the empty places when |
1326 | * field width is greater than argument width |
1327 | * |
1328 | * Returns value + unit string |
1329 | **/ |
1330 | QString toSymbolString(qreal value, int fieldWidth = 0, char format = 'g', int precision = -1, const QChar &fillChar = QLatin1Char(' ')) const; |
1331 | |
1332 | protected: |
1333 | qreal toDefault(qreal value) const; |
1334 | qreal fromDefault(qreal value) const; |
1335 | |
1336 | private: |
1337 | friend class UnitPrivate; |
1338 | friend class UnitCategory; |
1339 | friend class UnitCategoryPrivate; |
1340 | friend class CurrencyCategoryPrivate; |
1341 | |
1342 | KUNITCONVERSION_NO_EXPORT explicit Unit(UnitPrivate *dd); |
1343 | |
1344 | KUNITCONVERSION_NO_EXPORT void setUnitMultiplier(qreal multiplier); |
1345 | |
1346 | QExplicitlySharedDataPointer<UnitPrivate> d; |
1347 | }; |
1348 | |
1349 | } // KUnitConversion namespace |
1350 | |
1351 | Q_DECLARE_TYPEINFO(KUnitConversion::Unit, Q_RELOCATABLE_TYPE); |
1352 | |
1353 | #endif |
1354 | |