static bool SetRGBFromArray(ArrayID arr, RGBA& outRGB) { ArrayVar* var = g_ArrayMap.Get(arr); if (var && var->IsPacked() && var->Size() == 3) { double rgb[3]; for (UInt32 i=0; i < 3; i++) { if (g_ArrayMap.GetElementNumber(arr, i, &rgb[i])) { rgb[i] = min(max(0.0, rgb[i]), 255.0); } else { return false; } } outRGB.Set(rgb[0], rgb[1], rgb[2]); outRGB.a = 0; return true; } return false; }