# 生成动画测试流程 用户点击"生成动画" ↓ SaveCollisionDetectionRecord ↓ CheckExistingDetectionRecord ├── 找到相同配置?→ 弹出提示框 │ ├── 【是】→ 记录_lastReusedRecordId,在历史列表中高亮,返回已有ID │ └── 【否】→ 清除_lastReusedRecordId,继续创建新记录 └── 未找到 → 继续创建新记录 ↓ 碰撞分析流程检查 IsReusedHistoryRecord ├── 是 → 提前返回,跳过动画生成和碰撞检测 └── 否 → 继续正常流程 用户生成动画 → 检测到相同配置的历史记录 → 弹出对话框询问 ↓ 用户选择"使用历史记录" ↓ 1. 设置 IsUsingHistoryRecord = true 2. 在历史列表中选中该记录 3. 自动滚动到该记录 4. 自动打开碰撞报告对话框 ↓ 用户播放动画 → 动画完成 → 检查 IsUsingHistoryRecord ↓ ├── true → 跳过 ClashDetective 测试,记录日志 └── false → 正常执行 ClashDetective 测试 生成动画 ↓ 检查动画帧缓存 ├── 命中 → 直接使用缓存的动画帧 └── 未命中 → 计算动画帧并缓存 ↓ 检查配置是否已存在(_animationHashToRecordId) ├── 存在 → 提示用户选择使用历史记录或重新生成 └── 不存在 → 创建新记录,继续正常流程