本发明涉及驾驶模拟领域,尤其涉及一种场景文件可视化编辑系统、方法及存储介质。
背景技术:
1、opendrive是驾驶模拟应用程序中描述道路网络的主要开放格式和事实上的标准;opendrive也是一种成熟的格式,已经在许多驾驶模拟解决方案中证明了它的可用性,如车辆动力学、交通模拟,情景模拟等;
2、然而,在开发的web版场景编辑器时,目前无js版相关开源库可供参考;且目前仅有c++版功能库的libopendrive可供使用:
3、libopendrive是可解析opendrive路网文件的功能库,可输出路网顶点几何数据,这些几何数据可用于可视化绘制路网;
4、现有技术中为编写驾驶模拟应用的libopendrive源码是c++编写的,web端无法直接使用,需要修改源码并将其编译成webassembly(webassembly(简称wasm)是一个虚拟指令集体系架构(virtual isa),整体架构包括核心的isa定义、二进制编码、程序语义的定义与执行,以及面向不同的嵌入环境(如web)的应用编程接口(webassemblyapi);其初始目标是为c/c++等语言编写的程序经过编译,在确保安全和接近原生应用的运行速度更好地在web平台上运行)才可供web端使用;并且libopendrive不支持对openscenario(.xosc)场景文件的解析。
技术实现思路
1、本发明的目的在于提供一种场景文件可视化编辑系统、方法及存储介质,解决了现有技术中指出的上述技术问题。
2、本发明提供了一种场景文件可视化编辑系统,包括初始化模块、渲染模块、编辑模块;
3、其中,所述初始化模块,用于在初始化场景编辑器后,所述场景编辑器根据当前用户发送的场景编辑请求获取场景文件;对所述场景文件进行解析得到场景节点;根据所述场景节点获取场景ei节点;所述场景ei节点包括路网文件、侧边栏数据、属性区数据、资产库数据
4、所述渲染模块,用于对所述路网文件进行渲染,得到场景主视图;
5、所述编辑模块,用于在所述场景主视图中将所述侧边栏数据进行读取后配置渲染得到侧边栏元素列表数据;将所述属性数据进行读取后通过拦截器进行配置得到更新后的属性数据;对所述资产库数据进行调用渲染更新场景主视图。
6、较佳的,所述渲染模块,具体用于对所述路网文件进行解析,得到顶点数据及坐标数据;
7、对所述顶点数据及所述坐标数据通过编译后进行渲染,得到场景主视图。
8、较佳的,所述编辑模块,还包括拦截器;
9、所述拦截器,用于拦截节点,对所述节点进行编辑;拦截属性信息;对所述属性信息进行修改;拦截用户数据,对所述用户数据进行处理。
10、较佳的,所述一种场景文件可视化编辑系统,还包括历史记录模块;所述历史记录模块,用于异步采集获取所述场景编辑器的历史操作,将所述历史操作进行记录得到完整的历史记录。
11、较佳的,所述拦截器,包括atob阶段拦截模块、btoa阶段拦截模块;
12、所述atob阶段拦截模块,用于在调用tojs方法时触发生成js数据;
13、所述btoa阶段拦截模块,用于在调用onvalueschange方法时触发得到更新后的属性数据;
14、相应的,本发明还提供了一种场景文件可视化编辑方法,包括如下操作步骤:
15、一种场景文件可视化编辑方法,包括如下操作步骤:
16、在初始化场景编辑器后,所述场景编辑器根据当前用户发送的场景编辑请求获取场景文件;对所述场景文件进行解析得到场景节点;根据所述场景节点获取场景ei节点;
17、所述场景ei节点包括路网文件、侧边栏数据、属性区数据、资产库数据;
18、对所述路网文件进行渲染,得到场景主视图;
19、在所述场景主视图中将所述侧边栏数据进行读取后配置渲染得到侧边栏元素列表数据;将所述属性数据进行读取后通过拦截器进行配置得到更新后的属性数据;对所述资产库数据进行调用渲染更新场景主视图;并异步采集获取所述场景编辑器的历史操作,将所述历史操作进行记录得到完整的历史记录。
20、较佳的,所述对所述路网文件进行渲染,得到场景主视图,包括如下操作步骤:
21、对所述路网文件进行解析,得到顶点数据及坐标数据;
22、对所述顶点数据及所述坐标数据通过编译后进行渲染,得到场景主视图。
23、较佳的,所述拦截器包括atob阶段与btoa阶段;所述atob阶段在调用tojs方法时触发生成js数据;所述btoa阶段在调用onvalueschange方法时触发得到更新后的属性数据;
24、较佳的,所述拦截器的拦截操作包括如下操作:
25、拦截节点操作;拦截属性信息操作;拦截用户数据操作。
26、本发明提出一种存储介质,用于存储计算机可读程序,所述计算机可读程序用于执行上述一种场景文件可视化编辑方法。
27、与现有技术相比,本发明实施例至少存在如下方面的技术优势:
28、分析本发明提供的上述一种场景文件可视化编辑系统、方法及存储介质可知,在具体应用时首先在场景编辑器初始化运行环境后根据用户的场景编辑请求获取场景文件,然后对场景文件利用parsexmltoelement函数进行解析得到场景节点;进而根据场景节点获取场景ei节点;将场景ei节点中的路网文件、侧边栏数据、属性区数据、资产库数据进行分别渲染更新场景主视图,并记录用户操作得到完整历史记录;在此之中,将libopendrive库里的opendrive道路解析成顶点数据的方法,坐标转换方法,按照webassembly的规范导出来,将这些需要用的方法导出,通过编译器变异成web可使用的webassembly格式;用户不需要懂得openscenario标准即可便捷地编辑出符合标准的场景,快速生成符合openscenario标准的场景文件;并且在用户可视化操作过程中,通过异步地自动监听场景内容变更,自动记录操作历史,无需手动处理繁琐的细节。
1.一种场景文件可视化编辑系统,其特征在于,包括初始化模块、渲染模块、编辑模块;
2.根据权利要求1所述的一种场景文件可视化编辑系统,其特征在于,所述渲染模块,具体用于对所述路网文件进行解析,得到顶点数据及坐标数据;
3.根据权利要求2所述的一种场景文件可视化编辑系统,其特征在于,所述编辑模块,还包括拦截器;
4.根据权利要求3所述的一种场景文件可视化编辑系统,其特征在于,还包括历史记录模块;所述历史记录模块,用于异步采集获取所述场景编辑器的历史操作,将所述历史操作进行记录得到完整的历史记录。
5.根据权利要求4所述的一种场景文件可视化编辑系统,其特征在于,所述拦截器,包括atob阶段拦截模块、btoa阶段拦截模块。
6.根据权利要求5所述的一种场景文件可视化编辑系统,其特征在于,所述atob阶段拦截模块,用于在调用tojs方法时触发生成js数据;
7.一种场景文件可视化编辑方法,其特征在于,包括如下操作步骤:
8.根据权利要求7所述的一种场景文件可视化编辑方法,其特征在于,所述对所述路网文件进行渲染,得到场景主视图,包括如下操作步骤:
9.根据权利要求8所述的一种场景文件可视化编辑方法,其特征在于,所述拦截器的拦截操作包括如下操作:
10.一种存储介质,用于存储计算机可读程序,其特征在于,所述计算机可读程序用于执行权利要求7至9中任一项所述的一种场景文件可视化编辑方法。