35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | from lnx.logicnode.lnx_nodes import * | ||
|  | 
 | ||
|  | class RaycastRayNode(LnxLogicTreeNode): | ||
|  |     """Cast a Ray (Origin and direction) to return the name, location and distance of the closest object
 | ||
|  |     in the object arrays | ||
|  | 
 | ||
|  |     @input Obj Array: Objects to detect.  | ||
|  |     @input Origin: ray origin. | ||
|  |     @input Direction: ray direction. | ||
|  |      | ||
|  |     @output True: if an object is detected. | ||
|  |     @output False: if none object is detected. | ||
|  |     @output Object: close object detected. | ||
|  |     @output Location: the position where the ray comes in contact with the ray. | ||
|  |     @output Distance: distance from origin to location.  | ||
|  |     """
 | ||
|  | 
 | ||
|  |     bl_idname = 'LNRaycastRayNode' | ||
|  |     bl_label = 'Raycast Ray' | ||
|  |     lnx_section = 'props' | ||
|  |     lnx_version = 1 | ||
|  | 
 | ||
|  |     def lnx_init(self, context): | ||
|  |         self.add_input('LnxNodeSocketAction', 'In') | ||
|  |         self.add_input('LnxNodeSocketArray', 'Obj Array') | ||
|  |         self.add_input('LnxVectorSocket', 'Origin') | ||
|  |         self.add_input('LnxVectorSocket', 'Direction') | ||
|  |          | ||
|  |         self.add_output('LnxNodeSocketAction', 'Out') | ||
|  |         self.add_output('LnxNodeSocketAction', 'True') | ||
|  |         self.add_output('LnxNodeSocketAction', 'False') | ||
|  |         self.add_output('LnxNodeSocketObject', 'Object') | ||
|  |         self.add_output('LnxVectorSocket', 'Location') | ||
|  |         self.add_output('LnxFloatSocket', 'Distance') |