from lnx.logicnode.lnx_nodes import * class SeparateColorHSVNode(LnxLogicTreeNode): """Splits the given color into its HSVA components (hue, saturation, value, and alpha). If the input color is `null`, the outputs are each set to `0.0`. formula from: https://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c """ bl_idname = 'LNSeparateColorHSVNode' bl_label = 'Separate HSVA' lnx_section = 'color' lnx_version = 1 def lnx_init(self, context): self.add_input('LnxColorSocket', 'Color', default_value=[1.0, 1.0, 1.0, 1.0]) self.add_output('LnxFloatSocket', 'H') self.add_output('LnxFloatSocket', 'S') self.add_output('LnxFloatSocket', 'V') self.add_output('LnxFloatSocket', 'A')