0030623: Draw Harness - support hex color codes within ViewerTest::ParseColor()
[occt.git] / src / Quantity / Quantity_ColorRGBA.hxx
index 8f91d9f..c67cd52 100644 (file)
@@ -91,6 +91,36 @@ public:
   //! Two colors are considered to be equal if their distance is no greater than Epsilon().
   bool operator== (const Quantity_ColorRGBA& theOther) const { return IsEqual (theOther); }
 
+  //! Finds color from predefined names.
+  //! For example, the name of the color which
+  //! corresponds to "BLACK" is Quantity_NOC_BLACK.
+  //! Returns false if name is unknown.
+  //! An alpha component is set to 1.0.
+  //! @param theColorNameString the color name
+  //! @param theColor a found color
+  //! @return false if the color name is unknown, or true if the search by color name was successful
+  static Standard_Boolean ColorFromName (const Standard_CString theColorNameString, Quantity_ColorRGBA& theColor)
+  {
+    Quantity_ColorRGBA aColor;
+    if (!Quantity_Color::ColorFromName (theColorNameString, aColor.ChangeRGB()))
+    {
+      return false;
+    }
+    theColor = aColor;
+    return true;
+  }
+
+  //! Parses the string as a hex color (like "#FF0" for short RGB color, "#FF0F" for short RGBA color,
+  //! "#FFFF00" for RGB color, or "#FFFF00FF" for RGBA color)
+  //! @param theHexColorString the string to be parsed
+  //! @param theColor a color that is a result of parsing
+  //! @param theAlphaComponentIsOff the flag that indicates if a color alpha component is presented
+  //! in the input string (false) or not (true)
+  //! @return true if parsing was successful, or false otherwise
+  Standard_EXPORT static bool ColorFromHex (const char* const   theHexColorString,
+                                            Quantity_ColorRGBA& theColor,
+                                            const bool          theAlphaComponentIsOff = false);
+
 private:
 
   static void myTestSize3() { Standard_STATIC_ASSERT (sizeof(float) * 3 == sizeof(Quantity_Color)); }