24 unsigned int numFailures = 0;
26 const unsigned int numSamples = ShapeT::RequiredSamples;
27 if (numSamples >= indices.size())
32 for (
unsigned int i = 0; i < numTests; ++i)
35 for (
unsigned int j = 0; j < numSamples; ++j)
41 }
while (std::find(sampleIndices.
begin(), sampleIndices.
end(), idx) !=
46 for (
unsigned int j = 0; j < numSamples; ++j)
48 samples[j] = pc[sampleIndices[j]].pos;
49 samples[j + numSamples] = pc[sampleIndices[j]].normal;
52 if (shape.Init(samples))
65 for (
size_t i = 0; i < indices.size(); ++i)
67 for (
size_t j = 0; j < shapes.
size(); ++j)
71 float d = shapes[j].DistanceAndNormal(pc[indices[i]].pos, &n);
76 float dn = n.dot(pc[indices[i]].normal);
77 if (abs(dn) > normalThresh)
84 for (
size_t i = 0; i < scores.
size(); ++i)
86 if (scores[i] < .9f * indices.size())