summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorMatthew Petroff <matthew@mpetroff.net>2013-08-28 02:53:31 +0000
committerMatthew Petroff <matthew@mpetroff.net>2013-08-28 02:53:31 +0000
commitbdb32f3606bca79275b0aafce4a2c722de88fd5d (patch)
treef6afabd844b01b70cee4622dcc192846c998de8e /src/util
parentUse enum names instead of numbers. (diff)
downloadinkscape-bdb32f3606bca79275b0aafce4a2c722de88fd5d.tar.gz
inkscape-bdb32f3606bca79275b0aafce4a2c722de88fd5d.zip
Added Quantity comparison functions.
(bzr r12475.1.7)
Diffstat (limited to 'src/util')
-rw-r--r--src/util/units.cpp21
-rw-r--r--src/util/units.h5
2 files changed, 26 insertions, 0 deletions
diff --git a/src/util/units.cpp b/src/util/units.cpp
index 8bae9c419..2b09337b6 100644
--- a/src/util/units.cpp
+++ b/src/util/units.cpp
@@ -450,6 +450,27 @@ double Quantity::convert(const double from_dist, const Glib::ustring from, const
return convert(from_dist, unit_table.getUnit(from), unit_table.getUnit(to));
}
+bool operator< (const Quantity &ql, const Quantity &qr)
+{
+ if (ql.unit->type != qr.unit->type) {
+ g_warning("Incompatible units");
+ return false;
+ }
+ return ql.quantity < qr.value(*ql.unit);
+}
+bool operator> (const Quantity &ql, const Quantity &qr)
+{
+ if (ql.unit->type != qr.unit->type) {
+ g_warning("Incompatible units");
+ return false;
+ }
+ return ql.quantity > qr.value(*ql.unit);
+}
+bool operator!= (const Quantity &q1, const Quantity &q2)
+{
+ return (*q1.unit != *q2.unit) || (q1.quantity != q2.quantity);
+}
+
} // namespace Util
} // namespace Inkscape
diff --git a/src/util/units.h b/src/util/units.h
index ececc8aa1..44333fae2 100644
--- a/src/util/units.h
+++ b/src/util/units.h
@@ -113,6 +113,11 @@ public:
static double convert(const double from_dist, const Glib::ustring from, const Unit &to);
static double convert(const double from_dist, const Unit &from, const Glib::ustring to);
static double convert(const double from_dist, const Glib::ustring from, const Glib::ustring to);
+
+ /** Comparison operators. */
+ friend bool operator< (const Quantity &ql, const Quantity &qr);
+ friend bool operator> (const Quantity &ql, const Quantity &qr);
+ friend bool operator!= (const Quantity &q1, const Quantity &q2);
};
class UnitTable {