function transformDxfPointToWCS(point:DxfCoordinate3d, localNormal: DxfCoordinate3d, rotation:number): Vector3 {
let localPoint = new Vector3(
point.x,
point.y,
point.z
);
const N = new Vector3(localNormal.x, localNormal.y, localNormal.z);
if(N.x===0 && N.y===0 && N.z===1){
return localPoint;
}
const zAxis = N.clone().normalize();
const arbitraryVector = new Vector3(1, 0, 0);
let xAxis = arbitraryVector
.clone()
.sub(zAxis.clone().multiplyScalar(arbitraryVector.dot(zAxis)))
.normalize();
const yAxis = Vector3.crossVectors(zAxis, xAxis).normalize();
const basisMatrix = new Matrix4().makeBasis(xAxis, yAxis, zAxis);
const rotationMatrix = new Matrix4().makeRotationZ(rotation);
const resultMatrix = new Matrix4().multiplyMatrices(basisMatrix, rotationMatrix,);
const projectedPoint = localPoint.clone().applyMatrix4(resultMatrix);
return projectedPoint;
}