Beispiel #1
0
    public Quaternion GetRotFromViconInfo(ViconInfo v)
    {
        var rotationMatrix = new Matrix4x4();

        int matrixIndex = 0;

        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                rotationMatrix[i, j] = (float)v.Rotation[matrixIndex];
                matrixIndex          = matrixIndex + 1;
                rotationMatrix[3, j] = 0;
            }
            rotationMatrix[i, 3] = 0;
        }
        rotationMatrix[3, 3] = 1;

        Quaternion _q = rotationMatrix.rotation;
        Quaternion q  = new Quaternion(_q.x, -_q.z, _q.y, _q.w);

        //Vector3 euler = rotationMatrix.rotation.eulerAngles;
        //Vector3 newEuler = new Vector3(euler.x, -euler.z, euler.y);
        //Quaternion q = Quaternion.Euler(newEuler);
        return(q);
    }
Beispiel #2
0
 private void Awake()
 {
     viconInfos = new List <ViconInfo>();
     foreach (Transform t in trackedObjects)
     {
         var newViconInfo = new ViconInfo(t);
         viconInfos.Add(newViconInfo);
     }
 }
Beispiel #3
0
    public Vector3 GetPosFromViconInfo(ViconInfo v)
    {
        Vector3 newPos = new Vector3(0, 0, 0);

        if (v.Translation != null)
        {
            newPos = new Vector3(-(float)v.Translation[0], (float)v.Translation[2], -(float)v.Translation[1]) * 0.001f;
        }
        return(newPos);
    }
Beispiel #4
0
    private void udpReceive(IAsyncResult res)
    {
        IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, port);

        byte[] received = client.EndReceive(res, ref RemoteIpEndPoint);

        string    str          = Encoding.UTF8.GetString(received);
        ViconInfo commingVicon = JsonUtility.FromJson <ViconInfo>(str);

        //Vector3 newPos = new Vector3(-(float)commingVicon.Translation[0], (float)commingVicon.Translation[1], (float)commingVicon.Translation[2]);
        foreach (ViconInfo v in viconInfos)
        {
            if (v.Name == commingVicon.Name)
            {
                v.Translation = commingVicon.Translation;
                v.Rotation    = commingVicon.Rotation;
            }
        }

        if (!isDestroyed)
        {
            client.BeginReceive(new AsyncCallback(udpReceive), null);
        }
    }