1 // Copyright (c) 1995-1999 Matra Datavision
2 // Copyright (c) 1999-2012 OPEN CASCADE SAS
4 // The content of this file is subject to the Open CASCADE Technology Public
5 // License Version 6.5 (the "License"). You may not use the content of this file
6 // except in compliance with the License. Please obtain a copy of the License
7 // at http://www.opencascade.org and read it completely before using this file.
9 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 // The Original Code and all software distributed under the License is
13 // distributed on an "AS IS" basis, without warranty of any kind, and the
14 // Initial Developer hereby disclaims all such warranties, including without
15 // limitation, any warranties of merchantability, fitness for a particular
16 // purpose or non-infringement. Please see the License for the specific terms
17 // and conditions governing the rights and limitations under the License.
19 #include <Aspect_ColorPixel.ixx>
21 Aspect_ColorPixel::Aspect_ColorPixel () {
23 myColor.SetValues( 0.,0.,0. , Quantity_TOC_RGB ) ;
27 Aspect_ColorPixel::Aspect_ColorPixel (const Quantity_Color& aColor) {
33 const Quantity_Color& Aspect_ColorPixel::Value() const {
40 void Aspect_ColorPixel::SetValue(const Quantity_Color& aColor) {
46 void Aspect_ColorPixel::Print(Standard_OStream& s) const
48 { Standard_Real r,g,b ;
50 myColor.Values( r,g,b, Quantity_TOC_RGB ) ;
52 s << "( " << r << ", " << g << ", " << b << " )" << flush;
55 // ------------------------------------------------------------------
56 // Hascode : Computes a hascoding value for a given Aspect_ColorPixel
57 // ------------------------------------------------------------------
58 Standard_Integer Aspect_ColorPixel::HashCode(const Standard_Integer Upper) const
59 { Standard_Real r,g,b ;
60 Standard_Integer ret ;
62 myColor.Values( r,g,b, Quantity_TOC_RGB ) ;
64 ret = ( Standard_Integer ) ( ( r + g + b ) * Upper ) ;
66 return ( ret % Upper ) + 1 ;
70 Standard_Boolean Aspect_ColorPixel::IsEqual(const Aspect_ColorPixel& Other) const
72 return (myColor == Other.myColor);
75 Standard_Boolean Aspect_ColorPixel::IsNotEqual(const Aspect_ColorPixel& Other) const
77 return !IsEqual(Other);