Ejemplo n.º 1
0
    FREObject LeapNative_isGestureEnabled(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]) {
        leapnative::LNLeapDevice* device;
        FREGetContextNativeData(ctx, (void **) &device);
        
        int gestureClassType;
        FREGetObjectAsInt32(argv[0], &gestureClassType);
        
        bool gestureEnabled;

        switch (gestureClassType) {
            case 5:
                gestureEnabled = device->controller->isGestureEnabled(Gesture::TYPE_SWIPE);
                break;
            case 6:
                gestureEnabled = device->controller->isGestureEnabled(Gesture::TYPE_CIRCLE);
                break;
            case 7:
                gestureEnabled = device->controller->isGestureEnabled(Gesture::TYPE_SCREEN_TAP);
                break;
            case 8:
                gestureEnabled = device->controller->isGestureEnabled(Gesture::TYPE_KEY_TAP);
                break;
            default:
                std::cout << "LeapNative_isGestureEnabled: invalid argument" << std::endl;
                gestureEnabled = false;
                break;
        }
        
        return createFREObjectForBool(gestureEnabled);
    }
Ejemplo n.º 2
0
FREObject AKOpenNIUserFrameGenerator::getFREObject()
{
	FREObject freUserFrame, freUsers;

	FRENewObject( (const uint8_t*) _asUserFrameClass, 0, NULL, &freUserFrame, NULL);

	FRESetObjectProperty(freUserFrame, (const uint8_t*) "frameNumber", createFREObjectForUnsignedInt(_userFrame->frameNumber), NULL);
	FRESetObjectProperty(freUserFrame, (const uint8_t*) "timeStamp", createFREObjectForUnsignedInt(_userFrame->timeStamp), NULL);
    
	FRENewObject( (const uint8_t*) "Vector.<com.as3nui.nativeExtensions.air.kinect.data.User>", 0, NULL, &freUsers, NULL);

	int trackedSkeletons = 0;
	for(int i = 0; i < _userFrame->maxSkeletons; i++)
	{
		AKOpenNIUser* user = &_openNIUserFrame->openNIUsers[i];
		if(user->user->isTracking)
		{
			FREObject freUser, freJoints, freBones;

			FRENewObject( (const uint8_t*) _asUserClass, 0, NULL, &freUser, NULL);

			FRESetObjectProperty(freUser, (const uint8_t*) "framework", createFREObjectForUTF8(_framework), NULL);
			FRESetObjectProperty(freUser, (const uint8_t*) "userID", createFREObjectForUnsignedInt(user->user->userID), NULL);
			FRESetObjectProperty(freUser, (const uint8_t*) "trackingID", createFREObjectForUnsignedInt(user->user->trackingID), NULL);
			FRESetObjectProperty(freUser, (const uint8_t*) "position", user->user->position.asFREObject(), NULL);
			FRESetObjectProperty(freUser, (const uint8_t*) "hasSkeleton", createFREObjectForBool(user->user->hasSkeleton), NULL);

			FRENewObject( (const uint8_t*) "Vector.<com.as3nui.nativeExtensions.air.kinect.data.SkeletonJoint>", 0, NULL, &freJoints, NULL);

			for(int j = 0; j < user->user->numJoints; j++)
			{
				AKOpenNISkeletonJoint* skeletonJoint = &user->openNISkeletonJoints[j];

				FREObject freJoint;
				FRENewObject( (const uint8_t*) _asJointClass, 0, NULL, &freJoint, NULL);

				FRESetObjectProperty(freJoint, (const uint8_t*) "name", createFREObjectForUTF8(_jointNames[skeletonJoint->skeletonJoint->jointNameIndex]), NULL);
				FRESetObjectProperty(freJoint, (const uint8_t*) "position", skeletonJoint->skeletonJoint->position.asFREObject(), NULL);
				FRESetObjectProperty(freJoint, (const uint8_t*) "positionConfidence", createFREObjectForDouble(skeletonJoint->skeletonJoint->positionConfidence), NULL);
				
				FRESetObjectProperty(freJoint, (const uint8_t*) "nativeOrientationConfidence", createFREObjectForDouble(skeletonJoint->orientationConfidence), NULL);
				FRESetObjectProperty(freJoint, (const uint8_t*) "nativeOrientation", skeletonJoint->orientation.asFREObject(), NULL);
				
				FRESetArrayElementAt(freJoints, j, freJoint);
			}

			FRESetObjectProperty(freUser, (const uint8_t*) "skeletonJoints", freJoints, NULL);

			FRENewObject( (const uint8_t*) "Vector.<com.as3nui.nativeExtensions.air.kinect.data.SkeletonBone>", 0, NULL, &freBones, NULL);

			for(int j = 0; j < user->user->numBones; j++)
			{
				AKOpenNISkeletonBone* skeletonBone = &user->openNISkeletonBones[j];
				FREObject freBone;
				FRENewObject( (const uint8_t*) _asBoneClass, 0, NULL, &freBone, NULL);

				FRESetObjectProperty(freBone, (const uint8_t*) "name", createFREObjectForUTF8(_boneNames[skeletonBone->skeletonBone->boneNameIndex]), NULL);
				FRESetObjectProperty(freBone, (const uint8_t*) "orientation", skeletonBone->skeletonBone->orientation.asFREObject(), NULL);
				
				if(skeletonBone->skeletonBone->startJointNameIndex > -1) 
					FRESetObjectProperty(freBone, (const uint8_t*) "startJointName", createFREObjectForUTF8(_jointNames[skeletonBone->skeletonBone->startJointNameIndex]), NULL);
				
				if(skeletonBone->skeletonBone->endJointNameIndex > -1) 
					FRESetObjectProperty(freBone, (const uint8_t*) "endJointName", createFREObjectForUTF8(_jointNames[skeletonBone->skeletonBone->endJointNameIndex]), NULL);
				
				if(skeletonBone->skeletonBone->parentBoneNameIndex > -1) 
					FRESetObjectProperty(freBone, (const uint8_t*) "parentBoneName", createFREObjectForUTF8(_boneNames[skeletonBone->skeletonBone->parentBoneNameIndex]), NULL);

				FRESetArrayElementAt(freBones, j, freBone);
			}

			FRESetObjectProperty(freUser, (const uint8_t*) "skeletonBones", freBones, NULL);

			FRESetObjectProperty(freUser, (const uint8_t*) "skeletonJointNameIndices", freGetSkeletonJointNameIndices(), NULL);
			FRESetObjectProperty(freUser, (const uint8_t*) "skeletonJointNames", freGetSkeletonJointNames(), NULL);

			FRESetObjectProperty(freUser, (const uint8_t*) "skeletonBoneNameIndices", freGetSkeletonBoneNameIndices(), NULL);
			FRESetObjectProperty(freUser, (const uint8_t*) "skeletonBoneNames", freGetSkeletonBoneNames(), NULL);

			FRESetArrayElementAt(freUsers, trackedSkeletons, freUser);
			trackedSkeletons++;
		}
	}

	FRESetObjectProperty(freUserFrame, (const uint8_t*) "users", freUsers, NULL);

	return freUserFrame;
}