/**
 * 路线样式配置
 * 定义不同类型路线的可视化样式
 */

import * as Cesium from 'cesium'

/**
 * 路线样式预设
 */
export const ROUTE_STYLES = {
  // 人员路线样式
  personnel: {
    color: Cesium.Color.RED,
    width: 5,
    material: Cesium.Color.RED,
    labelColor: Cesium.Color.RED
  },

  // 装备路线样式
  equipment: {
    color: Cesium.Color.RED,
    width: 6,
    material: Cesium.Color.RED,
    labelColor: Cesium.Color.RED
  },

  // 降级直线样式（API 失败时使用）
  fallback: {
    color: Cesium.Color.YELLOW.withAlpha(0.6),
    width: 3,
    material: (viewer) => new Cesium.PolylineDashMaterialProperty({
      color: Cesium.Color.YELLOW.withAlpha(0.6),
      dashLength: 10.0,
      dashPattern: 255
    }),
    labelColor: Cesium.Color.YELLOW
  }
}

/**
 * 标签样式配置
 */
export const LABEL_STYLE = {
  font: '14px SourceHanSansCN-Medium, sans-serif',
  fillColor: Cesium.Color.WHITE,
  outlineColor: Cesium.Color.BLACK,
  outlineWidth: 2,
  style: Cesium.LabelStyle.FILL_AND_OUTLINE,
  pixelOffset: new Cesium.Cartesian2(0, -10),
  disableDepthTestDistance: Number.POSITIVE_INFINITY,
  heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
  verticalOrigin: Cesium.VerticalOrigin.BOTTOM
}

/**
 * 路线动画配置
 */
export const ROUTE_ANIMATION_CONFIG = {
  // 动画速度倍数（相对于真实时间）
  speedMultiplier: 40,

  // 最小动画时长（秒）
  minDuration: 30,

  // 最大动画时长（秒）
  maxDuration: 120,

  // 轨迹发光强度
  trailGlowPower: 0.4,

  // 轨迹渐变效果
  trailTaperPower: 0.5,

  // 轨迹宽度
  trailWidth: 8
}
