0

我正在尝试从 ifc.js 查看器中创建一个 bcf 文件。ifc.js 查看器使用带相机和场景的 three.js webglrenderer。这是一个例子。

在此处输入图像描述 在此处输入图像描述 https://threejs.org/docs/#api/en/cameras/Camera https://threejs.org/docs/#api/en/scenes/Scene

如何使用 CameraUpVector、CameraDirection 和 CameraViewPoint 将此视图转换为 bcf 视图。 在此处输入图像描述

https://github.com/BuildingSMART/BCF-XML/tree/release_3_0/Documentation

4

1 回答 1

0

我发现了自己的转变。

bcfCameraViewPointX = camera.position.x;
bcfCameraViewPointX = -camera.position.z;
bcfCameraViewPointX = camera.position.y;

//for the direction you have to calculate a vector out of the roation and the eulerOrder

let vector3 = new THREE.Vector3();
vector3.x = 0;
vector3.y = 0;
vector3.z = -1;

vector3.applyEuler(camera.rotation, camera.eulerOrder);

bcfCameraDirectionX = vector3.x;
bcfCameraDirectionX = -vector3.z;
bcfCameraDirectionX = vector3.y;

bcfCameraUpVectorX = camera.up.x;
bcfCameraUpVectorX = -camera.up.z;
bcfCameraUpVectorX = camera.up.y;

bcfFieldOfView = camera.fov;
于 2021-11-23T19:24:26.173 回答