CMGDK r49-rc2
|
00001 # i f n d e f H G L _ C O L O R _ 3 _ F L O A T _ I N C L U D E 00002 00003 # d e f i n e H G L _ C O L O R _ 3 _ F L O A T _ I N C L U D E 00004 00005 00006 00007 # i n c l u d e < h g l / t y p e / C o l o r . H > 00008 00009 n a m e s p a c e h g l 00010 00011 { 00012 00013 / * * 00014 00015 * r , g , b NSr{| 00016 00017 * / 00018 00019 c l a s s C o l o r 3 f / / / R G B NSr{| 00020 00021 { 00022 00023 v o i d C l a m p ( ) ; 00024 00025 00026 00027 p u b l i c : 00028 00029 00030 00031 f l o a t r , g , b ; / / / < r g b NSr 00032 00033 00034 00035 p u b l i c : 00036 00037 00038 00039 C o l o r 3 f ( ) { r = 0 , g = 0 , b = 0 ; } / / / < ,g{|g Qpe 00040 00041 C o l o r 3 f ( C O L O R _ E N U M c e ) { U s e ( c e ) ; } / / / < ,g{|g Qpe 00042 00043 C o l o r 3 f ( f l o a t l ) { r = l , g = l , b = l ; C l a m p ( ) ; } / / / < ,g{|g Qpe 00044 00045 C o l o r 3 f ( f l o a t v r , f l o a t v g , f l o a t v b ) { r = v r , g = v g , b = v b ; C l a m p ( ) ; } / / / < ,g{|g Qpe 00046 00047 C o l o r 3 f ( c o n s t C o l o r 3 f & v ) { r = v . r ; g = v . g ; b = v . b ; C l a m p ( ) ; } / / / < ,g{|g Qpe 00048 00049 00050 00051 v o i d U s e ( C O L O R _ E N U M ) ; 00052 00053 v o i d Z e r o ( ) { r = 0 , g = 0 , b = 0 ; } / / / < hQn:N0 00054 00055 v o i d O n e ( ) { r = 1 , g = 1 , b = 1 ; } / / / < hQn:N1 00056 00057 v o i d R a n d ( ) ; / / / < hQ:g 00058 00059 00060 00061 v o i d S e t ( f l o a t v r , f l o a t v g , f l o a t v b ) { r = v r , g = v g , b = v b ; C l a m p ( ) ; } / / / < nr 00062 00063 v o i d S e t 3 i ( i n t v r , i n t v g , i n t v b ) / / / < c0 - 2 5 5 vV<Pnr 00064 00065 { r = f l o a t ( v r ) / 2 5 5 . 0 f , g = f l o a t ( v g ) / 2 5 5 . 0 f , b = f l o a t ( v b ) / 2 5 5 . 0 f ; C l a m p ( ) ; } 00066 00067 00068 00069 v o i d S e t L u m ( f l o a t v ) { i f ( v < 0 ) Z e r o ( ) ; e l s e i f ( v > 1 ) O n e ( ) ; e l s e { r = g = b = v ; } } / / / < nr 00070 00071 00072 00073 v o i d T o ( f l o a t , f l o a t , f l o a t , f l o a t ) ; / / / < lbc0RS Nr 00074 00075 v o i d T o ( C o l o r 3 f & c , f l o a t v ) { T o ( c . r , c . g , c . b , v ) ; } / / / < lbc0RS Nr 00076 00077 00078 00079 v o i d B l a c k ( ) { r = 0 , g = 0 , b = 0 ; } / / / < ўr 00080 00081 v o i d W h i t e ( ) { r = 1 , g = 1 , b = 1 ; } / / / < }vr 00082 00083 00084 00085 v o i d R e d ( ) { r = 1 , g = 0 , b = 0 ; } / / / < ~r 00086 00087 v o i d G r e e n ( ) { r = 0 , g = 1 , b = 0 ; } / / / < ~r 00088 00089 v o i d B l u e ( ) { r = 0 , g = 0 , b = 1 ; } / / / < ݄r 00090 00091 00092 00093 v o i d Y e l l o w ( ) { r = 1 , g = 1 , b = 0 ; } / / / < Ğr 00094 00095 v o i d P u r p l e ( ) { r = 1 , g = 0 , b = 1 ; } / / / < +}r 00096 00097 00098 00099 v o i d G r e y ( f l o a t v ) { r = v , g = v , b = v ; C l a m p ( ) ; } / / / < ppr 00100 00101 v o i d G r e y ( f l o a t , f l o a t , f l o a t ) ; / / / < ci_rSbppr 00102 00103 v o i d G r e y ( ) ; / / / < \S_MRri_Sbppr 00104 00105 00106 00107 / / d\O&{͑} 00108 00109 v o i d o p e r a t o r = ( f l o a t * v ) { r = * v + + ; g = * v + + ; b = * v ; } 00110 00111 v o i d o p e r a t o r = ( C O L O R _ E N U M c e ) { U s e ( c e ) ; } 00112 00113 00114 00115 b o o l o p e r a t o r = = ( c o n s t C o l o r 3 f & ) ; 00116 00117 b o o l o p e r a t o r ! = ( c o n s t C o l o r 3 f & ) ; 00118 00119 00120 00121 v o i d o p e r a t o r + = ( c o n s t C o l o r 3 f & v ) { r + = v . r ; g + = v . g ; b + = v . b ; C l a m p ( ) ; } 00122 00123 v o i d o p e r a t o r - = ( c o n s t C o l o r 3 f & v ) { r - = v . r ; g - = v . g ; b - = v . b ; C l a m p ( ) ; } 00124 00125 v o i d o p e r a t o r * = ( c o n s t C o l o r 3 f & v ) { r * = v . r ; g * = v . g ; b * = v . b ; C l a m p ( ) ; } 00126 00127 v o i d o p e r a t o r / = ( c o n s t C o l o r 3 f & v ) { r / = v . r ; g / = v . g ; b / = v . b ; C l a m p ( ) ; } 00128 00129 00130 00131 v o i d o p e r a t o r * = ( f l o a t v ) { r * = v ; g * = v ; b * = v ; C l a m p ( ) ; } 00132 00133 v o i d o p e r a t o r / = ( f l o a t v ) { r / = v ; g / = v ; b / = v ; C l a m p ( ) ; } 00134 00135 00136 00137 C o l o r 3 f o p e r a t o r + ( c o n s t C o l o r 3 f & v ) { r e t u r n ( C o l o r 3 f ( r + v . r , g + v . g , b + v . b ) ) ; } 00138 00139 C o l o r 3 f o p e r a t o r - ( c o n s t C o l o r 3 f & v ) { r e t u r n ( C o l o r 3 f ( r - v . r , g - v . g , b - v . b ) ) ; } 00140 00141 C o l o r 3 f o p e r a t o r * ( c o n s t C o l o r 3 f & v ) { r e t u r n ( C o l o r 3 f ( r * v . r , g * v . g , b * v . b ) ) ; } 00142 00143 C o l o r 3 f o p e r a t o r / ( c o n s t C o l o r 3 f & v ) { r e t u r n ( C o l o r 3 f ( r / v . r , g / v . g , b / v . b ) ) ; } 00144 00145 00146 00147 C o l o r 3 f o p e r a t o r * ( f l o a t v ) { r e t u r n ( C o l o r 3 f ( r * v , g * v , b * v ) ) ; } 00148 00149 C o l o r 3 f o p e r a t o r / ( f l o a t v ) { r e t u r n ( C o l o r 3 f ( r / v , g / v , b / v ) ) ; } 00150 00151 00152 00153 o p e r a t o r f l o a t * ( ) c o n s t { r e t u r n ( ( f l o a t * ) t h i s ) ; } / / O_,g{|SNvcS_ZPf l o a t * O(u 00154 00155 o p e r a t o r c o n s t f l o a t * ( ) c o n s t { r e t u r n ( ( c o n s t f l o a t * ) t h i s ) ; } / / O_,g{|SNvcS_ZPc o n s t f l o a t * O(u 00156 00157 } ; 00158 00159 } / / n a m e s p a c e h g l 00160 00161 # e n d i f / / H G L _ C O L O R _ 3 _ F L O A T _ I N C L U D E 00162 00163