void CameraSettings::serialize(In* in, Out* out)
{
    V4L2Setting& autoExposure = settings[AutoExposure];
    V4L2Setting& autoWhiteBalance = settings[AutoWhiteBalance];
    V4L2Setting& contrast = settings[Contrast];
    V4L2Setting& exposure = settings[Exposure];
    V4L2Setting& fadeToBlack = settings[FadeToBlack];
    V4L2Setting& gain = settings[Gain];
    V4L2Setting& hue = settings[Hue];
    V4L2Setting& saturation = settings[Saturation];
    V4L2Setting& sharpness = settings[Sharpness];
    V4L2Setting& whiteBalance = settings[WhiteBalance];

    STREAM_REGISTER_BEGIN;
    STREAM(camera, CameraInfo);
    STREAM(autoExposure);
    STREAM(autoWhiteBalance);
    STREAM(contrast);
    STREAM(exposure);
    STREAM(fadeToBlack);
    STREAM(gain);
    STREAM(hue);
    STREAM(saturation);
    STREAM(sharpness);
    STREAM(whiteBalance);
    STREAM_REGISTER_FINISH;

    if(in) {
        enforceBounds();
    }
}
void planning_models::KinematicModel::RevoluteJointModel::getRandomValuesNearBy(random_numbers::RandomNumberGenerator &rng, std::vector<double> &values, const Bounds &bounds,
                                                                                const std::vector<double> &near, const double distance) const
{  
  if (continuous_)
  {
    values.push_back(rng.uniformReal(near[values.size()] - distance, near[values.size()] + distance));
    enforceBounds(values, bounds);
  }
  else
    values.push_back(rng.uniformReal(std::max(bounds[0].first, near[values.size()] - distance),
                                     std::min(bounds[0].second, near[values.size()] + distance)));
}
예제 #3
0
bool ompl::base::SpaceInformation::searchValidNearby(const ValidStateSamplerPtr &sampler, State *state, const State *near, double distance) const
{
    if (state != near)
        copyState(state, near);

    // fix bounds, if needed
    if (!satisfiesBounds(state))
        enforceBounds(state);

    bool result = isValid(state);

    if (!result)
    {
        // try to find a valid state nearby
        State *temp = cloneState(state);
        result = sampler->sampleNear(state, temp, distance);
        freeState(temp);
    }

    return result;
}