Commit Graph

25 Commits

Author SHA1 Message Date
Mathew Sutcliffe
f219d290f1 refs #345 Third and final wave of value classes using the CValueObjectStdTuple CRTP class template, with policy classes. 2014-11-10 20:45:18 +00:00
Klaus Basan
3fb5087ea8 Renaming, header, Doxygen, formatting (during refs #314) 2014-08-24 02:45:52 +02:00
Klaus Basan
a9f0359666 Tweaks
* formatting
* default digits for PQs
* improved toQString in altitude / aircraft situation / coordinate
2014-07-04 22:56:52 +02:00
Mathew Sutcliffe
a4e3ac6f40 refs #197 fixing (hopefully) comparison between null quantities
and related rationalization of PQ comparison.
2014-04-17 00:32:41 +02:00
Mathew Sutcliffe
8b1ef4345d refs #126 null unit infrastructure, a sentinel to mark an uninitialized or unused physical quantity 2014-03-26 13:20:53 +00:00
Mathew Sutcliffe
db4c05dd9f refs #84 removed the CValueObject::compare method and added a friend function BlackMisc::compare to replace it.
The new compare is implemented using "multimethods" described in the book Advanced C++ Programming Styles and Idioms by James Coplien.

First, the isA method is used to determine which of the values being compared is the most general. (For example, CLength is more general than CAltitude.)
Then the compareImpl method is called on the most general value, with the other value as an argument.
If there is not a direct inheritance relation between the two values (or they are the same class) then the comparison is invalid and a assert is triggered.
2014-01-17 01:38:27 +00:00
Klaus Basan
f247399575 register CMeasurementUnit as a Qt meta type
refs #81
2014-01-08 00:59:24 +00:00
Klaus Basan
978f3c88e5 style changes and removals of typeid
refs #81
2014-01-08 00:57:43 +00:00
Mathew Sutcliffe
e12d7fbd7a Had a bit of spare time so tried out the policy design pattern I've been learning about, applying it to PQ converters.
Some interesting results:
* Minor simplification of PQ converters and unit ctors; may not seem like much, but I think it enables possible future simplifications of a similar kind.
* CMeasurementPrefix is gone, no longer needed. Now prefixes are applied at the template stage.
* Apart from that, PQs public API is unchanged.
* Discovered that ft/s^2 conversion factor was wrong: fixed.
2013-09-15 22:01:11 +01:00
Mathew Sutcliffe
669af6b691 give prefixed units their own names and symbols instead of concatenating prefix and base unit 2013-08-22 19:44:19 +01:00
Mathew Sutcliffe
3cb9a783d2 just something I missed earlier - no need to use qint32 here 2013-08-19 18:18:30 +01:00
Mathew Sutcliffe
21ca361bc1 removed operator= and copy ctor from classes where they only duplicated the behaviour of the default implementations that C++ generates automatically 2013-08-19 03:21:12 +01:00
Mathew Sutcliffe
da8ba9aac3 First major wave of PQ refactoring, including but not limited to:
* Default unit is more clearly stated in one place, not restated in many different places, and is not always the SI unit
* Converter strategy pattern in CMeasurementUnit, covering linear, affine, and different kinds of sexagesimal units
* General reorganization of CMeasurementUnit construction and CPhysicalQuantity methods, not removing any behvaiour
* Move duplicated method unitFromSymbol from derived classes into base class CMeasurementUnit
* For DBus, CPhysicalQuantity marshals both in its own unit and in the default unit
2013-08-19 03:05:08 +01:00
Mathew Sutcliffe
2c781e8b36 style fixes: mostly just things that make my eyes bleed :) 2013-08-13 22:29:48 +01:00
Klaus Basan
a53ea0c5fd DBus: track, heading, transponder. Added I18N for track/heading, added further I18N keys. Of course not all I18N strings are translated yet. 2013-07-28 03:20:04 +02:00
Klaus Basan
40a97c3d82 Added I18N for PQs, initial version. Hence resource file and language files. Changed samplesphysicalquantities to check some I18N topics. 2013-07-27 20:23:23 +02:00
Klaus Basan
c6426a0759 Move Math constants into class (to be consistent with other constants), tested against minGW / gcc 4.7.2 and fixed various issues (mainly initializer lists, unused variables). BlackMisc compiles now in MinGW, but still issues (especially with qDebug() friend methods) 2013-04-29 16:00:41 +02:00
Klaus Basan
472521f281 Further details on classes like epsilon compare, further unit tests. 2013-04-24 01:59:17 +02:00
Klaus Basan
5f678dfe28 String-ifier for streams as preparation for the GeoClasses 2013-04-12 19:21:50 +02:00
Klaus Basan
42712a2baf Fixed Doxygen comments 2013-04-11 00:28:35 +02:00
Klaus Basan
9a87731944 Avionics classes for Transponder, ADF, changed namespace to 2ndlevel 2013-04-09 02:00:38 +02:00
Klaus Basan
eb102372f1 Individual (per object) conversion as well as per unit (class) now possible, this is required for sexagesimal conversion (degrees) and will be required for geo-positions. Further classed for avionics. 2013-04-05 02:29:52 +02:00
Klaus Basan
943872ff67 Changed order of samples directory, started with aviation classes. 2013-04-01 21:53:35 +02:00
Klaus Basan
f77258343d CAngleUnit::sexagesimalDeg(), moved conversion to virtual method in CMeasurmenetUnit, made string conversion virtual and also moved it to CMeasurmenetUnit (=>individual formatters). Time unit added. 2013-03-31 00:35:25 +01:00
Klaus Basan
525910c7a3 Moved PQs from blackcore to blackmisc, added header for namespace, mainpage.dox for Doxygen 2013-03-22 16:07:53 +01:00