void Update() { if (sending) { switch (ubitrackEvent) { case UbitrackEventType.Push: { SimplePosition3D simplePos3D = new SimplePosition3D(); Vector3 output = Vector3.zero; UbiMeasurementUtils.coordsysemChange(sendPos, ref output); simplePos3D.x = output.x; simplePos3D.y = output.y; simplePos3D.z = output.z; simplePos3D.timestamp = UbiMeasurementUtils.getUbitrackTimeStamp(); m_poseReciever.receivePosition3D(simplePos3D); if (once) { this.enabled = false; } break; } case UbitrackEventType.Pull: default: break; } } }
internal static SimplePose getGameObjectPose(UbitrackRelativeToUnity relative, GameObject go) { SimplePose pose = new SimplePose(); Vector3 pos = new Vector3(); Quaternion rot = new Quaternion(); switch (relative) { case UbitrackRelativeToUnity.Local: { UbiMeasurementUtils.coordsysemChange(go.transform.localPosition, ref pos); UbiMeasurementUtils.coordsysemChange(go.transform.localRotation, ref rot); break; } case UbitrackRelativeToUnity.World: { UbiMeasurementUtils.coordsysemChange(go.transform.position, ref pos); UbiMeasurementUtils.coordsysemChange(go.transform.rotation, ref rot); break; } default: break; } pose.tx = pos.x; pose.ty = pos.y; pose.tz = pos.z; pose.rx = rot.x; pose.ry = rot.y; pose.rz = rot.z; pose.rw = rot.w; return(pose); }
public void send(ulong timestamp) { SimplePosition3D simplePos3D = new SimplePosition3D(); Vector3 output = Vector3.zero; UbiMeasurementUtils.coordsysemChange(sendPos, ref output); simplePos3D.x = output.x; simplePos3D.y = output.y; simplePos3D.z = output.z; simplePos3D.timestamp = timestamp; m_poseReciever.receivePosition3D(simplePos3D); if (once) { this.enabled = false; } }
private void ReceiveData() { client = new UdpClient(port); while (m_keepRunning) { try { IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0); byte[] data = client.Receive(ref anyIP); // Bytes mit der UTF8-Kodierung in das Textformat kodieren. string text = Encoding.UTF8.GetString(data); Debug.Log(text); string[] words = text.Split(' '); Quaternion q = new Quaternion(float.Parse(words[12]), float.Parse(words[13]), float.Parse(words[14]), float.Parse(words[15])); Vector3 t = new Vector3(float.Parse(words[18]), float.Parse(words[19]), float.Parse(words[20])); m_newData = new Pose(); UbiMeasurementUtils.coordsysemChange(t, ref m_newData.pos); UbiMeasurementUtils.coordsysemChange(q, ref m_newData.rot); } catch (Exception err) { Debug.Log(err.ToString()); } } client.Close(); }
public static Pose readErrorPoseAsPoseFromString(string input) { char[] splitter = { ' ' }; NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat; nfi.NumberDecimalSeparator = "."; string[] strList = input.Split(splitter); Pose result = new Pose(); Vector3 pos = new Vector3(float.Parse(strList[0 + 16], nfi), float.Parse(strList[1 + 16], nfi), float.Parse(strList[2 + 16], nfi)); Quaternion rot = new Quaternion(float.Parse(strList[0 + 10], nfi), float.Parse(strList[1 + 10], nfi), float.Parse(strList[2 + 10], nfi), float.Parse(strList[3 + 10], nfi)); UbiMeasurementUtils.coordsysemChange(pos, ref result.pos); UbiMeasurementUtils.coordsysemChange(rot, ref result.rot); return(result); }