Source code for morse.helpers.colors
from morse.core import blenderapi
[docs]def RGBtoHue(rgbList):
""" Convert an RGB color to Hue """
R = rgbList[0]
G = rgbList[1]
B = rgbList[2]
# min, max, delta;
min_rgb = min( R, G, B )
max_rgb = max( R, G, B )
delta = max_rgb - min_rgb
if not delta:
return 0
if R == max_rgb:
H = ( G - B ) / delta # between yellow & magenta
elif G == max_rgb:
H = 2 + ( B - R ) / delta # between cyan & yellow
else:
H = 4 + ( R - G ) / delta # between magenta & cyan
H *= 60 # convert to deg
if H < 0:
H += 360
return int(H)
[docs]def retrieveHue(obj):
""" Convert the color of an object to hue
Retrieve the first material of the first mesh of an object
and return the hue of this material.
"""
try:
mesh = obj.meshes[0] # There can be more than one mesh...
except IndexError as detail:
# Nothing will happen if the object has no materials
return None
if mesh is not None:
bMat = blenderapi.materialdata(mesh.getMaterialName(0)[2:])
return RGBtoHue(bMat.diffuse_color)
return None