class ObjectController(Leap.Listener): def __init__(self): super(ObjectController, self).__init__() self.nb_hands = MixedFilter([ NoiseFilter(10, 0.3, 10), LowpassFilter(0.5)]) self.grab = GrabLogic() self.scale = ScaleLogic() def on_init(self, controller): pass def on_exit(self, controller): pass def on_frame(self, controller): frame = controller.frame() self.nb_hands.add_value(len(frame.hands)) # 1 hand for grab, 2 for scale if self.nb_hands.around(1, 0.1): self.grab.frame(frame) elif self.nb_hands.around(2, 0.1): self.scale.frame(frame) else: self.grab.reset() self.scale.reset()
class ObjectController(Leap.Listener): def __init__(self): super(ObjectController, self).__init__() self.nb_hands = MixedFilter( [NoiseFilter(10, 0.3, 10), LowpassFilter(0.5)]) self.grab = GrabLogic() self.scale = ScaleLogic() def on_init(self, controller): pass def on_exit(self, controller): pass def on_frame(self, controller): frame = controller.frame() self.nb_hands.add_value(len(frame.hands)) # 1 hand for grab, 2 for scale if self.nb_hands.around(1, 0.1): self.grab.frame(frame) elif self.nb_hands.around(2, 0.1): self.scale.frame(frame) else: self.grab.reset() self.scale.reset()
class ClosingHand(object): def __init__(self): self.nb_fingers = MixedFilter([NoiseFilter(100, 0.3, 10), LowpassFilter(0.9)]) def frame(self, hand): fingers = hand.fingers self.nb_fingers.add_value(len(fingers)) def reset(self): self.nb_fingers.empty() def is_done(self): if self.nb_fingers.around(3.0, 0.5) and self.nb_fingers.derivative < -0.012: return True return False
class ClosingHand(object): def __init__(self): self.nb_fingers = MixedFilter( [NoiseFilter(100, 0.3, 10), LowpassFilter(0.9)]) def frame(self, hand): fingers = hand.fingers self.nb_fingers.add_value(len(fingers)) def reset(self): self.nb_fingers.empty() def is_done(self): if self.nb_fingers.around(3.0, 0.5) \ and self.nb_fingers.derivative < -0.012: return True return False