LightGluePositionUpdate.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using UnityEngine;
  2. namespace LightGlue.Unity.Runtime
  3. {
  4. /// <summary>
  5. /// 对外统一的位置更新数据。
  6. /// </summary>
  7. public struct LightGluePositionUpdate
  8. {
  9. /// <summary>
  10. /// 给业务/UI直接使用的位置坐标。
  11. /// 当前默认透传算法参考图坐标;未来可扩展为已映射的 UI/屏幕坐标。
  12. /// </summary>
  13. public Vector2 Position;
  14. /// <summary>
  15. /// 算法原始相机/参考图坐标。
  16. /// 通常对应 LightGlueResult.CameraPosition。
  17. /// </summary>
  18. public Vector2 CameraLocation;
  19. /// <summary>
  20. /// 本次结果是否有效。
  21. /// </summary>
  22. public bool IsValid;
  23. /// <summary>
  24. /// 匹配点数量。
  25. /// </summary>
  26. public ushort NumMatches;
  27. /// <summary>
  28. /// 内点比例。
  29. /// </summary>
  30. public float InliersRatio;
  31. public LightGluePositionUpdate(
  32. Vector2 position,
  33. Vector2 cameraLocation,
  34. bool isValid,
  35. ushort numMatches,
  36. float inliersRatio)
  37. {
  38. Position = position;
  39. CameraLocation = cameraLocation;
  40. IsValid = isValid;
  41. NumMatches = numMatches;
  42. InliersRatio = inliersRatio;
  43. }
  44. public override string ToString()
  45. {
  46. return $"LightGluePositionUpdate(Pos={Position}, Camera={CameraLocation}, Valid={IsValid}, Matches={NumMatches}, Inliers={InliersRatio:P1})";
  47. }
  48. }
  49. }