Commit Graph

19 Commits

Author SHA1 Message Date
Roland Winklmeier
00356bbef6 Linear interpolator implementation
refs #169
2014-03-30 13:46:10 +02:00
Klaus Basan
e2461cb67c refs #192, Doxygen / formatting 2014-03-26 20:18:46 +01:00
Mathew Sutcliffe
35e0c3e085 refs #91 & #124 using override and \copydoc throughout blackmisc 2014-02-17 16:37:04 +00:00
Mathew Sutcliffe
a23c9e3f07 Normalizing argument types of CEarthAngle comparison and arithmetic operators:
argument type should be same type as the this pointer.
2014-01-17 01:38:29 +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
Mathew Sutcliffe
e40c93fe1b Removed CEarthAngle::toAngle, because implicit conversion already works.
Applied a different workaround to resolve the hiding of an inherited name in CEarthAngle, same as was done in CAltitude.
refs #84
2014-01-17 01:29:03 +00:00
Klaus Basan
a280d239e6 using hashes to perform comparisons between blackmisc value objects stored inside of QVariant
refs #81
2014-01-08 00:59:00 +00:00
Klaus Basan
978f3c88e5 style changes and removals of typeid
refs #81
2014-01-08 00:57:43 +00:00
Mathew Sutcliffe
7117545fd6 Operator function templates, using std::enable_if to match only classes
derived from CStreamable, for streaming to/from QtDBusArgument, avoiding
the unrelated operator function template for streaming Container<T>
defined by Qt, by being a better match in overload resolution.
2013-08-26 21:15:59 +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
a6f89ce9ea renamed CBaseStreamStringifier to CStreamable 2013-08-19 03:05:09 +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
62591a750f Refactoring, renamed: convertToQString (old: stringForConvert) 2013-07-28 03:31:04 +02:00
Klaus Basan
581638ec7f Enabled coordinate classes for DBus, added generation method for lat/lng by WGS84 strings 2013-07-25 23:58:09 +02:00
Klaus Basan
7316980a5c Enabled coordinates for DBus 2013-07-25 12:37:51 +02:00
Klaus Basan
f4affe55ef Had to withdraw 3Vector3D, since they store values internally as float (idiotic design). Hence qreal will be dropped. Started with Unit tests. 2013-04-20 17:46:46 +02:00
Klaus Basan
8121babe77 Initial structure for refactoring, some conversions still missing. Especially required further test cases. 2013-04-19 00:19:41 +02:00
Klaus Basan
5bf308c54b Initial refactoring of vector and matrix classes 2013-04-18 01:04:21 +02:00