20 lines
		
	
	
		
			766 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			20 lines
		
	
	
		
			766 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								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')
							 |