public void removeTuioBlob(TuioBlob tblb) { lock (_lockObj) { _eventQueue.Enqueue(new TuioEvent(ETuioEventType.REMOVE_BLOB, tblb)); } }
public void updateTuioBlob(TuioBlob b) { if (verbose) { Console.WriteLine("set blb " + b.BlobID + " (" + b.SessionID + ") " + b.X + " " + b.Y + " " + b.Angle + " " + b.Width + " " + b.Height + " " + b.Area + " " + b.MotionSpeed + " " + b.RotationSpeed + " " + b.MotionAccel + " " + b.RotationAccel); } }
public void addTuioBlob(TuioBlob tblb) { lock (_lockObj) { _eventQueue.Enqueue(new TuioEvent(ETuioEventType.ADD_BLOB, tblb)); } }
public void updateTuioBlob(TuioBlob tblb) { lock (_lockObj) { _eventQueue.Enqueue(new TuioEvent(ETuioEventType.UPDATE_BLOB, tblb)); } }
public void removeTuioBlob(TuioBlob b) { lock (blobSync) { blobList.Remove(b.SessionID); } //Debug.Log("del blb " + b.BlobID + " (" + b.SessionID + ")"); }
public void addTuioBlob(TuioBlob b) { lock (blobSync) { blobList.Add(b.SessionID, b); } //Debug.Log("add blb " + b.BlobID + " (" + b.SessionID + ") " + b.X + " " + b.Y + " " + b.Angle + " " + b.Width + " " + b.Height + " " + b.Area); }
public void removeTuioBlob(TuioBlob b) { lock (blobList) { blobList.Remove(b.SessionID); } if (verbose) { Console.WriteLine("del blb " + b.BlobID + " (" + b.SessionID + ")"); } }
public void addTuioBlob(TuioBlob b) { lock (blobList) { blobList.Add(b.SessionID, b); } if (verbose) { Console.WriteLine("add blb " + b.BlobID + " (" + b.SessionID + ") " + b.X + " " + b.Y + " " + b.Angle + " " + b.Width + " " + b.Height + " " + b.Area); } }
private void updateBlobProperties(TouchPoint touch, TuioBlob blob) { var props = touch.Properties; props["Angle"] = blob.Angle; props["Width"] = blob.Width; props["Height"] = blob.Height; props["Area"] = blob.Area; props["RotationVelocity"] = blob.RotationVelocity; props["RotationAcceleration"] = blob.RotationAcceleration; }
public void removeTuioBlob(TuioBlob b) { }
public TuioEventBlobArgs(TuioBlob theTuioBlob) { tuioBlob = theTuioBlob; }
public void addTuioBlob(TuioBlob b) { }
public void updateTuioBlob(TuioBlob b) { }
public void addTuioBlob(TuioBlob tblb) { //Debugger.Break(); }
public void addTuioBlob(TuioBlob tblb) { Console.WriteLine("add blb " + tblb.BlobID + " (" + tblb.SessionID + ") " + tblb.X + " " + tblb.Y + " " + tblb.Angle + " " + tblb.Width + " " + tblb.Height + " " + tblb.Area); }
//here we go, thats the method called by vvvv each frame //all data handling should be in here public void Evaluate(int SpreadMax) { //if any of the inputs has changed //recompute the outputs if (FTUIOPacketInput.PinIsChanged) { string currentPacket; FTUIOPacketInput.GetString(0, out currentPacket); if (currentPacket == "" || currentPacket == null) { return; } int tuioPosition = currentPacket.IndexOf("#bundle"); if (tuioPosition == -1) { return; } while ((tuioPosition = currentPacket.IndexOf("#bundle")) >= 0) { int nextpos = currentPacket.IndexOf("#bundle", tuioPosition + 1); string currentSeperatedPacket = ""; if (nextpos == -1) { currentSeperatedPacket = currentPacket; currentPacket = ""; } else { currentSeperatedPacket = currentPacket.Substring(tuioPosition, nextpos - tuioPosition); currentPacket = currentPacket.Substring(nextpos); } OSC.NET.OSCPacket packet = OSC.NET.OSCPacket.Unpack(Encoding.Default.GetBytes(currentSeperatedPacket)); if (packet.IsBundle()) { ArrayList messages = packet.Values; for (int i = 0; i < messages.Count; i++) { FTuioClient.ProcessMessage((OSC.NET.OSCMessage)messages[i]); } } else { FTuioClient.ProcessMessage((OSC.NET.OSCMessage)packet); } } } List <TuioCursor> cursors = FTuioClient.getTuioCursors(); List <TuioObject> objects = FTuioClient.getTuioObjects(); List <TuioBlob> blobs = FTuioClient.getTuioBlobs(); int slicecount = cursors.Count + objects.Count + blobs.Count; FSessionIDOut.SliceCount = slicecount; FClassIDOut.SliceCount = slicecount; FUniqueIDOut.SliceCount = slicecount; FPosXOut.SliceCount = slicecount; FPosYOut.SliceCount = slicecount; FWidthOut.SliceCount = slicecount; FHeightOut.SliceCount = slicecount; FAreaOut.SliceCount = slicecount; FAngleOut.SliceCount = slicecount; FMovementXOut.SliceCount = slicecount; FMovementYOut.SliceCount = slicecount; FMotionAccelerationOut.SliceCount = slicecount; FRotationAccelerationOut.SliceCount = slicecount; FMotionSpeedOut.SliceCount = slicecount; FRotationSpeedOut.SliceCount = slicecount; int curindex = 0; for (int i = 0; i < cursors.Count; i++) { TuioCursor cur = cursors[i]; FSessionIDOut.SetValue(curindex, cur.getSessionID()); FClassIDOut.SetValue(curindex, 0); FUniqueIDOut.SetValue(curindex, cur.getFingerID()); FPosXOut.SetValue(curindex, cur.getPosition().getX() * 2 - 1); FPosYOut.SetValue(curindex, -cur.getPosition().getY() * 2 + 1); FAngleOut.SetValue(curindex, 0); FMovementXOut.SetValue(curindex, cur.getXSpeed()); FMovementYOut.SetValue(curindex, cur.getYSpeed()); FMotionAccelerationOut.SetValue(curindex, cur.getMotionAccel()); FRotationAccelerationOut.SetValue(curindex, 0); FMotionSpeedOut.SetValue(curindex, cur.getMotionSpeed()); FRotationSpeedOut.SetValue(curindex, 0); curindex++; } int objectOffset = 1000; for (int i = 0; i < objects.Count; i++) { TuioObject obj = objects[i]; FSessionIDOut.SetValue(curindex, obj.getSessionID()); FClassIDOut.SetValue(curindex, 1); FUniqueIDOut.SetValue(curindex, obj.getFiducialID() + objectOffset); FPosXOut.SetValue(curindex, obj.getPosition().getX() * 2 - 1); FPosYOut.SetValue(curindex, -obj.getPosition().getY() * 2 + 1); FAngleOut.SetValue(curindex, 1 - ((obj.getAngle()) / (Math.PI + Math.PI))); FMovementXOut.SetValue(curindex, obj.getXSpeed()); FMovementYOut.SetValue(curindex, obj.getYSpeed()); FMotionAccelerationOut.SetValue(curindex, obj.getMotionAccel()); FRotationAccelerationOut.SetValue(curindex, obj.getRotationAccel()); FMotionSpeedOut.SetValue(curindex, obj.getMotionSpeed()); FRotationSpeedOut.SetValue(curindex, obj.getRotationSpeed()); curindex++; } int blobOffset = 2000; for (int i = 0; i < blobs.Count; i++) { TuioBlob blb = blobs[i]; FSessionIDOut.SetValue(curindex, blb.getSessionID()); FClassIDOut.SetValue(curindex, 2); FUniqueIDOut.SetValue(curindex, blb.getBlobID() + blobOffset); FPosXOut.SetValue(curindex, blb.getPosition().getX() * 2 - 1); FPosYOut.SetValue(curindex, -blb.getPosition().getY() * 2 + 1); FWidthOut.SetValue(curindex, blb.getWidth()); FHeightOut.SetValue(curindex, blb.getHeight()); FAreaOut.SetValue(curindex, blb.getArea()); FAngleOut.SetValue(curindex, 1 - ((blb.getAngle()) / (Math.PI + Math.PI))); FMovementXOut.SetValue(curindex, blb.getXSpeed()); FMovementYOut.SetValue(curindex, blb.getYSpeed()); FMotionAccelerationOut.SetValue(curindex, blb.getMotionAccel()); FRotationAccelerationOut.SetValue(curindex, blb.getRotationAccel()); FMotionSpeedOut.SetValue(curindex, blb.getMotionSpeed()); FRotationSpeedOut.SetValue(curindex, blb.getRotationSpeed()); curindex++; } }
/// <inheritdoc /> public override void CancelTouch(TouchPoint touch, bool @return) { base.CancelTouch(touch, @return); lock (this) { TuioCursor cursor = null; foreach (var touchPoint in cursorToInternalId) { if (touchPoint.Value.Id == touch.Id) { cursor = touchPoint.Key; break; } } if (cursor != null) { cancelTouch(touch.Id); if (@return) { cursorToInternalId[cursor] = beginTouch(touch.Position, touch.Tags, false); } else { cursorToInternalId.Remove(cursor); } return; } TuioBlob blob = null; foreach (var touchPoint in blobToInternalId) { if (touchPoint.Value.Id == touch.Id) { blob = touchPoint.Key; break; } } if (blob != null) { cancelTouch(touch.Id); if (@return) { var t = beginTouch(touch.Position, touch.Tags, false); t.Properties = touch.Properties; blobToInternalId[blob] = t; } else { blobToInternalId.Remove(blob); } return; } TuioObject obj = null; foreach (var touchPoint in objectToInternalId) { if (touchPoint.Value.Id == touch.Id) { obj = touchPoint.Key; break; } } if (obj != null) { cancelTouch(touch.Id); if (@return) { var t = beginTouch(touch.Position, touch.Tags, false); t.Properties = touch.Properties; objectToInternalId[obj] = t; } else { objectToInternalId.Remove(obj); } } } }
public void updateTuioBlob(TuioBlob b) { //Debug.Log("set blb " + b.BlobID + " (" + b.SessionID + ") " + b.X + " " + b.Y + " " + b.Angle + " " + b.Width + " " + b.Height + " " + b.Area + " " + b.MotionSpeed + " " + b.RotationSpeed + " " + b.MotionAccel + " " + b.RotationAccel); }
public void ProcessMessage(OscMessage message) { if (message.Address != "/tuio/2Dblb") { return; } var command = message.Data[0].ToString(); switch (command) { case "set": if (message.Data.Count < 13) { return; } var id = (int)message.Data[1]; var xPos = (float)message.Data[2]; var yPos = (float)message.Data[3]; var angle = (float)message.Data[4]; var width = (float)message.Data[5]; var height = (float)message.Data[6]; var area = (float)message.Data[7]; var velocityX = (float)message.Data[8]; var velocityY = (float)message.Data[9]; var rotationVelocity = (float)message.Data[10]; var acceleration = (float)message.Data[11]; var rotationAcceleration = (float)message.Data[12]; TuioBlob blob; if (!blobs.TryGetValue(id, out blob)) { blob = new TuioBlob(id); } blob.Update(xPos, yPos, angle, width, height, area, velocityX, velocityY, rotationVelocity, acceleration, rotationAcceleration); updatedBlobs.Add(blob); break; case "alive": var total = message.Data.Count; for (var i = 1; i < total; i++) { addedBlobs.Add((int)message.Data[i]); } foreach (KeyValuePair <int, TuioBlob> value in blobs) { if (!addedBlobs.Contains(value.Key)) { removedBlobs.Add(value.Key); } addedBlobs.Remove(value.Key); } break; case "fseq": if (message.Data.Count < 2) { return; } FrameNumber = (int)message.Data[1]; var count = updatedBlobs.Count; for (var i = 0; i < count; i++) { var updatedBlob = updatedBlobs[i]; if (addedBlobs.Contains(updatedBlob.Id) && !blobs.ContainsKey(updatedBlob.Id)) { blobs.Add(updatedBlob.Id, updatedBlob); if (BlobAdded != null) { BlobAdded(this, new TuioBlobEventArgs(updatedBlob)); } } else { if (BlobUpdated != null) { BlobUpdated(this, new TuioBlobEventArgs(updatedBlob)); } } } count = removedBlobs.Count; for (var i = 0; i < count; i++) { var blobId = removedBlobs[i]; blob = blobs[blobId]; blobs.Remove(blobId); if (BlobRemoved != null) { BlobRemoved(this, new TuioBlobEventArgs(blob)); } } addedBlobs.Clear(); removedBlobs.Clear(); updatedBlobs.Clear(); break; } }
public void addTuioBlob(TuioBlob tblb) { }
public void updateTuioBlob(TuioBlob tblb) { //Do nothing }
public void removeTuioBlob(TuioBlob tblb) { //Do nothing }
/// <inheritdoc /> public override bool CancelPointer(Pointer pointer, bool shouldReturn) { base.CancelPointer(pointer, shouldReturn); lock (this) { if (pointer.Type == Pointer.PointerType.Touch) { TuioCursor cursor = null; foreach (var touchPoint in cursorToInternalId) { if (touchPoint.Value.Id == pointer.Id) { cursor = touchPoint.Key; break; } } if (cursor != null) { cancelPointer(pointer); if (shouldReturn) { cursorToInternalId[cursor] = internalReturnTouch(pointer as TouchPointer); } else { cursorToInternalId.Remove(cursor); } return(true); } return(false); } TuioObject obj = null; foreach (var touchPoint in objectToInternalId) { if (touchPoint.Value.Id == pointer.Id) { obj = touchPoint.Key; break; } } if (obj != null) { cancelPointer(pointer); if (shouldReturn) { objectToInternalId[obj] = internalReturnObject(pointer as ObjectPointer, pointer.Position); } else { objectToInternalId.Remove(obj); } return(true); } TuioBlob blob = null; foreach (var touchPoint in blobToInternalId) { if (touchPoint.Value.Id == pointer.Id) { blob = touchPoint.Key; break; } } if (blob != null) { cancelPointer(pointer); if (shouldReturn) { blobToInternalId[blob] = internalReturnObject(pointer as ObjectPointer, pointer.Position); } else { blobToInternalId.Remove(blob); } return(true); } return(false); } }
public void removeTuioBlob(TuioBlob tblb) { }
private void updateBlobProperties(ObjectPointer obj, TuioBlob target) { obj.Width = target.Width; obj.Height = target.Height; obj.Angle = target.Angle; }
public TuioBlobEventArgs(TuioBlob blob) { Blob = blob; }
public void updateTuioBlob(TuioBlob tblb) { }
public void removeTuioBlob(TuioBlob tblb) { Console.WriteLine("del blb " + tblb.BlobID + " (" + tblb.SessionID + ")"); }