useEntityCollection
基于 syncEntityCollection 实现,这将会返回一个新创建的、与 viewer.entities
同步的 EntityCollection
,并在离开上下文时自动清空。
因为其使用场景如此广泛,于是有了这个简单的封装。
使用
基本使用:
ts
const entities = useEntityCollection()
// 同步到 `viewer.entities`
entities.add({
position: toCartesian3(113, 22, 1000),
point: {
pixelSize: 1000,
},
})
// 组件销毁时自动清空
你可以手动传入一个 entities
作为同步的目标:
ts
const viewer = useViewer()
const scope = effectScope() // 提供一个作用域方便其自动卸载副作用
function load() {
scope.run(() => {
useEntityCollection(viewer.entities)
})
}
demo
类型声明
Details
ts
/**
* Create a EntityCollection, which synchronizes with the `viewer.entities`.
* It will be cleared when the component is unmounted.
*
* ## example
* ```js
* const viewer = useViewer()
*
* const entities = useEntityCollection()
* const e = entities.add({})
*
* viewer.entities.contains(e) // true!
* ```
*/
export declare function useEntityCollection(
entities?: EntityCollection,
): EntityCollection