问题
three.js是JavaScript编写的WebGL第三方库,可以用来显示数模
现在发现一个问题
用OCC中RWObj_CafWriter类导出的obj数模放到threejs里显示,结果是错误的
对比两张图发现不是导出错了,而是这两个引擎显示的源坐标轴不太对(大概是吧)
解决
抱着试一试的心态,就去官方文档里搜了一下关键字CoordinateSystem
没想到真有叫某某CoordinateSystemConverter的
那就按照它文档里的敲一下
代码
首先从RWObj_CafWriter的对象里拿到当前转换器的地址(即使它是空的,之前没用)
RWMesh_CoordinateSystemConverter r = writer.CoordinateSystemConverter();
然后上面文档里说要明确定义输入输出坐标系,再到文档里找有没有设置的方法
发现他要传进去一个指定yz方向的这么一个变量,再往下摸
这俩正好作为输入输出
gp_Ax3 g_in = r.StandardCoordinateSystem(RWMesh_CoordinateSystem_posYfwd_posZup);
gp_Ax3 g_out = r.StandardCoordinateSystem(RWMesh_CoordinateSystem_negZfwd_posYup);
r.SetInputCoordinateSystem(g_in);
r.SetOutputCoordinateSystem(g_out);
writer.SetCoordinateSystemConverter(r);
这下坐标系对上了