def onMouseEvent(self, kwargs): bType = self.onSelection(kwargs) #error: KeyError: ('selection',).
bType = self.node.geometry().selection() #prints out None
I need a way to get a True or False if there is something selected.
def onMouseEvent(self, kwargs): bType = self.onSelection(kwargs) #error: KeyError: ('selection',).
bType = self.node.geometry().selection() #prints out None
def onMouseEvent(self, kwargs): """ Process mouse events """ ui_event = kwargs["ui_event"] device = ui_event.device() origin, direction = ui_event.ray() inputs = self.node.inputs() reason = ui_event.reason() # Only try intersecting geometry if this node has input geo_intersector = None if inputs and inputs[0]: geometry = inputs[0].geometry() geo_intersector = su.GeometryIntersector(geometry, scene_viewer=self.scene_viewer) isGeo = None if geo_intersector: isGeo = geo_intersector.intersect(origin, direction) position = geo_intersector.position if self.bSel == True: #Create/move point if LMB is down if device.isLeftButton(): if isGeo == True: self.start() self.setPoint(self.index, position) else: self.finish() elif self.MouseDragAction == True and self.bSel == False: if device.isLeftButton(): if isGeo == True and self.noSel == True: self.setPointPos(position, self.CurrentPt) if reason == hou.uiEventReason.Changed: # <--- when the position is changed or stopped dragging the point isnt selected anymore so when the user lets go of left mouse button. self.noSel = False self.CurrentPt = None else: self.finish() # Must return True to consume the event return self.bSel