import { MeshCollector, MeshCollectorQuery } from '../MeshCollector'; import { TilesRenderer } from '3d-tiles-renderer'; import { Object3D } from 'three'; import { StyleConfig } from './style-appearance-types'; export type { StyleAppearance, StyleCondition, StyleConditionDescriptor, StyleConditionInput, StyleConfig, StyleEulerInput, StyleMaterialMaps, StyleMaterialResolver, StyleMeshFactory, StyleShowInput, StyleVec3Input, } from './style-appearance-types'; /** 内部使用:插件需提供的接口 */ interface StyleHelperContext { getTiles(): TilesRenderer | null; hidePartsByFeatureAttribute(featureIds: number[], featureIdAttribute: number): void; showPartsByFeatureAttribute(featureIds: number[], featureIdAttribute: number): void; getMeshCollectorByCondition(query: MeshCollectorQuery): MeshCollector; releaseMeshCollector(collector: MeshCollector): void; getRootGroup(): Object3D | null; getInternalData?(): import('../mesh-helper/mesh').InternalData | undefined; } /** * 构件样式辅助器 * 通过 show 表达式控制可见性,通过 conditions 应用条件材质与可选位姿 */ export declare class StyleHelper { private context; /** 当前样式配置;在插件上可通过 `plugin.style` 读写(与 `setStyle` 等价) */ style: StyleConfig | null; private styledIdsByAttribute; private hiddenIdsByAttribute; private originalMaterialByMesh; private originalTransformByMesh; /** 按收集器实例(interactionGroupKey)挂接 mesh-change */ private meshChangeHandlers; /** 当前样式占用的收集器(用于 clearStyle / 下次 applyStyle 前卸载监听) */ private styleCollectors; constructor(context: StyleHelperContext); /** * 设置样式 * @param style 样式配置,传 null 或空对象清除样式 */ setStyle(style: StyleConfig | null): void; /** * 清除样式,恢复默认显示 */ clearStyle(): void; /** * 仅重算并应用 hide,不重建收集器。 * 由插件在 tile-visibility-change 防抖后调用。 */ refreshHiddenIdsOnly(): void; private resolveStyleFromTiles; private applyStyle; /** * 瓦片加载完成后重新应用样式(由插件调用) */ onTilesLoadEnd(): void; dispose(): void; } //# sourceMappingURL=StyleHelper.d.ts.map