| 3 | /// <reference path="ISerializable.ts"/> |
| 4 | module Display { |
| 5 | export class ColorTransform implements ISerializable { |
| 6 | public alphaMultiplier:number; |
| 7 | public alphaOffset:number; |
| 8 | public blueMultiplier:number; |
| 9 | public blueOffset:number; |
| 10 | public greenMultiplier:number; |
| 11 | public greenOffset:number; |
| 12 | public redMultiplier:number; |
| 13 | public redOffset:number; |
| 14 | |
| 15 | constructor(redMultiplier: number = 1, |
| 16 | greenMultiplier: number = 1, |
| 17 | blueMultiplier: number = 1, |
| 18 | alphaMultiplier: number = 1, |
| 19 | redOffset: number = 0, |
| 20 | greenOffset: number = 0, |
| 21 | blueOffset: number = 0, |
| 22 | alphaOffset: number = 0) { |
| 23 | |
| 24 | this.redMultiplier = redMultiplier; |
| 25 | this.greenMultiplier = greenMultiplier; |
| 26 | this.blueMultiplier = blueMultiplier; |
| 27 | this.alphaMultiplier = alphaMultiplier; |
| 28 | this.redOffset = redOffset; |
| 29 | this.greenOffset = greenOffset; |
| 30 | this.blueOffset = blueOffset; |
| 31 | this.alphaOffset = alphaOffset; |
| 32 | } |
| 33 | |
| 34 | get color():number { |
| 35 | return this.redOffset << 16 | this.greenOffset << 8 | this.blueOffset; |
| 36 | } |
| 37 | |
| 38 | set color(color:number) { |
| 39 | this.redOffset = (( color >> 16 ) & 0xFF); |
| 40 | this.greenOffset = (( color >> 8 ) & 0xFF); |
| 41 | this.blueOffset = color & 0xFF; |
| 42 | this.redMultiplier = 0; |
| 43 | this.greenMultiplier = 0; |
| 44 | this.blueMultiplier = 0; |
| 45 | } |
| 46 | |
| 47 | public concat(second:ColorTransform):void { |
| 48 | this.redMultiplier *= second.redMultiplier; |
| 49 | this.greenMultiplier *= second.greenMultiplier; |
| 50 | this.blueMultiplier *= second.blueMultiplier; |
| 51 | this.alphaMultiplier *= second.alphaMultiplier; |
| 52 | this.redOffset += second.redOffset; |
| 53 | this.greenOffset += second.greenOffset; |
| 54 | this.blueOffset += second.blueOffset; |
| 55 | this.alphaOffset += second.alphaOffset; |
| 56 | } |
| 57 | |
| 58 | public serialize():Object { |
| 59 | return { |
| 60 | 'class': 'ColorTransform', |
| 61 | 'red': { |
| 62 | 'offset': this.redOffset, |
nothing calls this directly
no outgoing calls
no test coverage detected