[Units]Allow querying schema for unit of measure
This commit is contained in:
@@ -163,6 +163,11 @@ bool UnitsApi::isMultiUnitAngle()
|
||||
return UserPrefSystem->isMultiUnitAngle();
|
||||
}
|
||||
|
||||
std::string UnitsApi::getBasicLengthUnit()
|
||||
{
|
||||
return UserPrefSystem->getBasicLengthUnit();
|
||||
}
|
||||
|
||||
// === static translation methods ==========================================
|
||||
|
||||
QString UnitsApi::schemaTranslate(const Base::Quantity& quant, double &factor, QString &unitString)
|
||||
|
||||
@@ -98,6 +98,9 @@ public:
|
||||
//return true if the current user schema uses multiple units for angles (ex. DMS)
|
||||
static bool isMultiUnitAngle();
|
||||
|
||||
//return the basic unit of measure for length in the current user schema.
|
||||
static std::string getBasicLengthUnit();
|
||||
|
||||
// Python interface
|
||||
static PyMethodDef Methods[];
|
||||
|
||||
|
||||
@@ -71,6 +71,9 @@ public:
|
||||
|
||||
//return true if this schema uses multiple units for angles (ex. DMS)
|
||||
virtual bool isMultiUnitAngle() const {return false;}
|
||||
|
||||
//return the basic length unit for this schema
|
||||
virtual std::string getBasicLengthUnit() const { return std::string("mm"); }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -37,6 +37,8 @@ class UnitsSchemaCentimeters: public UnitsSchema
|
||||
{
|
||||
public:
|
||||
QString schemaTranslate(const Base::Quantity& quant, double &factor, QString &unitString) override;
|
||||
|
||||
std::string getBasicLengthUnit() const override { return std::string("cm"); }
|
||||
};
|
||||
|
||||
} // namespace Base
|
||||
|
||||
@@ -41,6 +41,7 @@ public:
|
||||
//virtual void setSchemaUnits(void);
|
||||
//virtual void resetSchemaUnits(void);
|
||||
QString schemaTranslate(const Base::Quantity& quant, double &factor, QString &unitString) override;
|
||||
std::string getBasicLengthUnit() const override { return std::string("in"); }
|
||||
};
|
||||
|
||||
/** The schema class for the imperial unit system
|
||||
@@ -53,6 +54,7 @@ public:
|
||||
//virtual void setSchemaUnits(void);
|
||||
//virtual void resetSchemaUnits(void);
|
||||
QString schemaTranslate(const Base::Quantity& quant, double &factor, QString &unitString) override;
|
||||
std::string getBasicLengthUnit() const override { return std::string("in"); }
|
||||
};
|
||||
|
||||
/** The schema class for the imperial unit system
|
||||
@@ -65,6 +67,7 @@ public:
|
||||
//virtual void setSchemaUnits(void);
|
||||
//virtual void resetSchemaUnits(void);
|
||||
QString schemaTranslate(const Base::Quantity& quant, double &factor, QString &unitString) override;
|
||||
std::string getBasicLengthUnit() const override { return std::string("ft"); }
|
||||
|
||||
//return true if this schema uses multiple units for length (ex. Ft/In)
|
||||
bool isMultiUnitLength() const override {return true;}
|
||||
@@ -81,6 +84,7 @@ public:
|
||||
//virtual void setSchemaUnits(void);
|
||||
//virtual void resetSchemaUnits(void);
|
||||
QString schemaTranslate(const Base::Quantity& quant, double &factor, QString &unitString) override;
|
||||
std::string getBasicLengthUnit() const override { return std::string("ft"); }
|
||||
|
||||
//return true if this schema uses multiple units for angles (ex. DMS)
|
||||
bool isMultiUnitAngle() const override {return true;}
|
||||
|
||||
Reference in New Issue
Block a user