import * as THREE from 'three'; import { type PBMCustomShader, type PBMPanoPicture, type PBMPanoDepth, type PBMRefinedScreen, type PBMTransition, type PBMFloorStyle, type PBMColorStyle, type PBMClipperParameter, type PBMPanoFilter, type PBMPointShape, type PBMPointSize, type PBMPointBack } from './materials/pbmMaterial'; import type { TileRequestOrder } from './tile3d/types'; import type { Camera } from '../core/camera'; export interface ParameterMaterialValue { /** 自定义材质*/ customShaders: readonly PBMCustomShader[]; /** * 是否生效标注 * 开启后,模型顶点上会预置 `_feature_id_rsmask` 标记。 * _feature_id_rsmask=1,在俯视等特定视角下,引擎会自动隐藏被标记的顶点对应的 Mesh,从而实现“开盖”效果,让室内布局观测更加清晰、观感更好。 */ vertexMarks: boolean; /** 起始点 */ pano0: PBMPanoPicture | null; /** 结束点 */ pano1: PBMPanoPicture | null; /** 起始点深度 */ pano0Depth: PBMPanoDepth | null; /** 结束点深度 */ pano1Depth: PBMPanoDepth | null; /** 全景图滤镜 */ panoFilter: PBMPanoFilter | null; /** 细化瓦片的屏幕渲染 */ refinedScreen: PBMRefinedScreen | null; /** 模型贴图和全景图的混合程度 [0-1] */ modelAlpha: number; /** 全景图混合程度 [0-1] */ progress: number; /** 全景图过度混合 */ transition: PBMTransition; /** 模型透明度 */ opacity: number; /** 楼层样式 */ floorStyle: PBMFloorStyle; /** 颜色样式 */ colorStyle: PBMColorStyle; /** 模型颜色*/ constantColor: THREE.Vector3; /** 楼层参数*/ shownFloorIndex: number; /** 模型裁切参数(工程侧调用)*/ clippers: readonly PBMClipperParameter[]; /** 亮度 */ brightness: number; /** 是否使用HQ*/ useHQWeight: boolean; /** 是否使用HQ_DEPTH_MASK*/ useHQDepth: boolean; /** 点云形状*/ pointShape: PBMPointShape; /** 点云大小绘制方式*/ pointSize: PBMPointSize; /** 点云背面绘制方式*/ pointBack: PBMPointBack; /** 点云基础大小*/ pointScale: number; /** 点云最小尺寸*/ pointMinPixel: number; /** 点云最大尺寸*/ pointMaxPixel: number; /** 点云出现动画 */ pointAppearAnimation: boolean; /** 饱和度调整值*/ colorSaturation: number; /** 亮度调整值*/ colorBrightness: number; /** outline增益*/ outlineGain: number; /** distance增益*/ distanceGain: number; /** 高程着色材质*/ gradientTexture: THREE.Texture | null; /** 是否产生阴影 */ castShadow: boolean; /** 是否接受阴影 */ receiveShadow: boolean; /** 半透明叠加渲染*/ useAddBlend: boolean; /** 包围盒 */ boundingBox: THREE.Box3; /** 3dgs球谐阶数*/ gaussianSplattingSHDegree: number; /** * 是否开启 3dgs 加载入场动画(点云扩散生长 + 运镜) */ enableGaussianSplattingInitAnimation: boolean; } export interface ParameterTilesetValue { /** 模型显示最小细化层级 */ minLevelOfDetail: number; /** 模型显示最大细化层级 */ maxLevelOfDetail: number; /** 模型显示最小细化误差 */ minGeometricError: number; /** 模型显示最大细化误差 */ maxGeometricError: number; /** 全景态下模型显示最小细化误差 */ panoramaMinGeometricError: number; /** 模型越层级加载 */ skipLevelOfDetail: boolean; /** 模型是否最密 */ mostDetail: boolean; /** 模型加载不在视野中的兄弟节点 */ loadSiblings: boolean; /** 模型不加载在不在视野中的节点 */ cameraCulling: boolean; /** 模型最大内存缓存 */ maxMemoryUsage: number; /** 模型网络最大请求并发数 */ maxRequests: number; /** 模型网络请求顺序 */ requestOrder: TileRequestOrder; /** 模型屏幕空间误差计算最大值 */ maxScreenSpaceError: number; memoryAdjustedScreenSpaceError: boolean; /** 缓存相机 */ cacheCameras: readonly (Camera | THREE.PerspectiveCamera)[]; } export interface ParameterValue extends ParameterMaterialValue, ParameterTilesetValue { } export interface ResolvedParameterValue extends ParameterValue { versionNumber: number; } export interface Parameter extends Readonly> { } export declare class Parameter { static createDefault(): Required; static resolveValueTo(target: Partial, ...parameterValues: Partial[]): ResolvedParameterValue; static resolveValue(name: T, ...parameterValues: Partial[]): ParameterValue[T]; static resolveValue(...parameterValues: Partial[]): ResolvedParameterValue; id: string; versionNumber: number; private value; private unbind; constructor(initialValue?: Partial); resolveValue(name: T, ...values: Partial[]): ParameterValue[T]; resolveValue(...baseValues: Partial[]): ResolvedParameterValue; private assignValue; set(name: T, value: ParameterValue[T]): this; set(values: Partial): this; reset(...names: (keyof ParameterValue)[]): this; resetAll(): this; copy(value: Partial): this; }