Leap Motion

Understanding the C++ Sample Application – 4. Listener 클래스 서브클래싱하기

원문과 원문에서 가져와 본 글에 사용한 영상 및 기타 자료들의 저작권은 Leap Motion에 있습니다.

Listener 클래스 서브클래싱하기

예제 프로그램에서는 Leap::Listener 서브클래싱한 SampleListener를 정의하여 사용하고 있습니다. Leap으로부터 뽑아온 이벤트를 처리하는 콜백함수가 구현되어있죠. 이벤트는 아래를 포함합니다.

  • onInit - 딱 한번 발생하는데, controller에 등록된 listener가 초기화되었을 때 발생
  • onConnect - controller에 Leap이 연결되고, 모션 추적 데이터를 보낼 준비가 되었을 때 발생
  • onDisconnect - controller가 Leap에서 분리될 때
  • onExit - listener가 controller에서 제거될 때
  • onFrame - 새로운 프레임이 들어왔을 때

라이프 사이클과 관련된 3가지 이벤트 콜백 함수(onInit, onDisconnect, onExit)가 발생하면 예제 프로글매은 표준 출력으로 메시지를 뿌리게 되어있습니다. 또한 onConnect가 발생하면 모든 제스쳐 타입을 인식할 수 있도록 활성화시킵니다. 마지막으로 onFrame 이벤트에 대해서는 가장 최근 프레임 데이터를 가져와서 인식된 물체에 대한 정보를 출력하도록 합니다.

SampleListner 클래스의 소스를 아래에 싣습니다. 구현에 참고가 될 것입니다. onFrame 함수의 내용은 이어지는 글에서 살펴볼 것이므로 생략하도록 하겠습니다.

앞에서 생성한 controller와 onFrame의 속은 비었지만 만들어진 SampleListener를 이용하면 이벤트가 발생을 눈으로 확인할 수 있습니다. onFrame 안에다가 cout 한줄만 대충 써 넣으시면 onInit 이벤트와 접속이 될 때의 onConnect, 매 프레임마다 들어오는 onFrame, 종료 시 onExit 를 모두 출력 창에서 확인할 수 있습니다.


Add a Comment Trackback