@@ -86,69 +86,6 @@ THREE.extend( THREE.Color.prototype, {
8686
8787 } ,
8888
89- setHSV : function ( h , s , v ) {
90-
91- // based on MochiKit implementation by Bob Ippolito
92- // h,s,v ranges are < 0.0 - 1.0 >
93-
94- var i , f , p , q , t ;
95-
96- if ( v === 0 ) {
97-
98- this . r = this . g = this . b = 0 ;
99-
100- } else {
101-
102- i = Math . floor ( h * 6 ) ;
103- f = ( h * 6 ) - i ;
104- p = v * ( 1 - s ) ;
105- q = v * ( 1 - ( s * f ) ) ;
106- t = v * ( 1 - ( s * ( 1 - f ) ) ) ;
107-
108- if ( i === 0 ) {
109-
110- this . r = v ;
111- this . g = t ;
112- this . b = p ;
113-
114- } else if ( i === 1 ) {
115-
116- this . r = q ;
117- this . g = v ;
118- this . b = p ;
119-
120- } else if ( i === 2 ) {
121-
122- this . r = p ;
123- this . g = v ;
124- this . b = t ;
125-
126- } else if ( i === 3 ) {
127-
128- this . r = p ;
129- this . g = q ;
130- this . b = v ;
131-
132- } else if ( i === 4 ) {
133-
134- this . r = t ;
135- this . g = p ;
136- this . b = v ;
137-
138- } else if ( i === 5 ) {
139-
140- this . r = v ;
141- this . g = p ;
142- this . b = q ;
143-
144- }
145-
146- }
147-
148- return this ;
149-
150- } ,
151-
15289 setStyle : function ( style ) {
15390
15491 // rgb(255,0,0)
@@ -286,117 +223,64 @@ THREE.extend( THREE.Color.prototype, {
286223
287224 } ,
288225
289- getHSL : function ( hsl ) {
226+ getHSL : function ( ) {
290227
291- // h,s,l ranges are in 0.0 - 1.0
228+ var hsl = { h : 0 , s : 0 , l : 0 } ;
292229
293- if ( hsl === undefined ) hsl = { h : 0 , s : 0 , l : 0 } ;
230+ return function ( ) {
294231
295- var r = this . r , g = this . g , b = this . b ;
232+ // h,s,l ranges are in 0.0 - 1.0
296233
297- var max = Math . max ( r , g , b ) ;
298- var min = Math . min ( r , g , b ) ;
234+ var r = this . r , g = this . g , b = this . b ;
299235
300- var hue , saturation ;
301- var lightness = ( min + max ) / 2.0 ;
236+ var max = Math . max ( r , g , b ) ;
237+ var min = Math . min ( r , g , b ) ;
302238
303- if ( min === max ) {
239+ var hue , saturation ;
240+ var lightness = ( min + max ) / 2.0 ;
304241
305- hue = 0 ;
306- saturation = 0 ;
242+ if ( min === max ) {
307243
308- } else {
244+ hue = 0 ;
245+ saturation = 0 ;
309246
310- var delta = max - min ;
247+ } else {
311248
312- saturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min ) ;
249+ var delta = max - min ;
313250
314- switch ( max ) {
251+ saturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min ) ;
315252
316- case r : hue = ( g - b ) / delta + ( g < b ? 6 : 0 ) ; break ;
317- case g : hue = ( b - r ) / delta + 2 ; break ;
318- case b : hue = ( r - g ) / delta + 4 ; break ;
253+ switch ( max ) {
319254
320- }
321-
322- hue /= 6 ;
323-
324- }
325-
326- hsl . h = hue ;
327- hsl . s = saturation ;
328- hsl . l = lightness ;
329-
330- return hsl ;
331-
332- } ,
333-
334- getHSV : function ( hsv ) {
335-
336- // based on MochiKit implementation by Bob Ippolito
337- // h,s,v ranges are < 0.0 - 1.0 >
338-
339- var r = this . r ;
340- var g = this . g ;
341- var b = this . b ;
342-
343- var max = Math . max ( Math . max ( r , g ) , b ) ;
344- var min = Math . min ( Math . min ( r , g ) , b ) ;
345-
346- var hue ;
347- var saturation ;
348- var value = max ;
349-
350- if ( min === max ) {
351-
352- hue = 0 ;
353- saturation = 0 ;
255+ case r : hue = ( g - b ) / delta + ( g < b ? 6 : 0 ) ; break ;
256+ case g : hue = ( b - r ) / delta + 2 ; break ;
257+ case b : hue = ( r - g ) / delta + 4 ; break ;
354258
355- } else {
356-
357- var delta = ( max - min ) ;
358- saturation = delta / max ;
359-
360- if ( r === max ) {
361-
362- hue = ( g - b ) / delta ;
259+ }
363260
364- } else if ( g === max ) {
261+ hue /= 6 ;
365262
366- hue = 2 + ( ( b - r ) / delta ) ;
367-
368- } else {
369-
370- hue = 4 + ( ( r - g ) / delta ) ;
371263 }
372264
373- hue /= 6 ;
265+ hsl . h = hue ;
266+ hsl . s = saturation ;
267+ hsl . l = lightness ;
374268
375- if ( hue < 0 ) {
269+ return hsl ;
376270
377- hue += 1 ;
271+ } ;
378272
379- }
273+ } ( ) ,
380274
381- if ( hue > 1 ) {
275+ offsetHSL : function ( h , s , l ) {
382276
383- hue -= 1 ;
277+ var hsl = this . getHSL ( ) ;
384278
385- }
279+ hsl . h += h ; hsl . s += s ; hsl . l += l ;
386280
387- }
388-
389- if ( hsv === undefined ) {
281+ this . setHSL ( hsl . h , hsl . s , hsl . l ) ;
390282
391- hsv = { h : 0 , s : 0 , v : 0 } ;
392-
393- }
394-
395- hsv . h = hue ;
396- hsv . s = saturation ;
397- hsv . v = value ;
398-
399- return hsv ;
283+ return this ;
400284
401285 } ,
402286
0 commit comments