Exemplo n.º 1
0
void FaceOsc::sendFaceOsc(ofxFaceTracker& tracker) {
    clearBundle();

    if(tracker.getFound()) {
        addMessage("/found", 1);

        ofVec2f position = tracker.getPosition();
        addMessage("/pose/position", position);
        addMessage("/pose/scale", tracker.getScale());
        ofVec3f orientation = tracker.getOrientation();
        addMessage("/pose/orientation", orientation);

        addMessage("/gesture/mouth/width", tracker.getGesture(ofxFaceTracker::MOUTH_WIDTH));
        addMessage("/gesture/mouth/height", tracker.getGesture(ofxFaceTracker::MOUTH_HEIGHT));
        addMessage("/gesture/eyebrow/left", tracker.getGesture(ofxFaceTracker::LEFT_EYEBROW_HEIGHT));
        addMessage("/gesture/eyebrow/right", tracker.getGesture(ofxFaceTracker::RIGHT_EYEBROW_HEIGHT));
        addMessage("/gesture/eye/left", tracker.getGesture(ofxFaceTracker::LEFT_EYE_OPENNESS));
        addMessage("/gesture/eye/right", tracker.getGesture(ofxFaceTracker::RIGHT_EYE_OPENNESS));
        addMessage("/gesture/jaw", tracker.getGesture(ofxFaceTracker::JAW_OPENNESS));
        addMessage("/gesture/nostrils", tracker.getGesture(ofxFaceTracker::NOSTRIL_FLARE));
    } else {
        addMessage("/found", 0);
    }

    sendBundle();
}
Exemplo n.º 2
0
//-------------------------------------------------------------------------------------
void Channel::clearState( bool warnOnDiscard /*=false*/ )
{
	// 清空未处理的接受包缓存
	for(uint8 i=0; i<2; i++)
	{
		if (bufferedReceives_[i].size() > 0)
		{
			BufferedReceives::iterator iter = bufferedReceives_[i].begin();
			int hasDiscard = 0;
			
			for(; iter != bufferedReceives_[i].end(); iter++)
			{
				Packet* pPacket = (*iter);
				if(pPacket->opsize() > 0)
					hasDiscard++;

				if(pPacket->isTCPPacket())
					TCPPacket::ObjPool().reclaimObject(static_cast<TCPPacket*>(pPacket));
				else
					UDPPacket::ObjPool().reclaimObject(static_cast<UDPPacket*>(pPacket));
			}

			if (hasDiscard > 0 && warnOnDiscard)
			{
				WARNING_MSG(fmt::format("Channel::clearState( {} ): "
					"Discarding {} buffered packet(s)\n",
					this->c_str(), hasDiscard));
			}

			bufferedReceives_[i].clear();
		}
	}

	clearBundle();

	lastReceivedTime_ = timestamp();

	isCondemn_ = false;
	numPacketsSent_ = 0;
	numPacketsReceived_ = 0;
	numBytesSent_ = 0;
	numBytesReceived_ = 0;
	lastTickBytesReceived_ = 0;
	proxyID_ = 0;
	strextra_ = "";
	channelType_ = CHANNEL_NORMAL;
	bufferedReceivesIdx_ = 0;

	SAFE_RELEASE(pPacketReader_);
	pFilter_ = NULL;

	stopInactivityDetection();
	this->endpoint(NULL);
}
Exemplo n.º 3
0
void FaceOsc::sendFaceOsc(ofxFaceTracker& tracker) {
    clearBundle();
    
    if(tracker.getFound()) {
        addMessage("/found", 1);
        
        if(bIncludePose) {
            ofVec2f position = tracker.getPosition();
            addMessage("/pose/position", position);
            addMessage("/pose/scale", tracker.getScale());
            ofVec3f orientation = tracker.getOrientation();
            addMessage("/pose/orientation", orientation);
        }
        
        if (bIncludeGestures) {
            addMessage("/gesture/mouth/width", tracker.getGesture(ofxFaceTracker::MOUTH_WIDTH));
            addMessage("/gesture/mouth/height", tracker.getGesture(ofxFaceTracker::MOUTH_HEIGHT));
            addMessage("/gesture/eyebrow/left", tracker.getGesture(ofxFaceTracker::LEFT_EYEBROW_HEIGHT));
            addMessage("/gesture/eyebrow/right", tracker.getGesture(ofxFaceTracker::RIGHT_EYEBROW_HEIGHT));
            addMessage("/gesture/eye/left", tracker.getGesture(ofxFaceTracker::LEFT_EYE_OPENNESS));
            addMessage("/gesture/eye/right", tracker.getGesture(ofxFaceTracker::RIGHT_EYE_OPENNESS));
            addMessage("/gesture/jaw", tracker.getGesture(ofxFaceTracker::JAW_OPENNESS));
            addMessage("/gesture/nostrils", tracker.getGesture(ofxFaceTracker::NOSTRIL_FLARE));
        }
        
        if(bIncludeAllVertices){
            ofVec2f center = tracker.getPosition();
            ofxOscMessage msg;
            msg.setAddress("/raw");
            for(ofVec2f p : tracker.getImagePoints()) {
                if (bNormalizeRaw) {
                    msg.addFloatArg((p.x-center.x)/tracker.getScale());
                    msg.addFloatArg((p.y-center.y)/tracker.getScale());
                }
                else {
                    msg.addFloatArg(p.x);
                    msg.addFloatArg(p.y);
                }
            }
            bundle.addMessage(msg);
        }

    } else {
        addMessage("/found", 0);
    }
    
    sendBundle();
}
Exemplo n.º 4
0
void ofApp::update() {
	if(faceShift.update()) {
		lastPacket = ofGetElapsedTimef();
		timer.tick();
		clearBundle();
		if(faceShift.getFound()) {
			for(int i = 0; i < addresses.size(); i++) {
				addMessage("/gesture" + addresses[i], faceShift.getBlendshapeWeight(i));
			}
			addMessage("/gesture/eye/gaze/left", faceShift.getLeftEyeRotation());
			addMessage("/gesture/eye/gaze/right", faceShift.getRightEyeRotation());
			addMessage("/pose/position", faceShift.getPosition());
			addMessage("/pose/orientation", faceShift.getRotationEuler());
			addMessage("/timestamp", (float) faceShift.getTimestamp());
			addMessage("/found", 1);
		} else {
			addMessage("/found", 0);
		}
		sendBundle();
	}
}
Exemplo n.º 5
0
void Channel::clearState(bool warnOnDiscard)
{
	if (mBufferedReceives.size() > 0)
	{
		BufferedReceives::iterator iter = mBufferedReceives.begin();
		int hasDiscard = 0;

		for(; iter != mBufferedReceives.end(); ++iter)
		{
			Packet* pPacket = (*iter);
			if(pPacket->length() > 0)
				hasDiscard++;

			reclaimPacket(pPacket->isTCPPacket(), pPacket);
		}

		if (hasDiscard > 0 && warnOnDiscard)
		{
			// 			WARNING_MSG(fmt::format("Channel::clearState( {} ): "
			// 				"Discarding {} buffered packet(s)\n",
			// 				this->c_str(), hasDiscard));
		}

		mBufferedReceives.clear();
	}

	clearBundle();

	mLastReceivedTime = timestamp();

	mNumPacketsSent = 0;
	mNumPacketsReceived = 0;
	mNumBytesSent = 0;
	mNumBytesReceived = 0;
	mLastTickBytesReceived = 0;
	proxyID_ = 0;
	mStrExtra = "";
	mChannelType = Chanel_Normal;

	if(mpEndPoint && mProtocolType == Protocol_TCP && !this->isDestroyed())
	{
		this->stopSend();

		if(mpNetworkManager)
		{
			if(!this->isDestroyed())
				mpNetworkManager->dispatcher().deregisterReadFileDescriptor(*mpEndPoint);
		}
	}

	mFlags = 0;
	mpFilter = NULL;

	stopInactivityDetection();

	if(mpEndPoint)
	{
		mpEndPoint->close();
		this->pEndPoint(NULL);
	}
}