
# 生成动画测试流程

用户点击"生成动画"
    ↓
SaveCollisionDetectionRecord
    ↓
CheckExistingDetectionRecord
    ├── 找到相同配置？→ 弹出提示框
    │                       ├── 【是】→ 记录_lastReusedRecordId，在历史列表中高亮，返回已有ID
    │                       └── 【否】→ 清除_lastReusedRecordId，继续创建新记录
    └── 未找到 → 继续创建新记录
    ↓
碰撞分析流程检查 IsReusedHistoryRecord
    ├── 是 → 提前返回，跳过动画生成和碰撞检测
    └── 否 → 继续正常流程

用户生成动画 → 检测到相同配置的历史记录 → 弹出对话框询问
    ↓
用户选择"使用历史记录"
    ↓

1. 设置 IsUsingHistoryRecord = true
2. 在历史列表中选中该记录
3. 自动滚动到该记录
4. 自动打开碰撞报告对话框
    ↓
用户播放动画 → 动画完成 → 检查 IsUsingHistoryRecord
    ↓
    ├── true → 跳过 ClashDetective 测试，记录日志
    └── false → 正常执行 ClashDetective 测试

生成动画
    ↓
检查动画帧缓存
    ├── 命中 → 直接使用缓存的动画帧
    └── 未命中 → 计算动画帧并缓存
    ↓
检查配置是否已存在（_animationHashToRecordId）
    ├── 存在 → 提示用户选择使用历史记录或重新生成
    └── 不存在 → 创建新记录，继续正常流程
