distance is now signed

This commit is contained in:
CookieKastanie 2022-03-04 11:05:37 +01:00
parent c34d0d31d9
commit 7e9d928af1

View File

@ -52,6 +52,8 @@ double pointTriangleDistance(double *p, vtkCell *triangle, double *direction) {
double db = vtkMath::Dot(vecTB, bp);
double dc = vtkMath::Dot(vecTC, cp);
double distance = 0;
if(da <= 0 && db <= 0 && dc <= 0) {
double na[3] = {
n[0] * a[0],
@ -78,7 +80,7 @@ double pointTriangleDistance(double *p, vtkCell *triangle, double *direction) {
direction[1] = nt[1];
direction[2] = nt[2];
vtkMath::Normalize(direction);
return vtkMath::Norm(nt);
distance = vtkMath::Norm(nt);
} else {
double normalA[3];
@ -105,6 +107,16 @@ double pointTriangleDistance(double *p, vtkCell *triangle, double *direction) {
direction[2] = normalC[2];
}
return min;
distance = min;
}
if(vtkMath::Dot(direction, n) < 0) {
direction[0] = -direction[0];
direction[1] = -direction[1];
direction[2] = -direction[2];
return -distance;
} else {
return distance;
}
}