Sight

Build status Swift Package Manager MacOS + iOS + iPadOS + tvOS Twitter: @zntfdr

欢迎使用 Sight,这是一个 Swift 空间搜索微型库。它的主要目标是扩展 Apple 的 GameplayKit 框架。

使用方法

Sight 可以帮助您快速确定哪个对象最靠近给定的位置。

这是通过 Region 实例完成的,它代表所有对象所处空间。

import Sight

// Define a region with bounds and search radius.
let region = Region<String>(
  minBounds: SIMD2(x: 0, y: 0), 
  maxBounds: SIMD2(x: 1, y: 1), 
  searchRadius: 0.3
)

// Place objects in the region.
region.add("A", at: SIMD2(x: 0, y: 0.1))
region.add("B", at: SIMD2(x: 0.5, y: 0))
region.add("C", at: SIMD2(x: 0, y: 0.8))

// Find the closest object to any position.
region.closestValue(to: SIMD2(x: 0.5, y: 0.2)) // "B" 
region.closestValue(to: SIMD2(x: 1, y: 0)) // nil 

Region 针对空间搜索进行了优化,因此在其初始化期间需要搜索半径和其边界。

您可以在 Tests 文件夹中找到更多示例。

安装

Sight 使用 Swift Package Manager 分发。 要将其安装到项目中,请按照 本教程 并使用此存储库 URL:https://github.com/zntfdr/Sight.git

鸣谢

Sight 由 Federico Zanetello 构建,它是 Bangkok Metro 的一个组件。

如果您想了解有关此库如何工作的更多信息,请参阅 GameplayKitGKQuadtree 概述

贡献和支持

欢迎并鼓励所有用户积极参与项目的持续开发——修复他们遇到的任何错误,或改进文档中任何发现不足之处。

如果您想进行更改,请打开一个 Pull Request,即使它只包含您计划进行的更改的草案,或者重现问题的测试。

感谢您,请愉快地使用 Sight