I attempted to perform raycasting on an IFC model using the following method to obtain the faces and their normal vectors of the geometry. However, there are geometries for which I cannot obtain accurate normal vectors.

Is my approach incorrect? What is the correct way to obtain accurate normal vectors? IFC.zip (1.4 MB)

const result = this.raycaster.castRay(meshes);
const normal = result.face.normal;

I’ve examined result.normal, and it appears to be the same as result.face.normal.
I expected to obtain the normal vector of the face as shown in the image,
but it seems that incorrect values are being stored in the result.normal.

I’m not sure if this issue is related to the library I’m using or if I might have overlooked something in my code.