--- /dev/null
+#include "DualGauge.h"
+
+#include "../graphics/Canvas.h"
+
+#include <algorithm>
+#include <cmath>
+
+
+namespace space {
+
+void DualGauge::Render(Canvas &canv, float val) const {
+ canv.SetColor(borderCol);
+ canv.OutlineRect(pos, size);
+
+ canv.SetColor(bgCol);
+ canv.FillRect(bgPos, bgSize);
+
+ if (val == 0) return;
+
+ Vector<int> vSize(valSize.x, valSize.y * std::abs(val));
+
+ if (val > 0) {
+ Vector<int> vPos(valPos.x, valPos.y - vSize.y);
+ canv.SetColor(posCol);
+ canv.FillRect(vPos, vSize);
+ } else {
+ canv.SetColor(negCol);
+ canv.FillRect(valPos, vSize);
+ }
+}
+
+}