LoggingZEDManager.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Assets.Logging;
  7. using sl;
  8. using static ZEDManager;
  9. namespace Assets.ZED.SDK.Helpers.Scripts
  10. {
  11. internal class LoggingZEDManager : IZEDManager
  12. {
  13. readonly ZEDManager zedManager;
  14. readonly ILogger<DetectionFrame> detectionFrameLogger;
  15. public LoggingZEDManager(ZEDManager zedManager, ILogger<DetectionFrame> detectionFrameLogger)
  16. {
  17. this.zedManager = zedManager;
  18. this.detectionFrameLogger = detectionFrameLogger;
  19. zedManager.OnObjectDetection += ZedManager_OnObjectDetection;
  20. }
  21. void ZedManager_OnObjectDetection(DetectionFrame objFrame)
  22. {
  23. detectionFrameLogger.Log(objFrame);
  24. }
  25. public bool IsObjectDetectionRunning => zedManager.IsObjectDetectionRunning;
  26. public bool EstimateInitialPosition => zedManager.EstimateInitialPosition;
  27. public DETECTION_MODEL ObjectDetectionModel => zedManager.ObjectDetectionModel;
  28. public event ZEDManager.onNewDetectionTriggerDelegate OnObjectDetection
  29. {
  30. add => zedManager.OnObjectDetection += value;
  31. remove => zedManager.OnObjectDetection -= value;
  32. }
  33. public event ZEDManager.OnZEDManagerReady OnZEDReady
  34. {
  35. add => zedManager.OnZEDReady += value;
  36. remove => zedManager.OnZEDReady -= value;
  37. }
  38. public void StartObjectDetection()
  39. {
  40. zedManager.StartObjectDetection();
  41. }
  42. }
  43. }