NavisworksTransport/doc/introduction/2.4.2_结果输出功能设计说明.md

8.0 KiB
Raw Blame History

2.4.2 结果输出功能设计说明

2.4.2.1. 模块描述

结果输出模块是交互式导航功能的重要组成部分,负责输出导航地图和路径规划结果,可以是视频或者图片。该模块将路径规划的结果以多种可视化形式输出,便于用户保存、分享和报告使用。

该模块与NavigationMapGenerator、PathAnimationManager和媒体导出功能紧密集成支持高质量的视觉输出。

2.4.2.2. 功能

核心功能

  1. 图片输出:将路径规划结果导出为图片
  2. 视频输出:生成路径导航视频
  3. 导航地图生成:生成包含路径的导航地图
  4. 视角控制:控制输出视角和视图范围
  5. 输出配置:配置输出分辨率、格式等参数

子功能

功能编号 功能名称 功能描述
2.4.2.F1 静态图片导出 导出当前视图或指定视角的图片
2.4.2.F2 路径视频生成 沿路径生成漫游视频
2.4.2.F3 导航地图生成 生成2D/3D导航地图
2.4.2.F4 视角设置 设置相机视角和路径
2.4.2.F5 分辨率配置 配置输出分辨率
2.4.2.F6 格式选择 选择输出格式PNG/JPG/MP4等
2.4.2.F7 批量输出 批量输出多条路径结果

2.4.2.3. 性能

性能指标

指标名称 目标值 说明
图片导出时间 < 2秒 导出单张图片的时间
视频生成速度 > 10FPS 视频生成的帧率
支持分辨率 4K 支持的最大输出分辨率
内存占用 < 500MB 输出过程的内存占用

性能优化策略

  1. 异步视频生成避免阻塞UI
  2. 帧缓存优化
  3. 硬件加速渲染

2.4.2.4. 输入输出项

1. 字段输入输出

输入字段

字段名 类型 必填 说明
Route PathRoute 要输出的路径
OutputType OutputType 输出类型(图片/视频)
Resolution Size 输出分辨率默认1920x1080
Format string 文件格式,根据类型自动确定

输出字段

字段名 类型 说明
OutputFilePath string 输出文件路径
FileSize long 输出文件大小
GenerationTime TimeSpan 生成耗时

2. 界面交互输入输出

界面输入

  • 输出类型选择
  • 分辨率设置
  • 文件格式选择
  • 保存路径选择

界面输出

  • 生成进度显示
  • 预览窗口
  • 输出结果提示
  • 文件打开链接

2.4.2.5. 算法

图片导出算法

算法:导出路径规划结果为图片
输入:路径,视角参数,输出配置
输出:图片文件

1. 设置相机位置和方向
2. 配置渲染参数
3. 渲染场景到帧缓冲区
4. 编码为指定格式PNG/JPG
5. 保存到文件

视频生成算法

算法:生成路径漫游视频
输入:路径,视频配置
输出:视频文件

1. 计算相机路径(沿路径的相机位置)
2. 初始化视频编码器
3. 对于视频的每一帧:
   4. 计算当前相机位置
   5. 渲染场景
   6. 编码帧到视频
7. 完成编码并保存文件

2.4.2.6. 流程逻辑

开始
  │
  ▼
┌─────────────────┐
│  选择输出路径    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  选择输出类型    │
└────────┬────────┘
         │
    ┌────┴────┐
    ▼         ▼
┌────────┐  ┌────────┐
│图片    │  │视频    │
└───┬────┘  └───┬────┘
    │           │
    ▼           ▼
┌────────┐  ┌────────┐
│设置视角│  │设置相机│
└───┬────┘  │路径    │
    │       └───┬────┘
    │           │
    │           ▼
    │       ┌────────┐
    │       │设置时长│
    │       └───┬────┘
    │           │
    └─────┬─────┘
          │
          ▼
┌─────────────────┐
│  设置分辨率/格式 │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  选择保存路径    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  开始生成输出    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  显示生成进度    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  完成并打开文件  │
└────────┬────────┘
         │
         ▼
        结束

2.4.2.7. 接口

公共接口

/// <summary>
/// 结果输出管理器
/// </summary>
public class ResultOutputManager
{
    /// <summary>
    /// 导出路径为图片
    /// </summary>
    /// <param name="route">路径对象</param>
    /// <param name="config">图片配置</param>
    /// <returns>输出结果</returns>
    public OutputResult ExportAsImage(PathRoute route, ImageExportConfig config);
    
    /// <summary>
    /// 生成路径漫游视频
    /// </summary>
    /// <param name="route">路径对象</param>
    /// <param name="config">视频配置</param>
    /// <returns>输出结果</returns>
    public OutputResult GenerateVideo(PathRoute route, VideoExportConfig config);
    
    /// <summary>
    /// 生成导航地图
    /// </summary>
    public NavigationMap GenerateNavigationMap(PathRoute route);
}

/// <summary>
/// 图片导出配置
/// </summary>
public class ImageExportConfig
{
    public int Width { get; set; }
    public int Height { get; set; }
    public ImageFormat Format { get; set; }
    public Viewpoint Viewpoint { get; set; }
}

/// <summary>
/// 视频导出配置
/// </summary>
public class VideoExportConfig
{
    public int Width { get; set; }
    public int Height { get; set; }
    public int FrameRate { get; set; }
    public double Duration { get; set; }
    public VideoFormat Format { get; set; }
}

2.4.2.8. 注释设计

代码注释规范

/// <summary>
/// 输出类型
/// </summary>
public enum OutputType
{
    /// <summary>
    /// 静态图片
    /// </summary>
    Image,
    
    /// <summary>
    /// 视频
    /// </summary>
    Video,
    
    /// <summary>
    /// 导航地图
    /// </summary>
    NavigationMap
}

/// <summary>
/// 图片格式
/// </summary>
public enum ImageFormat
{
    PNG,
    JPEG,
    BMP
}

2.4.2.9. 数据结构

OutputType 枚举

说明
Image 静态图片输出
Video 视频输出
NavigationMap 导航地图输出

ImageExportConfig 结构

字段名 类型 说明
Width int 图片宽度
Height int 图片高度
Format ImageFormat 图片格式
Viewpoint Viewpoint 相机视角
IncludeAnnotations bool 是否包含标注

VideoExportConfig 结构

字段名 类型 说明
Width int 视频宽度
Height int 视频高度
FrameRate int 帧率FPS
Duration double 时长(秒)
Format VideoFormat 视频格式
CameraHeight double 相机高度(米)

OutputResult 结构

字段名 类型 说明
Success bool 是否成功
FilePath string 输出文件路径
FileSize long 文件大小(字节)
GenerationTime TimeSpan 生成耗时
ErrorMessage string 错误消息(如果失败)