38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
from lnx.logicnode.lnx_nodes import *
|
|
|
|
class TouchInRegionNode(LnxLogicTreeNode):
|
|
"""Detect touch in specific region.
|
|
|
|
@input Center X/Y: The position of the center in pixels.
|
|
@input Width: Width of the region in pixels.
|
|
@input Height: Height of the region in pixels.
|
|
@input Angle: Rotation angle in radians. Rotation is clockwise.
|
|
|
|
@output On Enter: Activated after the cursor enters the region.
|
|
@output On Exit: Activated after the cursor exits the region.
|
|
@output Is Inside: True if inside the region. False otherwise.
|
|
"""
|
|
bl_idname = 'LNTouchInRegionNode'
|
|
bl_label = 'Touch In Region'
|
|
lnx_section = 'surface'
|
|
lnx_version = 1
|
|
|
|
property0: HaxeEnumProperty(
|
|
'property0',
|
|
items = [('rectangle', 'Rectangle', 'Rectangular region'),
|
|
('ellipse', 'Ellipse', 'Elliptical or Circular region')],
|
|
name='', default='rectangle')
|
|
|
|
def lnx_init(self, context):
|
|
self.add_input('LnxFloatSocket', 'Center X')
|
|
self.add_input('LnxFloatSocket', 'Center Y')
|
|
self.add_input('LnxFloatSocket', 'Width')
|
|
self.add_input('LnxFloatSocket', 'Height')
|
|
self.add_input('LnxFloatSocket', 'Angle')
|
|
self.add_output('LnxNodeSocketAction', 'On Enter')
|
|
self.add_output('LnxNodeSocketAction', 'On Exit')
|
|
self.add_output('LnxBoolSocket', 'Is Inside')
|
|
|
|
def draw_buttons(self, context, layout):
|
|
layout.prop(self, 'property0')
|