| 80 | static constexpr double VTK_QUAD_CONVERGED = 1.e-04; |
| 81 | |
| 82 | inline static void ComputeNormal( |
| 83 | vtkQuad* self, const double* pt1, const double* pt2, const double* pt3, double n[3]) |
| 84 | { |
| 85 | vtkTriangle::ComputeNormal(pt1, pt2, pt3, n); |
| 86 | |
| 87 | // If first three points are co-linear, then use fourth point |
| 88 | // |
| 89 | double pt4[3]; |
| 90 | if (n[0] == 0.0 && n[1] == 0.0 && n[2] == 0.0) |
| 91 | { |
| 92 | self->Points->GetPoint(3, pt4); |
| 93 | vtkTriangle::ComputeNormal(pt2, pt3, pt4, n); |
| 94 | } |
| 95 | } |
| 96 | |
| 97 | //------------------------------------------------------------------------------ |
| 98 | int vtkQuad::EvaluatePosition(const double x[3], double closestPoint[3], int& subId, |