10 const double PI = std::acos(-1);
18 INCOMMENSURABLE = 0x500
24 IN = UnitClass::LENGTH,
51 UNKNOWN = INCOMMENSURABLE
55 extern const double size_conversion_factors[6][6];
56 extern const double angle_conversion_factors[4][4];
57 extern const double time_conversion_factors[2][2];
58 extern const double frequency_conversion_factors[2][2];
59 extern const double resolution_conversion_factors[3][3];
61 enum Sass::UnitType string_to_unit(const std::string&);
62 const char* unit_to_string(Sass::UnitType unit);
63 enum Sass::UnitClass get_unit_type(Sass::UnitType unit);
64 std::string get_unit_class(Sass::UnitType unit);
65 std::string unit_to_class(const std::string&);
66 // throws incompatibleUnits exceptions
67 double conversion_factor(const std::string&, const std::string&, bool = true);
69 class incompatibleUnits: public std::exception
73 incompatibleUnits(Sass::UnitType a, Sass::UnitType b)
77 ss << "Incompatible units: ";
78 ss << "'" << unit_to_string(a) << "' and ";
79 ss << "'" << unit_to_string(b) << "'";
80 // hold on to string on stack!
81 std::string str(ss.str());
84 virtual const char* what() const throw()