当前位置: 首页>>代码示例>>C++>>正文


C++ PlannerData::recordEdge方法代码示例

本文整理汇总了C++中base::PlannerData::recordEdge方法的典型用法代码示例。如果您正苦于以下问题:C++ PlannerData::recordEdge方法的具体用法?C++ PlannerData::recordEdge怎么用?C++ PlannerData::recordEdge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在base::PlannerData的用法示例。


在下文中一共展示了PlannerData::recordEdge方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

void ompl::control::KPIECE1::getPlannerData(base::PlannerData &data) const
{
    Planner::getPlannerData(data);

    Grid::CellArray cells;
    tree_.grid.getCells(cells);

    if (PlannerData *cpd = dynamic_cast<control::PlannerData*>(&data))
    {
        double delta = siC_->getPropagationStepSize();

        for (unsigned int i = 0 ; i < cells.size() ; ++i)
            for (unsigned int j = 0 ; j < cells[i]->data->motions.size() ; ++j)
            {
                const Motion* m = cells[i]->data->motions[j];
                if (m->parent)
                    cpd->recordEdge(m->parent->state, m->state, m->control, m->steps * delta);
                else
                    cpd->recordEdge(NULL, m->state, NULL, 0.);
                cpd->tagState(m->state, cells[i]->border ? 2 : 1);
            }
    }
    else
    {
        for (unsigned int i = 0 ; i < cells.size() ; ++i)
            for (unsigned int j = 0 ; j < cells[i]->data->motions.size() ; ++j)
            {
                const Motion* m = cells[i]->data->motions[j];
                data.recordEdge(m->parent ? m->parent->state : NULL, m->state);
                data.tagState(m->state, cells[i]->border ? 2 : 1);
            }
    }
}
开发者ID:megan-starr9,项目名称:UAV_Aiolos,代码行数:33,代码来源:KPIECE1.cpp

示例2:

void ompl::control::SyclopEST::getPlannerData(base::PlannerData& data) const
{
    Planner::getPlannerData(data);
    if (PlannerData *cpd = dynamic_cast<control::PlannerData*>(&data))
    {
        const double delta = siC_->getPropagationStepSize();

        for (std::vector<Motion*>::const_iterator i = motions_.begin(); i != motions_.end(); ++i)
        {
            const Motion* m = *i;
            if (m->parent)
                cpd->recordEdge(m->parent->state, m->state, m->control, m->steps * delta);
            else
                cpd->recordEdge(NULL, m->state, NULL, 0.);
        }
    }
    else
    {
        for (std::vector<Motion*>::const_iterator i = motions_.begin(); i != motions_.end(); ++i)
        {
            const Motion* m = *i;
            data.recordEdge(m->parent ? m->parent->state : NULL, m->state);
        }
    }
}
开发者ID:megan-starr9,项目名称:UAV_Aiolos,代码行数:25,代码来源:SyclopEST.cpp

示例3:

void ompl::geometric::BasicPRMmodif::getPlannerData(base::PlannerData &data) const
{
    Planner::getPlannerData(data);

    for (unsigned int i = 0 ; i < milestones_.size() ; ++i)
        for (unsigned int j = 0 ; j < milestones_[i]->adjacent.size() ; ++j)
            data.recordEdge(milestones_[i]->state, milestones_[i]->adjacent[j]->state);
}
开发者ID:nicocoaste,项目名称:newBoundingBoxPlanner,代码行数:8,代码来源:BasicPRMmodif.cpp

示例4:

void ompl::geometric::BallTreeRRTstar::getPlannerData(base::PlannerData &data) const
{
    Planner::getPlannerData(data);

    std::vector<Motion*> motions;
    if (nn_)
        nn_->list(motions);

    for (unsigned int i = 0 ; i < motions.size() ; ++i)
        data.recordEdge(motions[i]->parent ? motions[i]->parent->state : NULL, motions[i]->state);
}
开发者ID:megan-starr9,项目名称:UAV_Aiolos,代码行数:11,代码来源:BallTreeRRTstar.cpp

示例5:

void ompl::geometric::LazyRRT::getPlannerData(base::PlannerData &data) const
{
    Planner::getPlannerData(data);

    std::vector<Motion*> motions;
    if (nn_)
        nn_->list(motions);

    for (unsigned int i = 0 ; i < motions.size() ; ++i)
    {
        data.recordEdge(motions[i]->parent ? motions[i]->parent->state : NULL, motions[i]->state);
        if (motions[i]->valid)
            data.tagState(motions[i]->state, 1);
    }
}
开发者ID:megan-starr9,项目名称:UAV_Aiolos,代码行数:15,代码来源:LazyRRT.cpp


注:本文中的base::PlannerData::recordEdge方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。