| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415 |
- /** 模型变换参数类型 */
- export interface ModelTransform {
- positionX: number
- positionY: number
- positionZ: number
- rotationX: number
- rotationY: number
- rotationZ: number
- scaleX: number
- scaleY: number
- scaleZ: number
- }
- /** 水面材质参数类型(主水面用) */
- export interface WaterMaterialParams {
- alpha: number
- waterColor: string
- deepColor: string
- flowSpeed: number
- flowDirectionX: number
- flowDirectionY: number
- normalRotation: number
- waveHeight: number
- foamIntensity: number
- specIntensity: number
- specPower: number
- fresnelPower: number
- fresnelIntensity: number
- depthRange: number
- waterNormalStrength: number
- waterNormalTiling: number
- collisionFoamThreshold: number
- collisionFoamStrength: number
- }
- /** CSCwater 材质参数类型(独立于主水面配置) */
- export type CscwaterMaterialParams = WaterMaterialParams
- /** 泡沫片面材质参数类型 */
- export interface FoamMaterialParams {
- colour: string
- opacity: number
- waterfallSpeed: number
- edgeMaskTiling: number
- edgeMaskSpeed: number
- fresnelExponent: number
- directionalFoamIntensity: number
- directionalFoamContrast: number
- directionalFoam1Intensity: number
- directionalFoam2Intensity: number
- directionalFoam2Tiling: number
- directionalFoam2Speed: number
- directionalFoam3Intensity: number
- foamFalloff: number
- gradientTop: number
- gradientBottom: number
- gradientPower: number
- }
- /** 流动纹理材质参数类型 */
- export interface FlowMaterialParams {
- colour: string
- speedX: number
- speedY: number
- tilingU: number
- tilingV: number
- rotationAngle: number
- power: number
- waterGate: number
- waterGate02: number
- edgeMaskIntensity: number
- opaquePower: number
- edgeFade: number
- }
- // ==================== 模型变换默认值 ====================
- export const modelTransformMap: Record<string, ModelTransform> = {
- foam: {
- positionX: -854.3537,
- positionY: 14.01539,
- positionZ: -2175.46505,
- rotationX: 91,
- rotationY: 0,
- rotationZ: 52,
- scaleX: 7.5,
- scaleY: 16,
- scaleZ: 1,
- },
- water: {
- positionX: -854.3537,
- positionY: 14.01539,
- positionZ: -2175.46505,
- rotationX: -90,
- rotationY: 0,
- rotationZ: 0,
- scaleX: 200,
- scaleY: 200,
- scaleZ: 1,
- },
- flow: {
- positionX: -2150.4,
- positionY: 19,
- positionZ: -789.5,
- rotationX: 0,
- rotationY: 12,
- rotationZ: 0,
- scaleX: 0.2,
- scaleY: 0.2,
- scaleZ: 0.2,
- },
- cscwater: {
- positionX: -1591.11,
- positionY: 18.5,
- positionZ: -275,
- rotationX: 0,
- rotationY: 0,
- rotationZ: 0,
- scaleX: 1,
- scaleY: 1,
- scaleZ: 1,
- },
- water2: {
- positionX: -2185.1,
- positionY: 24,
- positionZ: -961,
- rotationX: 90,
- rotationY: 11,
- rotationZ: 0,
- scaleX: 18,
- scaleY: 300,
- scaleZ: 200,
- },
- }
- // ==================== 材质参数默认值 ====================
- /** 水面材质参数默认值 */
- export const defaultWaterParams: WaterMaterialParams = {
- alpha: 0.95,
- waterColor: '#566a6c',
- deepColor: '#0a2a4a',
- flowSpeed: 3.0,
- flowDirectionX: -1,
- flowDirectionY: -1.50,
- normalRotation: 35,
- waveHeight: 0.6,
- foamIntensity: 0.25,
- specIntensity: 2.0,
- specPower: 64.0,
- fresnelPower: 2.5,
- fresnelIntensity: 1.0,
- depthRange: 44.0,
- waterNormalStrength: 1.0,
- waterNormalTiling: 0.46,
- collisionFoamThreshold: 0.10,
- collisionFoamStrength: 0.5,
- }
- /** CSCwater 材质参数默认值 */
- export const defaultCscwaterParams: CscwaterMaterialParams = {
- alpha: 0.92,
- waterColor: '#296a7a',
- deepColor: '#0b3660',
- flowSpeed: 0,
- flowDirectionX: 1.0,
- flowDirectionY: 1.0,
- normalRotation: 0,
- waveHeight: 0.6,
- foamIntensity: 0.30,
- specIntensity: 2.2,
- specPower: 168,
- fresnelPower: 2.5,
- fresnelIntensity: 1.0,
- depthRange: 44.0,
- waterNormalStrength: 0.15,
- waterNormalTiling: 0.07,
- collisionFoamThreshold: 0.39,
- collisionFoamStrength: 0.45,
- }
- /** 泡沫片面材质参数默认值 */
- export const defaultFoamMatParams: FoamMaterialParams = {
- colour: '#ffffff',
- opacity: 1.0,
- waterfallSpeed: 0.32,
- edgeMaskTiling: 0.52,
- edgeMaskSpeed: 1.7,
- fresnelExponent: 9.9,
- directionalFoamIntensity: 3.48,
- directionalFoamContrast: 0.3,
- directionalFoam1Intensity: 1.10,
- directionalFoam2Intensity: 2.03,
- directionalFoam2Tiling: 1.0,
- directionalFoam2Speed: 8.5,
- directionalFoam3Intensity: 1.76,
- foamFalloff: 0.8,
- gradientTop: 1.0,
- gradientBottom: 0.0,
- gradientPower: 1.0,
- }
- /** 流动纹理材质参数默认值 */
- export const defaultFlowParams: FlowMaterialParams = {
- colour: '#ffffff',
- speedX: -0.068,
- speedY: 0.399,
- tilingU: -0.85,
- tilingV: 1.87,
- rotationAngle: -0.22,
- power: 1.13,
- waterGate: 0.0,
- waterGate02: 0.00,
- edgeMaskIntensity: 1.00,
- opaquePower: 0.82,
- edgeFade: 0.50,
- }
- // ==================== 水位标签配置 ====================
- /** 标签数据类型 */
- export type LabelDataType = 'waterLevel' | 'flowRate' | 'StressMonitor'
- /** 标签类型对应的展示配置 */
- export interface LabelTypeDisplayConfig {
- icon: string
- unit: string
- label: string
- decimalPlaces: number
- }
- /** 标签类型注册表(可扩展) */
- export const labelTypeRegistry: Record<LabelDataType, LabelTypeDisplayConfig> = {
- waterLevel: {
- icon: 'shuiliang.png',
- unit: 'm³/s',
- label: '水 量',
- decimalPlaces: 2,
- },
- flowRate: {
- icon: 'shuiliang.png',
- unit: 'm³/s',
- label: '流 量',
- decimalPlaces: 2,
- },
- StressMonitor: {
- icon: 'yingli.png',
- unit: '',
- label: '应力监测',
- decimalPlaces: 2,
- },
- }
- /** 场景类型 */
- export type SceneType = 'main' | 'ducao'
- /** 水位标签配置类型 */
- export interface WaterLevelLabelConfig {
- id: string
- name: string
- type: LabelDataType
- scene: SceneType
- positionX: number
- positionY: number
- positionZ: number
- initialValue: number
- }
- /** 所有水位标签列表(两个场景的标签都在这里) */
- export const waterLevelLabels: WaterLevelLabelConfig[] = [
- {
- id: '6602380005',
- name: '莫勒切河节制分水闸闸后水量监测',
- type: 'waterLevel',
- scene: 'main',
- positionX: -797.282,
- positionY: 14,
- positionZ: -2091.159,
- initialValue: 2.80,
- },
- {
- id: '6602380006',
- name: '莫勒切河引水渠水量监测',
- type: 'waterLevel',
- scene: 'main',
- positionX: -921.134,
- positionY: 14,
- positionZ: -2124.428,
- initialValue: 3.00,
- },
- {
- id: '6602380003',
- name: '二期沉砂池入库水量监测',
- type: 'waterLevel',
- scene: 'main',
- positionX: -2162.313,
- positionY: 23.156,
- positionZ: -856.39,
- initialValue: 3.00,
- },
- {
- id: '6602380001',
- name: '二期沉砂池库内水位监测',
- type: 'waterLevel',
- scene: 'main',
- positionX: -781.103,
- positionY: 27.499,
- positionZ: -194.081,
- initialValue: 4.00,
- },
- {
- id: '6602380004',
- name: '二期沉砂池出库水量监测',
- type: 'waterLevel',
- scene: 'main',
- positionX: -416.521,
- positionY: 8,
- positionZ: -188.334,
- initialValue: 2.80,
- },
- {
- id: '6602380023',
- name: '引水干渠水量监测103+800',
- type: 'waterLevel',
- scene: 'main',
- positionX: -3353.116,
- positionY: 23.293,
- positionZ: -1657.653,
- initialValue: 2.80,
- },
- {
- id: '渡槽安全监测46+400',
- name: '渡槽安全监测46+400',
- type: 'StressMonitor',
- scene: 'ducao',
- positionX: -60.3,
- positionY: 13.87,
- positionZ: 1827.87,
- initialValue: 2.80,
- },
- {
- id: '渡槽安全监测46+635',
- name: '渡槽安全监测46+635',
- type: 'StressMonitor',
- scene: 'ducao',
- positionX: -326.17,
- positionY: 13.87,
- positionZ: 1886.87,
- initialValue: 2.80,
- },
- ]
- /** 按场景类型编组的标签列表 */
- export const sceneLabels: Record<SceneType, WaterLevelLabelConfig[]> = {
- main: waterLevelLabels.filter(l => l.scene === 'main'),
- ducao: waterLevelLabels.filter(l => l.scene === 'ducao'),
- }
- // ==================== 镜头预设 ====================
- /** 镜头预设配置类型 */
- export interface CameraPreset {
- id: string
- name: string
- positionX: number
- positionY: number
- positionZ: number
- targetX: number
- targetY: number
- targetZ: number
- }
- /** 镜头预设列表 */
- export const cameraPresets: CameraPreset[] = [
- {
- id: '0',
- name: '莫勒切河节制分水闸',
- positionX: -831.56685,
- positionY: 40.63456,
- positionZ: -2225.321,
- targetX: -843.0744,
- targetY: 12.01539,
- targetZ: -2182.06814,
- },
- {
- id: '1',
- name: '二期沉砂池入库',
- positionX: -2337.807,
- positionY: 129.119,
- positionZ: -1025.484,
- targetX: -2240.868,
- targetY: 12.015,
- targetZ: -908.998,
- },
- {
- id: '2',
- name: '二期沉砂池入库',
- positionX: -2337.807,
- positionY: 129.119,
- positionZ: -1025.484,
- targetX: -2240.868,
- targetY: 12.015,
- targetZ: -908.998,
- },
- {
- id: '3',
- name: '二期沉砂池出库',
- positionX: -798.636,
- positionY: 260.226,
- positionZ: -718.195,
- targetX: -710.424,
- targetY: 12.015,
- targetZ: -293.213,
- },
- ]
|