From 86bd033fa8fc55139548c4185335cf080e9ee0de Mon Sep 17 00:00:00 2001 From: astridkbjorke Date: Thu, 16 Feb 2017 15:18:26 +0100 Subject: [PATCH] #1087 - pre-proto - Adding enum for units-system, and adding conversion functions between feet/inch and meter --- .../ProjectDataModel/RimDefines.cpp | 10 ++++++++++ ApplicationCode/ProjectDataModel/RimDefines.h | 19 ++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/ApplicationCode/ProjectDataModel/RimDefines.cpp b/ApplicationCode/ProjectDataModel/RimDefines.cpp index ec64948c4a..86422654e6 100644 --- a/ApplicationCode/ProjectDataModel/RimDefines.cpp +++ b/ApplicationCode/ProjectDataModel/RimDefines.cpp @@ -56,6 +56,16 @@ namespace caf setDefault(RimDefines::UNIT_METER); } + template<> + void caf::AppEnum< RimDefines::UnitSystem >::setUp() + { + addItem(RimDefines::UNITS_METRIC, "UNITS_METRIC", "Metric"); + addItem(RimDefines::UNITS_FIELD, "UNITS_FIELD", "Field"); + + setDefault(RimDefines::UNITS_METRIC); + } + + template<> void caf::AppEnum< RimDefines::PlotAxis >::setUp() { diff --git a/ApplicationCode/ProjectDataModel/RimDefines.h b/ApplicationCode/ProjectDataModel/RimDefines.h index 779f763d27..e1450c2fb0 100644 --- a/ApplicationCode/ProjectDataModel/RimDefines.h +++ b/ApplicationCode/ProjectDataModel/RimDefines.h @@ -74,6 +74,8 @@ public: static QString mockModelCustomized() { return "Result Mock Debug Model Customized"; } static QString mockModelBasicInputCase() { return "Input Mock Debug Model Simple"; } + + //Units and conversions enum DepthUnitType { UNIT_METER, @@ -81,11 +83,26 @@ public: UNIT_NONE }; + + enum UnitSystem + { + UNITS_METRIC, + UNITS_FIELD + //UNITS_LAB + }; + static double feetPerMeter() { return 3.2808399; } + static double meterPerFeet() { return 0.3048000; } + + static double meterToFeet(double meter) { return meter*feetPerMeter(); } + static double feetToMeter(double feet) { return feet*meterPerFeet();} + static double meterToInch(double meter) { return meter*feetPerMeter()*12; } + static double inchToMeter(double inch) { return (inch / 12)*meterPerFeet(); } + + // Defines relate to plotting - enum PlotAxis { PLOT_AXIS_LEFT,