39 Range<DistanceProxy::ConstVertexIterator> vertices)
43 auto minSeparation = std::numeric_limits<Length>::infinity();
47 for (
const auto& vertex: vertices)
50 if (minSeparation > s)
57 else if (minSeparation == s)
73 auto separation = -std::numeric_limits<Length>::infinity();
77 const auto xf =
MulT(xf1, xf2);
86 const auto xf =
MulT(xf2, xf1);
95 const auto ap = GetMinSeparationInfo(origin, normal, vertices);
99 const auto ap = GetMinIndexSeparation(origin, normal, vertices);
101 if (separation < ap.distance)
103 separation = ap.distance;
104 secondIndices = ap.indices;
115 auto separation = -std::numeric_limits<Length>::infinity();
119 const auto xf =
MulT(xf2, xf1);
126 const auto ap = GetMinSeparationInfo(origin, normal, proxy2vertices);
127 if (separation < ap.distance)
129 separation = ap.distance;
130 secondIndices = ap.indices;
142 auto separation = -std::numeric_limits<Length>::infinity();
145 const auto xf =
MulT(xf2, xf1);
152 const auto ap = GetMinSeparationInfo(origin, normal, proxy2.
GetVertices());
153 if (stop < ap.distance)
157 if (separation < ap.distance)
159 separation = ap.distance;
160 secondIndices = ap.indices;
171 auto separation = -std::numeric_limits<Length>::infinity();
175 for (
auto i = decltype(count1){0}; i < count1; ++i)
180 const auto ap = GetMinSeparationInfo(origin, normal, proxy2.
GetVertices());
181 if (stop < ap.distance)
185 if (separation < ap.distance)
187 separation = ap.distance;
188 secondIndices = ap.indices;