/* Tracker event handler */ private void TrackerChanged(TrackerEvent e) { for (int i = 0; i < trackerPosition.Capacity; i++) { trackerPosition[i] = Utils.Convert(tracker.Sensors[i].Position); } for (int i = 0; i < trackerRotation.Capacity; i++) { trackerRotation[i] = Utils.Convert(tracker.Sensors[i].Orientation); } }
protected void deserializeEvent(StateObject state, int bytesRead) { //Receive message from the server formatter = new BinaryFormatter(); memStream = new MemoryStream(bytesRead - 1); memStream.Write(state.Buffer, 0, bytesRead - 1); memStream.Position = 0; UniVRPNity.Event event_deserialize = (UniVRPNity.Event)formatter.Deserialize(memStream); switch (event_deserialize.GetHandlerType()) { case UniVRPNity.Type.Analog: analogEvent = (AnalogEvent) event_deserialize; bufferEvent.Push(analogEvent); break; case UniVRPNity.Type.Button: buttonEvent = (ButtonEvent) event_deserialize; bufferEvent.Push(buttonEvent); break; case UniVRPNity.Type.Tracker: trackerEvent = (TrackerEvent) event_deserialize; bufferEvent.Push(trackerEvent); break; default: throw new Exception("Deserialization of the event failed.\n"); } }
/* Analog event handler */ private void TrackerChanged(TrackerEvent e) { position = Utils.Convert(tracker.Sensors[sensor].Position); rotation = Utils.Convert(tracker.Sensors[sensor].Orientation); }
/* Analog event handler */ private void TrackerChanged(object sender, TrackerChangeEventArgs e) { Vrpn.TrackerRemote trackerSender = (Vrpn.TrackerRemote) sender; if (remotes.isPresent(trackerSender)) { TrackerEvent trackerEvent = new TrackerEvent(this.remotes[trackerSender].Name); trackerEvent.Sensor = e.Sensor; trackerEvent.Position = new EventHandlerUtils.Vector3((float)e.Position.X, (float)e.Position.Y, (float)e.Position.Z); trackerEvent.Orientation = new EventHandlerUtils.Quaternion((float)e.Orientation.X, (float)e.Orientation.Y, (float)e.Orientation.Z, (float)e.Orientation.W); trackerEvent.Time = e.Time; Console.WriteLine("Tracker: " + trackerEvent); this.SendEvent(trackerSender, trackerEvent); } else { trackerSender.PositionChanged -= new Vrpn.TrackerChangeEventHandler(this.TrackerChanged); } }
private void Update(TrackerEvent e) { if (e.Sensor < sensors.Capacity) { sensors[e.Sensor] = e; } }
private void TrackerChangedMiddle(TrackerEvent e) { if (TrackerChanged != null) TrackerChanged(e); }