WebCAD-Lib-TS API 文档 - v1.0.0
    Preparing search index...

    Class SpatialIndexManager

    空间索引管理器 使用 rbush 对实体进行空间索引,优化拾取性能

    设计思路:

    1. 对所有实体建立空间索引(而不是只对屏幕内的)
    2. 通过屏幕空间范围查询rbush来获取实体
    3. 拾取时先用索引快速筛选,再进行精确测试
    4. 在查询时检查并更新dirty实体的索引(参考屏幕索引的重构方式)
    Index

    Constructors

    Accessors

    • get enabled(): boolean

      检查索引是否启用

      Returns boolean

    • get isInitialized(): boolean

      检查索引是否已初始化

      Returns boolean

    Methods

    • 启用或禁用索引

      Parameters

      • enabled: boolean

        是否启用

      Returns void

    • 批量加载实体到索引 使用 bulk loading 以获得最佳性能

      Parameters

      • Optionalentities: any[]

        实体数组(如果为空,则从 Engine.currentSpace.items 获取所有实体)

      • Optionaldoc: CadDocument

      Returns void

    • 添加单个实体到索引

      Parameters

      • entity: any

        实体对象

      Returns void

    • 从索引中移除实体

      Parameters

      • entity: any

        实体对象

      Returns void

    • 更新实体在索引中的位置

      Parameters

      • entity: any

        实体对象

      • onlyIfExists: boolean = false

        是否只在索引中存在时才更新(默认 false)

      Returns void

    • 搜索与给定边界框相交的实体 在查询前自动检查并更新dirty实体的索引

      Parameters

      • bounds: BoundingBox

        搜索边界框(世界坐标系)

      • OptionalentityArray: any[]

        可选的实体数组,如果指定,只返回在此数组中的实体

      • Optionaldoc: CadDocument

      Returns any[]

      可能相交的实体数组(需要进一步精确测试)

    • 检查是否有实体与给定边界框相交 在查询前自动检查并更新dirty实体的索引

      Parameters

      Returns boolean

      是否有相交的实体

    • 清除所有索引

      Parameters

      Returns void

    • 获取索引统计信息

      Parameters

      Returns { itemCount: number; enabled: boolean; initialized: boolean }

    • 移除指定文档的索引状态(用于关闭文档)

      Parameters

      Returns void