26 std::numeric_limits<std::chrono::milliseconds::rep>::max();
72 return m_autoAcceptSize;
95 std::pair<size_t, float>* score)
const;
98 CandidateFailureProbability(
float candidateSize,
100 float drawnCandidates,
104 std::pow(1.f - candidateSize / (numberOfPoints * levels * (1 << (m_reqSamples - 1))),
110 UpdateAcceptedFailureProbability(
float currentFailureProbability,
size_t numTries)
const
113 if (currentFailureProbability > 1.f)
115 currentFailureProbability = 1.f;
117 return currentFailureProbability;
119 template <
class ScoreVisitorT>
121 const MiscLib::Vector<ImmediateOctreeType*>& octrees,
122 const PointCloud& pc,
123 ScoreVisitorT& scoreVisitor,
126 const MiscLib::Vector<double>& sampleLevelProbSum,
127 size_t* drawnCandidates,
128 MiscLib::Vector<std::pair<float, size_t>>* sampleLevelScores,
129 float* bestExpectedValue,
130 CandidatesType* candidates)
const;
131 template <
class ScoreVisitorT>
132 bool FindBestCandidate(CandidatesType& candidates,
133 const MiscLib::Vector<ImmediateOctreeType*>& octrees,
134 const PointCloud& pc,
135 ScoreVisitorT& scoreVisitor,
137 size_t drawnCandidates,
141 float* maxForgottenCandidate,
142 float* candidateFailProb)
const;
143 size_t StatBucket(
float score)
const;
144 void UpdateLevelWeights(
float factor,
145 const MiscLib::Vector<std::pair<float, size_t>>& levelScores,
146 MiscLib::Vector<double>* sampleLevelProbability)
const;
149 ConstructorsType m_constructors;
151 size_t m_maxCandTries;
153 size_t m_autoAcceptSize;
GfxTL::AACubeTree< 3, ScoreAACubeTreeStrategy< 3, RebuildAACubeTreeStrategy< GfxTL::BucketSizeMaxLevelSubdivisionTreeStrategy< GfxTL::CellLevelTreeStrategy< GfxTL::CellCenterAACubeTreeStrategy< 3, GfxTL::BaseAACubeTreeStrategy< GfxTL::CellRangeDataTreeStrategy< GfxTL::NullTreeStrategy, GfxTL::IteratedIndexedIteratorTreeDataKernel< MiscLib::Vector< size_t >::iterator, PointCloud::const_iterator > > > > > > > > > IndexedOctreeType