| 101 | } |
| 102 | |
| 103 | Util::Color GetChannelPixelColor(double channelValue, txmp::ColorChannel channel, txmp::ColorRepresentation representation, Util::HsvColor baseHsvColor, Util::Color baseRgbColor) |
| 104 | { |
| 105 | Util::Color newRgbColor = { 0xFF, 0xFF, 0xFF, 0xFF }; |
| 106 | |
| 107 | switch (channel) |
| 108 | { |
| 109 | case txmp::ColorChannel::Channel1: |
| 110 | if (representation == txmp::ColorRepresentation::Hsva) |
| 111 | { |
| 112 | // Sweep hue |
| 113 | baseHsvColor.H = std::clamp(channelValue, 0.0, 360.0); |
| 114 | newRgbColor = Util::Color::FromHSV(baseHsvColor); |
| 115 | } |
| 116 | else |
| 117 | { |
| 118 | // Sweep red |
| 119 | baseRgbColor.R = static_cast<uint8_t>(std::clamp(channelValue, 0.0, 255.0)); |
| 120 | newRgbColor = baseRgbColor; |
| 121 | } |
| 122 | |
| 123 | break; |
| 124 | |
| 125 | case txmp::ColorChannel::Channel2: |
| 126 | if (representation == txmp::ColorRepresentation::Hsva) |
| 127 | { |
| 128 | // Sweep saturation |
| 129 | baseHsvColor.S = std::clamp(channelValue, 0.0, 1.0); |
| 130 | newRgbColor = Util::Color::FromHSV(baseHsvColor); |
| 131 | } |
| 132 | else |
| 133 | { |
| 134 | // Sweep green |
| 135 | baseRgbColor.G = static_cast<uint8_t>(std::clamp(channelValue, 0.0, 255.0)); |
| 136 | newRgbColor = baseRgbColor; |
| 137 | } |
| 138 | |
| 139 | break; |
| 140 | |
| 141 | case txmp::ColorChannel::Channel3: |
| 142 | if (representation == txmp::ColorRepresentation::Hsva) |
| 143 | { |
| 144 | // Sweep value |
| 145 | baseHsvColor.V = std::clamp(channelValue, 0.0, 1.0); |
| 146 | newRgbColor = Util::Color::FromHSV(baseHsvColor); |
| 147 | } |
| 148 | else |
| 149 | { |
| 150 | // Sweep blue |
| 151 | baseRgbColor.B = static_cast<uint8_t>(std::clamp(channelValue, 0.0, 255.0)); |
| 152 | newRgbColor = baseRgbColor; |
| 153 | } |
| 154 | |
| 155 | break; |
| 156 | |
| 157 | case txmp::ColorChannel::Alpha: |
| 158 | if (representation == txmp::ColorRepresentation::Hsva) |
| 159 | { |
| 160 | // Sweep alpha |
no test coverage detected