37 #include "ompl/base/samplers/MaximizeClearanceValidStateSampler.h"
38 #include "ompl/base/SpaceInformation.h"
41 ValidStateSampler(si), sampler_(si->allocStateSampler()), improveAttempts_(3), work_(si->allocState())
43 name_ =
"max_clearance";
49 ompl::base::MaximizeClearanceValidStateSampler::~MaximizeClearanceValidStateSampler(
void)
51 si_->freeState(work_);
56 unsigned int attempts = 0;
61 sampler_->sampleUniform(state);
62 valid = si_->getStateValidityChecker()->isValid(state, dist);
64 }
while (!valid && attempts < attempts_);
71 while (attempts < improveAttempts_)
73 sampler_->sampleUniform(work_);
74 validW = si_->getStateValidityChecker()->isValid(work_, distW);
76 if (validW && distW > dist)
79 si_->copyState(state, work_);
90 unsigned int attempts = 0;
95 sampler_->sampleUniformNear(state, near, distance);
96 valid = si_->getStateValidityChecker()->isValid(state, dist);
98 }
while (!valid && attempts < attempts_);
105 while (attempts < improveAttempts_)
107 sampler_->sampleUniformNear(work_, near, distance);
108 validW = si_->getStateValidityChecker()->isValid(work_, distW);
110 if (validW && distW > dist)
113 si_->copyState(state, work_);