private void ProcessObjects(List <RecognizedTangibleMarker> tangibles) { foreach (var tangible in tangibles) { switch (tangible.Type) { case RecognizedTangibleMarker.ActionType.Added: Console.WriteLine($"Tuio object added {tangible.Id}"); var objectToAdd = new TUIOObject(_tuioTransmitter.NextSessionId(), tangible.Id, tangible.center.X, tangible.center.Y, 0.0f, 0f, 0f, 0f, 0f, 0f); objects[tangible.Id] = objectToAdd; _tuioTransmitter.Add(objectToAdd); break; case RecognizedTangibleMarker.ActionType.Updated: Console.WriteLine($"Tuio object Updated {tangible.Id}"); objects[tangible.Id]?.Update(tangible.center.X, tangible.center.Y, 0.0f, 0f, 0f, 0f, 0f, 0f); break; case RecognizedTangibleMarker.ActionType.Removed: Console.WriteLine($"Tuio object Removed {tangible.Id}"); var objectToRemove = objects[tangible.Id]; _tuioTransmitter.Remove(objectToRemove); objects.Remove(tangible.Id); break; default: Console.WriteLine($"ERROR: unkown tangible action type"); break; } } }
// // surface // public void AddToSurface() { if (surface != null) { RemoveFromSurface(); } surface = GetComponentInParent <Surface>(); Vector2 normalisedPosition = surface.GetNormalisedPosition(transform); float angleRads = (transform.localEulerAngles.z < 0f) ? ((transform.localEulerAngles.z % 360f + 360f) * Mathf.Deg2Rad) : ((transform.localEulerAngles.z % 360f) * Mathf.Deg2Rad); tuioObject = new TUIOObject(surface.NextSessionId(), _id, normalisedPosition.x, normalisedPosition.y, -angleRads, 0f, 0f, 0f, 0f, 0f); surface.Add(this); surface.ShowSurfaceObjectOnTop(this); }