Fixed an unhandled exception: 0xC0000090: Floating-point invalid operation.
To fix an unhandled exception: 0xC0000090: Floating-point invalid operation,
have to modify src/algorithm/LineIntersector.cpp line 874 from:
#if COMPUTE_Z
double minZ0 = n00.z < n01.z ? n00.z : n01.z;
double minZ1 = n10.z < n11.z ? n10.z : n11.z;
double maxZ0 = n00.z > n01.z ? n00.z : n01.z;
double maxZ1 = n10.z > n11.z ? n10.z : n11.z;
double intMinZ = minZ0 > minZ1 ? minZ0 : minZ1;
double intMaxZ = maxZ0 < maxZ1 ? maxZ0 : maxZ1;
double intMidZ = (intMinZ + intMaxZ) / 2.0;
normPt.z = intMidZ;
n00.z -= normPt.z;
n01.z -= normPt.z;
n10.z -= normPt.z;
n11.z -= normPt.z;
#endif
To:
#if COMPUTE_Z
if( !ISNAN(n00.z) )
{
double minZ0 = n00.z < n01.z ? n00.z : n01.z;
double minZ1 = n10.z < n11.z ? n10.z : n11.z;
double maxZ0 = n00.z > n01.z ? n00.z : n01.z;
double maxZ1 = n10.z > n11.z ? n10.z : n11.z;
double intMinZ = minZ0 > minZ1 ? minZ0 : minZ1;
double intMaxZ = maxZ0 < maxZ1 ? maxZ0 : maxZ1;
double intMidZ = (intMinZ + intMaxZ) / 2.0;
normPt.z = intMidZ;
n00.z -= normPt.z;
n01.z -= normPt.z;
n10.z -= normPt.z;
n11.z -= normPt.z;
}
#endif
In 4334: