示例#1
0
void XN_CALLBACK_TYPE UserTracker::calibrationEndCB( xn::SkeletonCapability &capability, XnUserID nId, XnBool bSuccess, void *pCookie )
{
	app::console() << "calibration end " << nId << " status " << bSuccess << endl;
	UserTracker::Obj *obj = static_cast<UserTracker::Obj *>(pCookie);

	if (bSuccess)
	{
		// Calibration succeeded
		app::console() << "calibration complete for user " << nId << endl;
		obj->mUserGenerator.GetSkeletonCap().StartTracking(nId);
	}
	else
	{
		// Calibration failed
		app::console() << "calibration failed for user " << nId << endl;
		if (Obj::sNeedPose)
		{
			obj->mUserGenerator.GetPoseDetectionCap().StartPoseDetection(Obj::sCalibrationPose, nId);
		}
		else
		{
			obj->mUserGenerator.GetSkeletonCap().RequestCalibration(nId, TRUE);
		}
	}

	for ( list< Listener *>::const_iterator i = obj->mListeners.begin();
			i != obj->mListeners.end(); ++i )
	{
		(*i)->calibrationEnd( UserEvent( nId ) );
	}
}
示例#2
0
void XN_CALLBACK_TYPE UserTracker::lostUserCB( xn::UserGenerator &generator, XnUserID nId, void *pCookie )
{
	app::console() << "lost user " << nId << endl;
	UserTracker::Obj *obj = static_cast<UserTracker::Obj *>(pCookie);
	for ( list< Listener *>::const_iterator i = obj->mListeners.begin();
			i != obj->mListeners.end(); ++i )
	{
		(*i)->lostUser( UserEvent( nId ) );
	}
}
示例#3
0
void XN_CALLBACK_TYPE UserTracker::calibrationStartCB( xn::SkeletonCapability &capability, XnUserID nId, void *pCookie )
{
	app::console() << "calibration start " << nId << endl;

	UserTracker::Obj *obj = static_cast<UserTracker::Obj *>(pCookie);
	for ( list< Listener *>::const_iterator i = obj->mListeners.begin();
			i != obj->mListeners.end(); ++i )
	{
		(*i)->calibrationStart( UserEvent( nId ) );
	}
}
示例#4
0
void XN_CALLBACK_TYPE UserTracker::newUserCB( xn::UserGenerator &generator, XnUserID nId, void *pCookie )
{
	app::console() << "new user " << nId << endl;
	UserTracker::Obj *obj = static_cast<UserTracker::Obj *>(pCookie);

	if (Obj::sNeedPose)
	{
		obj->mUserGenerator.GetPoseDetectionCap().StartPoseDetection(Obj::sCalibrationPose, nId);
	}
	else
	{
		obj->mUserGenerator.GetSkeletonCap().RequestCalibration(nId, TRUE);
	}

	for ( list< Listener *>::const_iterator i = obj->mListeners.begin();
			i != obj->mListeners.end(); ++i )
	{
		(*i)->newUser( UserEvent( nId ) );
	}
}
 void GraphicsWindow::OnUserEvent( Ill::Core::UserEventArgs& e )
 {
     UserEvent( e );
 }