double CSSAngleValue::degrees() const { switch (m_unit) { case CSSPrimitiveValue::UnitType::Degrees: return m_value; case CSSPrimitiveValue::UnitType::Radians: return rad2deg(m_value); case CSSPrimitiveValue::UnitType::Gradians: return grad2deg(m_value); case CSSPrimitiveValue::UnitType::Turns: return turn2deg(m_value); default: NOTREACHED(); return 0; } }
double CSSPrimitiveValue::computeDegrees() { switch (m_primitiveUnitType) { case CSS_DEG: return getDoubleValue(); case CSS_RAD: return rad2deg(getDoubleValue()); case CSS_GRAD: return grad2deg(getDoubleValue()); case CSS_TURN: return turn2deg(getDoubleValue()); default: ASSERT_NOT_REACHED(); return 0; } }
double CSSPrimitiveValue::computeDegrees() const { ASSERT(isAngle() || (isCalculated() && cssCalcValue()->category() == CalcAngle)); UnitType currentType = isCalculated() ? cssCalcValue()->expressionNode()->typeWithCalcResolved() : type(); switch (currentType) { case UnitType::Degrees: return getDoubleValue(); case UnitType::Radians: return rad2deg(getDoubleValue()); case UnitType::Gradians: return grad2deg(getDoubleValue()); case UnitType::Turns: return turn2deg(getDoubleValue()); default: ASSERT_NOT_REACHED(); return 0; } }