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