Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def inverse(color):
color = Color(tuple(1 - c for c in color))
color[3] = 1
return color
def lerp(a, b, t):
if isinstance(a, (int, float, complex)):
return a + (b - a) * t
elif isinstance(a, Color) and isinstance(b, Color):
col = [lerp(e[0], e[1], t) for e in zip(a,b)]
return Color(col[0], col[1], col[2], col[3])
elif isinstance(a, (tuple, list, Vec2, Vec3, Vec4, LVector3f)) and isinstance(b, (tuple, list, Vec2, Vec3, Vec4, LVector3f)):
lerped = list()
for i in range(min(len(a), len(b))):
lerped.append(lerp(a[i], b[i], t))
if isinstance(a, (tuple, list)):
return type(a)(lerped)
else:
return type(a)(*lerped)
else:
print(f'''can't lerp types {type(a)} and {type(b)}''')
def brightness(color):
if color[0] > 1 or color[1] > 1 or color[2] > 1:
color = Color(tuple(c/255 for c in color))
return to_hsv(color)[2]
def rgba(r, g, b, a=255):
color = Color(r, g, b, a)
if color[0] > 1 or color[1] > 1 or color[2] > 1 or color[3] > 1:
color = Color(tuple(c/255 for c in color))
# color[3] = min(1, color[3])
return color
def rgba(r, g, b, a=255):
color = Color(r, g, b, a)
if color[0] > 1 or color[1] > 1 or color[2] > 1 or color[3] > 1:
color = Color(tuple(c/255 for c in color))
# color[3] = min(1, color[3])
return color
def to_hsv(color):
return Color(colorsys.rgb_to_hsv(color[0], color[1], color[2]) + (color[3],))
def tint(color, amount=.2):
return Color(
max(min(color[0] + amount, 1), 0),
max(min(color[1] + amount, 1), 0),
max(min(color[2] + amount, 1), 0),
color[3]
)
azure = color(210, 1, 1)
blue = color(240, 1, 1)
violet = color(270, 1, 1)
magenta = color(300, 1, 1)
pink = color(330, 1, 1)
brown = rgb(165, 42, 42)
olive = rgb(128, 128, 0)
peach = rgb(255, 218, 185)
gold = rgb(255, 215, 0)
salmon = rgb(250, 128, 114)
clear = Color(0, 0, 0, 0)
white10 = Color(1,1,1, 0.10)
white33 = Color(1,1,1, 0.33)
white50 = Color(1,1,1, 0.50)
white66 = Color(1,1,1, 0.66)
black10 = Color(0,0,0, 0.10)
black33 = Color(0,0,0, 0.33)
black50 = Color(0,0,0, 0.50)
black66 = Color(0,0,0, 0.66)
text = smoke
light_text = smoke
dark_text = color(0, 0, .1)
text_color = light_text
# generate attributes for grayscale values. _0=black, _128=gray, 255=white
for i in range(256):
setattr(sys.modules[__name__], '_' + str(i), color(0,0,i/255))
color_names = ('white', 'smoke', 'light_gray', 'gray', 'dark_gray', 'black',