예제 #1
0
파일: testApp.cpp 프로젝트: firmread/3dsav
//--------------------------------------------------------------
void testApp::keyPressed(int key){
	switch (key) {
		case 's':
			if (isRecording) {
				oniRecorder.stopRecord();
				isRecording = false;
				break;
			} else {
				setupRecording(generateFileName());
				oniRecorder.startRecord(currentFileName);
				isRecording = true;
				break;
			}
			break;
		case 'p':
			if (currentFileName != "" && !isRecording && isLive) {
				setupPlayback(currentFileName);
				isLive = false;
			} else {
				isLive = true;
			}
			break;
		default:
			break;
	}	
}
void oniActorApp::processOpenFileSelection(ofFileDialogResult openFileResult)
{
	ofLogVerbose("getName(): "  + openFileResult.getName());
	ofLogVerbose("getPath(): "  + openFileResult.getPath());
	ofFile file (openFileResult.getPath());
    if (file.exists())
    {
        setupPlayback(openFileResult.getPath());
        isLive = false;
    } else {
        ofLogVerbose("Problem with openFileResult: " + openFileResult.getName());
    }
}
//--------------------------------------------------------------
void motionDetector::setup() {

    // hand position tracking for Ryan
    myfile.open ("handPosition.txt");
//	img.allocate(640,480);

    countElapsedPlucks = 0;
    lastObjectTouched = -1;
    for (int i=0; i<12; i++) {
        timeObjectWasLastTouched[i] = 0;
    }

    // set background color
    ofBackground(0, 0, 0);

    isRecording = false;
    isTracking		= false;
    isTrackingHands	= true;
    isFiltering		= false;
    isMasking		= true;
    nearThreshold = 200;
    farThreshold  = 1000;
    filterFactor = 0.1f;

    pluckParams.pos = 0;
    pluckParams.vel = 0;
    pluckParams.acc = 0;
    pluckParams.index = 0;

    if (filename=="")
    {
        cout << "no .oni filename detected in cmd-line, running setupRecording() \n";
        isLive = true;
        setupRecording();
    }
    else
    {
        cout << ".oni filename detected in cmd-line, running setupPlayback(filename) \n";
        isLive = false;
        setupPlayback(filename);
    }

    setupDetectors();

}
예제 #4
0
//--------------------------------------------------------------
void testApp::keyPressed(int key){

	float smooth;

	switch (key) {
#ifdef TARGET_OSX // only working on Mac at the moment
		case 357: // up key
			hardware.setTiltAngle(hardware.tilt_angle++);
			break;
		case 359: // down key
			hardware.setTiltAngle(hardware.tilt_angle--);
			break;
#endif
		case 's':
		case 'S':
			if (isRecording) {
				oniRecorder.stopRecord();
				isRecording = false;
				break;
			} else {
				oniRecorder.startRecord(generateFileName());
				isRecording = true;
				break;
			}
			break;
		case 'p':
		case 'P':
			if (oniRecorder.getCurrentFileName() != "" && !isRecording && isLive) {
				setupPlayback(oniRecorder.getCurrentFileName());
				isLive = false;
			} else {
				isLive = true;
			}
			break;
		case 't':
		case 'T':
			isTracking = !isTracking;
			break;
		case 'h':
		case 'H':
			isTrackingHands = !isTrackingHands;
			if(isLive) recordHandTracker.toggleTrackHands();
			if(!isLive) playHandTracker.toggleTrackHands();
			break;
		case 'f':
		case 'F':
			isFiltering = !isFiltering;
			recordHandTracker.isFiltering = isFiltering;
			playHandTracker.isFiltering = isFiltering;
			break;
		case 'm':
		case 'M':
			isMasking = !isMasking;
			recordUser.setUseMaskPixels(isMasking);
			playUser.setUseMaskPixels(isMasking);
			break;
		case 'c':
		case 'C':
			isCloud = !isCloud;
			recordUser.setUseCloudPoints(isCloud);
			playUser.setUseCloudPoints(isCloud);
			break;
		case 'b':
		case 'B':
			isCPBkgnd = !isCPBkgnd;
			break;
		case '9':
		case '(':
			smooth = recordUser.getSmoothing();
			if (smooth - 0.1f > 0.0f) {
				recordUser.setSmoothing(smooth - 0.1f);
				playUser.setSmoothing(smooth - 0.1f);
			}
			break;
		case '0':
		case ')':
			smooth = recordUser.getSmoothing();
			if (smooth + 0.1f <= 1.0f) {
				recordUser.setSmoothing(smooth + 0.1f);
				playUser.setSmoothing(smooth + 0.1f);
			}
			break;
		case '[':
		//case '{':
			if (filterFactor - 0.1f > 0.0f) {
				filterFactor = filterFactor - 0.1f;
				recordHandTracker.setFilterFactors(filterFactor);
				if (oniRecorder.getCurrentFileName() != "") playHandTracker.setFilterFactors(filterFactor);
			}
			break;
		case ']':
		//case '}':
			if (filterFactor + 0.1f <= 1.0f) {
				filterFactor = filterFactor + 0.1f;
				recordHandTracker.setFilterFactors(filterFactor);
				if (oniRecorder.getCurrentFileName() != "") playHandTracker.setFilterFactors(filterFactor);
			}
			break;
		case ';':
		case ':':
			smooth = recordHandTracker.getSmoothing();
			if (smooth - 0.1f > 0.0f) {
				recordHandTracker.setSmoothing(smooth -  0.1f);
				playHandTracker.setSmoothing(smooth -  0.1f);
			}
			break;
		case '\'':
		case '\"':
			smooth = recordHandTracker.getSmoothing();
			if (smooth + 0.1f <= 1.0f) {
				recordHandTracker.setSmoothing(smooth +  0.1f);
				playHandTracker.setSmoothing(smooth +  0.1f);
			}
			break;
		case '>':
		case '.':
			farThreshold += 50;
			if (farThreshold > recordDepth.getMaxDepth()) farThreshold = recordDepth.getMaxDepth();
			break;
		case '<':
		case ',':
			farThreshold -= 50;
			if (farThreshold < 0) farThreshold = 0;
			break;

		case '+':
		case '=':
			nearThreshold += 50;
			if (nearThreshold > recordDepth.getMaxDepth()) nearThreshold = recordDepth.getMaxDepth();
			break;

		case '-':
		case '_':
			nearThreshold -= 50;
			if (nearThreshold < 0) nearThreshold = 0;
			break;
		case 'r':
			recordContext.toggleRegisterViewport();
			break;
            
        case 'z':
        case 'Z':
			ofToggleFullscreen(); 
			break;
            
		case 'x':
        case 'X':
            gui->toggleVisible();            
			break;
            
		default:
			break;
	}
}
//--------------------------------------------------------------
void motionDetector::keyPressed(int key) {
    float smooth;
    switch (key) {

    case 's':
    case 'S':
        if (isRecording) {
            oniRecorder.stopRecord();
            isRecording = false;
            break;
        } else {
            oniRecorder.startRecord(generateFileName());
            isRecording = true;
            break;
        }
        break;
    case 'p':
    case 'P':
        if (oniRecorder.getCurrentFileName() != "" && !isRecording && isLive) {
            setupPlayback(oniRecorder.getCurrentFileName());
            isLive = false;
        } else {
            isLive = true;
        }
        break;
    case 't':
    case 'T':
        isTracking = !isTracking;
        break;
    case 'h':
    case 'H':
        isTrackingHands = !isTrackingHands;
        if(isLive) recordHandTracker.toggleTrackHands();
        if(!isLive) playHandTracker.toggleTrackHands();
        break;
    case 'f':
    case 'F':
        isFiltering = !isFiltering;
        recordHandTracker.isFiltering = isFiltering;
        playHandTracker.isFiltering = isFiltering;
        break;
    case '9':
    case '(':
        smooth = recordUser.getSmoothing();
        if (smooth - 0.1f > 0.0f) {
            recordUser.setSmoothing(smooth - 0.1f);
            playUser.setSmoothing(smooth - 0.1f);
        }
        break;
    case '0':
    case ')':
        smooth = recordUser.getSmoothing();
        if (smooth + 0.1f <= 1.0f) {
            recordUser.setSmoothing(smooth + 0.1f);
            playUser.setSmoothing(smooth + 0.1f);
        }
        break;
    case '[':
    case '{':
        if (filterFactor - 0.1f > 0.0f) {
            filterFactor = filterFactor - 0.1f;
            recordHandTracker.setFilterFactors(filterFactor);
            if (oniRecorder.getCurrentFileName() != "") playHandTracker.setFilterFactors(filterFactor);
        }
        break;
    case ']':
    case '}':
        if (filterFactor + 0.1f <= 1.0f) {
            filterFactor = filterFactor + 0.1f;
            recordHandTracker.setFilterFactors(filterFactor);
            if (oniRecorder.getCurrentFileName() != "") playHandTracker.setFilterFactors(filterFactor);
        }
        break;
    case ';':
    case ':':
        smooth = recordHandTracker.getSmoothing();
        if (smooth - 0.1f > 0.0f) {
            recordHandTracker.setSmoothing(smooth -  0.1f);
            playHandTracker.setSmoothing(smooth -  0.1f);
        }
        break;
    case '\'':
    case '\"':
        smooth = recordHandTracker.getSmoothing();
        if (smooth + 0.1f <= 1.0f) {
            recordHandTracker.setSmoothing(smooth +  0.1f);
            playHandTracker.setSmoothing(smooth +  0.1f);
        }
        break;
    case '>':
    case '.':
        farThreshold += 50;
        if (farThreshold > recordDepth.getMaxDepth()) farThreshold = recordDepth.getMaxDepth();
        break;
    case '<':
    case ',':
        farThreshold -= 50;
        if (farThreshold < 0) farThreshold = 0;
        break;
    case '+':
    case '=':
        nearThreshold += 50;
        if (nearThreshold > recordDepth.getMaxDepth()) nearThreshold = recordDepth.getMaxDepth();
        break;
    case '-':
    case '_':
        nearThreshold -= 50;
        if (nearThreshold < 0) nearThreshold = 0;
        break;
    case 'r':
        recordContext.toggleRegisterViewport();
        break;
    case 'Q':
    case 'q':
        myfile.close();
        break;
    default:
        break;
    }
}