how can I transform a view from three.js camera and scene to a bcf cameraview

379 Views Asked by At

I'm trying to create a bcf file out of the ifc.js viewer. The ifc.js viewer is using a three.js webglrenderer with a camera and scene. Here is an example.

enter image description here enter image description here https://threejs.org/docs/#api/en/cameras/Camera https://threejs.org/docs/#api/en/scenes/Scene

How can I transform this view to a bcf view with CameraUpVector, CameraDirection and CameraViewPoint. enter image description here

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

1

There are 1 best solutions below

0
On

I found a transformation by my self.

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;