Skip to content

坐标系与单位

Z-up / CATIA 约定

viewer-core 的世界坐标系采用 Z-up / CATIA 约定:

  • Front = +X:正前方朝 +X;
  • Right = +Y:右方朝 +Y;
  • Top = +Z:上方朝 +Z。

注意:这与 glTF 等生态默认的 Y-up 不同——本引擎的世界 up 是 +Z;相机 up 向量(通常为 +Z)、剖切轴(SectionAxis"x" / "y" / "z")、标准视图等所有公开 API 的方向语义都以此为准。

标准视图

viewer.camera.setStandardView(view) 接受 7 个视图名,语义如下:

视图相机方位(从该方向看向模型)屏幕 up 向量
"front"从 +X 看+Z
"back"从 −X 看+Z
"right"从 +Y 看+Z
"left"从 −Y 看+Z
"top"从 +Z 俯视−X
"bottom"从 −Z 仰视−X
"iso"等轴测(+X +Y +Z 八分角)+Z

注意 top / bottom 的 up 是 −X:垂直向下看时 up 不能与视线平行,引擎选 −X 使俯视图与 CATIA 的 Top 视图一致(屏幕上 +X 朝下、+Y 朝右)。

标准视图以最近一次取景范围为中心定距取景;模型尚未取过景(还没 fitView 或加载完成)时调用是 no-op。

ts
viewer.camera.setStandardView("top");

单位

.fmbv 文件头内嵌单位标记(毫米 / 米 / 英寸),坐标值按该单位写入。viewer 不做单位换算:渲染、包围盒、拾取点等公开 API 返回的坐标都是模型文件里的原始数值。需要展示带单位的尺寸时,由集成方按数据供应方约定的单位自行格式化。

Y-up 数据的自动处理

部分上游格式以 Y-up 约定导出,这类 .fmbv 文件在加载时会被自动归一化到引擎的 Z-up 世界坐标:文件头内嵌 up-axis 标记(Y_UP / Z_UP),引擎按标记把 Y-up 内容旋转到 Z-up——集成方无需做任何干预,标准视图、剖切轴等语义在两类文件上保持一致。

下一步