OptiTrack.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Collections.Generic;
  3. using Newtonsoft.Json;
  4. namespace TrackpointApp
  5. {
  6. public class OptiTrack : AbstractTrackingSystem
  7. {
  8. private void Start()
  9. {
  10. generalSetup();
  11. trackpointMesh.setup(filePath, TrackingSystem.OptiTrack);
  12. TrackpointData data = loadMetaData();
  13. setupTrackpointTranslation(data);
  14. setupTrackpointRotation(data, 0);
  15. setupActionPoints();
  16. }
  17. TrackpointData loadMetaData()
  18. {
  19. string metadata = trackpointMesh.getMetaData(TrackingSystem.SteamVRTrack);
  20. List<TrackpointData> metaObject = JsonConvert.DeserializeObject<List<TrackpointData>>(metadata);
  21. TrackpointData result = new TrackpointData();
  22. float x = 0.0f;
  23. float y = 0.0f;
  24. float z = 0.0f;
  25. int c = 0;
  26. foreach (TrackpointData data in metaObject)
  27. {
  28. x += data.point[0];
  29. y += data.point[1];
  30. z += data.point[2];
  31. c++;
  32. }
  33. result.point[0] = x / c;
  34. result.point[1] = y / c;
  35. result.point[2] = z / c;
  36. return result;
  37. }
  38. }
  39. }