------------------------------------------------------------------------------------------------ Convert a color component to [0...1]
| 110 | // ------------------------------------------------------------------------------------------------ |
| 111 | // Convert a color component to [0...1] |
| 112 | ai_real NormalizeColorValue(PropertyInstance::ValueUnion val, EDataType eType) { |
| 113 | switch (eType) { |
| 114 | case EDT_Float: |
| 115 | return val.fFloat; |
| 116 | case EDT_Double: |
| 117 | return static_cast<ai_real>(val.fDouble); |
| 118 | case EDT_UChar: |
| 119 | return static_cast<ai_real>(val.iUInt) / static_cast<ai_real>(0xFF); |
| 120 | case EDT_Char: |
| 121 | return static_cast<ai_real>(val.iInt + (0xFF / 2)) / static_cast<ai_real>(0xFF); |
| 122 | case EDT_UShort: |
| 123 | return static_cast<ai_real>(val.iUInt) / static_cast<ai_real>(0xFFFF); |
| 124 | case EDT_Short: |
| 125 | return static_cast<ai_real>(val.iInt + (0xFFFF / 2)) / static_cast<ai_real>(0xFFFF); |
| 126 | case EDT_UInt: |
| 127 | return static_cast<ai_real>(val.iUInt) / static_cast<ai_real>(0xFFFF); |
| 128 | case EDT_Int: |
| 129 | return (static_cast<ai_real>(val.iInt) / static_cast<ai_real>(0xFF)) + 0.5f; |
| 130 | default: |
| 131 | break; |
| 132 | } |
| 133 | |
| 134 | return 0.0f; |
| 135 | } |
| 136 | |
| 137 | // ------------------------------------------------------------------------------------------------ |
| 138 | // Get a RGBA color in [0...1] range |
no outgoing calls
no test coverage detected