// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _Quantity_Color_HeaderFile #define _Quantity_Color_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_ShortReal_HeaderFile #include #endif #ifndef _Standard_Storable_HeaderFile #include #endif #ifndef _Quantity_NameOfColor_HeaderFile #include #endif #ifndef _Quantity_Parameter_HeaderFile #include #endif #ifndef _Quantity_TypeOfColor_HeaderFile #include #endif #ifndef _Quantity_Rate_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_CString_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_PrimitiveTypes_HeaderFile #include #endif class Quantity_ColorDefinitionError; Standard_EXPORT const Handle(Standard_Type)& STANDARD_TYPE(Quantity_Color); //! This class allows the definition of a colour.
//! The names of the colours are from the X11 specification.
//! color object may be used for numerous applicative purposes.
//! A color is defined by:
//! - its respective quantities of red, green and blue (R-G-B values), or
//! - its hue angle and its values of lightness and saturation (H-L-S values).
//! These two color definition systems are equivalent.
//! Use this class in conjunction with:
//! - the Quantity_TypeOfColor enumeration
//! which identifies the color definition system you are using,
//! - the Quantity_NameOfColor enumeration
//! which lists numerous predefined colors and
//! identifies them by their name.
class Quantity_Color { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Creates a colour with the default value of
//! Colour name : YELLOW
Standard_EXPORT Quantity_Color(); //! Creates the colour .
Standard_EXPORT Quantity_Color(const Quantity_NameOfColor AName); //! Creates a colour according to the definition system
//! TypeOfColor.
//! TOC_RGB : the value of red between 0. and 1.
//! the value of green between 0. and 1.
//! the value of blue between 0. and 1.
Standard_EXPORT Quantity_Color(const Quantity_Parameter R1,const Quantity_Parameter R2,const Quantity_Parameter R3,const Quantity_TypeOfColor AType); //! Updates the colour from the definition of the
//! colour .
Standard_EXPORT Quantity_Color& Assign(const Quantity_Color& Other) ; Quantity_Color& operator =(const Quantity_Color& Other) { return Assign(Other); } //! Increases or decreases the contrast by .
//! is a percentage. Any value greater than zero
//! will increase the contrast.
//! The variation is expressed as a percentage of the
//! current value.
//! It is a variation of the saturation.
Standard_EXPORT void ChangeContrast(const Quantity_Rate ADelta) ; //! Increases or decreases the intensity by .
//! is a percentage. Any value greater than zero
//! will increase the intensity.
//! The variation is expressed as a percentage of the
//! current value.
//! It is a variation of the lightness.
Standard_EXPORT void ChangeIntensity(const Quantity_Rate ADelta) ; //! Updates the colour from the definition of the
//! colour .
Standard_EXPORT void SetValues(const Quantity_NameOfColor AName) ; //! Updates a colour according to the mode specified by
//! TypeOfColor
//! TOC_RGB : the value of red between 0. and 1.
//! the value of green between 0. and 1.
//! the value of blue between 0. and 1.
Standard_EXPORT void SetValues(const Quantity_Parameter R1,const Quantity_Parameter R2,const Quantity_Parameter R3,const Quantity_TypeOfColor AType) ; //! Returns the percentage change of contrast and intensity
//! between and .
//! and are percentages, either positive or negative.
//! The calculation is with respect to the current value of
//! If is positive then is more contrasty.
//! If is positive then is more intense.
Standard_EXPORT void Delta(const Quantity_Color& AColor,Quantity_Parameter& DC,Quantity_Parameter& DI) const; //! Returns the distance between two colours. It's a
//! value between 0 and the square root of 3
//! (the black/white distance)
Standard_EXPORT Standard_Real Distance(const Quantity_Color& AColor) const; //! Returns the square of distance between two colours.
Standard_EXPORT Standard_Real SquareDistance(const Quantity_Color& AColor) const; //! Returns the Blue component (quantity of blue) of the
//! color .
Standard_EXPORT Quantity_Parameter Blue() const; //! Returns the Green component (quantity of green) of the
//! color .
Standard_EXPORT Quantity_Parameter Green() const; //! Returns the Hue component (hue angle) of the
//! color .
Standard_EXPORT Quantity_Parameter Hue() const; //! Returns Standard_True if the distance between and
//! is greater than Epsilon ().
Standard_EXPORT Standard_Boolean IsDifferent(const Quantity_Color& Other) const; Standard_Boolean operator !=(const Quantity_Color& Other) const { return IsDifferent(Other); } //! Returns true if the Other color is
//! - different from, or
//! - equal to this color.
//! Two colors are considered to be equal if their
//! distance is no greater than Epsilon().
//! These methods are aliases of operator != and operator ==.
Standard_EXPORT Standard_Boolean IsEqual(const Quantity_Color& Other) const; Standard_Boolean operator ==(const Quantity_Color& Other) const { return IsEqual(Other); } //! Returns the Light component (value of the lightness) of the
//! color .
Standard_EXPORT Quantity_Parameter Light() const; //! Returns the name of the color defined by its
//! quantities of red R, green G and blue B; more
//! precisely this is the nearest color from the
//! Quantity_NameOfColor enumeration.
//! Exceptions
//! Standard_OutOfRange if R, G or B is less than 0. or greater than 1.
Standard_EXPORT Quantity_NameOfColor Name() const; //! Returns the Red component (quantity of red) of the
//! color .
Standard_EXPORT Quantity_Parameter Red() const; //! Returns the Saturation component (value of the saturation)
//! of the color .
Standard_EXPORT Quantity_Parameter Saturation() const; //! Returns in R1, R2 and R3 the components of
//! this color according to the color system definition AType.
//! - if AType is Quantity_TOC_RGB R1 is the
//! quantity of red, R2 is the quantity of green and
//! R3 is the quantity of blue in this color.
//! - if AType is Quantity_TOC_HLS R1 is the
//! hue angle in degrees (0 being red), R2 is the
//! lightness and R3 is the saturation of this color.
Standard_EXPORT void Values(Quantity_Parameter& R1,Quantity_Parameter& R2,Quantity_Parameter& R3,const Quantity_TypeOfColor AType) const; //! Sets the specified value used to compare and
//! an other color in IsDifferent and in IsEqual methods.
//! Warning: The default value is 0.0001
Standard_EXPORT static void SetEpsilon(const Quantity_Parameter AnEpsilon) ; //! Returns the specified value used to compare and
//! an other color in IsDifferent and in IsEqual methods.
Standard_EXPORT static Quantity_Parameter Epsilon() ; //! Returns the name of the colour for which the RGB components
//! are nearest to , and .
Standard_EXPORT static Quantity_NameOfColor Name(const Quantity_Parameter R,const Quantity_Parameter G,const Quantity_Parameter B) ; //! Returns the name of the color identified by
//! AName in the Quantity_NameOfColor enumeration.
//! For example, the name of the color which
//! corresponds to Quantity_NOC_BLACK is "BLACK".
//! Exceptions
//! Standard_OutOfRange if AName in not known
//! in the Quantity_NameOfColor enumeration.
Standard_EXPORT static Standard_CString StringName(const Quantity_NameOfColor AColor) ; //! Converts HLS components into RGB ones.
Standard_EXPORT static void HlsRgb(const Quantity_Parameter H,const Quantity_Parameter L,const Quantity_Parameter S,Quantity_Parameter& R,Quantity_Parameter& G,Quantity_Parameter& B) ; //! Converts RGB components into HLS ones.
Standard_EXPORT static void RgbHls(const Quantity_Parameter R,const Quantity_Parameter G,const Quantity_Parameter B,Quantity_Parameter& H,Quantity_Parameter& L,Quantity_Parameter& S) ; //! Convert the Color value to ARGB integer value.
//! theARGB has Alpha equal to zero, so the output is
//! formatted as 0x00RRGGBB
Standard_EXPORT static void Color2argb(const Quantity_Color& theColor,Standard_Integer& theARGB) ; //! Convert integer ARGB value to Color. Alpha bits are ignored
Standard_EXPORT static void Argb2color(const Standard_Integer theARGB,Quantity_Color& theColor) ; //! Internal test
Standard_EXPORT static void Test() ; Standard_ShortReal _CSFDB_GetQuantity_ColorMyRed() const { return MyRed; } void _CSFDB_SetQuantity_ColorMyRed(const Standard_ShortReal p) { MyRed = p; } Standard_ShortReal _CSFDB_GetQuantity_ColorMyGreen() const { return MyGreen; } void _CSFDB_SetQuantity_ColorMyGreen(const Standard_ShortReal p) { MyGreen = p; } Standard_ShortReal _CSFDB_GetQuantity_ColorMyBlue() const { return MyBlue; } void _CSFDB_SetQuantity_ColorMyBlue(const Standard_ShortReal p) { MyBlue = p; } protected: private: //! Converts HLS components into RGB ones.
Standard_EXPORT static void hlsrgb(const Standard_ShortReal H,const Standard_ShortReal L,const Standard_ShortReal S,Standard_ShortReal& R,Standard_ShortReal& G,Standard_ShortReal& B) ; //! Converts RGB components into HLS ones.
Standard_EXPORT static void rgbhls(const Standard_ShortReal R,const Standard_ShortReal G,const Standard_ShortReal B,Standard_ShortReal& H,Standard_ShortReal& L,Standard_ShortReal& S) ; //! Returns the values of a predefined colour according to
//! the mode specified by TypeOfColor
//! TOC_RGB : the value of red between 0. and 1.
//! the value of green between 0. and 1.
//! the value of blue between 0. and 1.
Standard_EXPORT static void ValuesOf(const Quantity_NameOfColor AName,const Quantity_TypeOfColor AType,Standard_ShortReal& R1,Standard_ShortReal& R2,Standard_ShortReal& R3) ; Standard_ShortReal MyRed; Standard_ShortReal MyGreen; Standard_ShortReal MyBlue; }; // other Inline functions and methods (like "C++: function call" methods) #endif