本文整理汇总了C++中mrpt::round方法的典型用法代码示例。如果您正苦于以下问题:C++ mrpt::round方法的具体用法?C++ mrpt::round怎么用?C++ mrpt::round使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mrpt
的用法示例。
在下文中一共展示了mrpt::round方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawCurrentEstimationToImage
void CMetricMapBuilderRBPF::drawCurrentEstimationToImage(CCanvas* img)
{
using mrpt::round;
unsigned int i, M = mapPDF.particlesCount();
std::deque<TPose3D> path;
unsigned int imgHeight = 0;
MRPT_START
const mrpt::maps::CMultiMetricMap* currentMetricMapEstimation =
mapPDF.getCurrentMostLikelyMetricMap();
ASSERT_(currentMetricMapEstimation->m_gridMaps.size() > 0);
// Find which is the most likely path index:
unsigned int bestPath = 0;
double bestPathLik = -1;
for (i = 0; i < M; i++)
{
if (mapPDF.getW(i) > bestPathLik)
{
bestPathLik = mapPDF.getW(i);
bestPath = i;
}
}
// Compute the length of the paths:
mapPDF.getPath(0, path);
// Adapt the canvas size:
bool alreadyCopiedImage = false;
auto g = currentMetricMapEstimation->m_gridMaps[0];
{
auto* obj = dynamic_cast<CImage*>(img);
if (obj) obj->resize(g->getSizeX(), g->getSizeY(), mrpt::img::CH_GRAY);
}
if (!alreadyCopiedImage)
{
CImage imgGrid;
// grid map as bitmap:
// ----------------------------------
g->getAsImage(imgGrid);
img->drawImage(0, 0, imgGrid);
imgHeight = imgGrid.getHeight();
}
int x1 = 0, x2 = 0, y1 = 0, y2 = 0;
float x_min = g->getXMin();
float y_min = g->getYMin();
float resolution = g->getResolution();
// Paths hypothesis:
// ----------------------------------
/***/
for (i = 0; i <= M; i++)
{
if (i != bestPath || i == M)
{
mapPDF.getPath(i == M ? bestPath : i, path);
size_t nPoses = path.size();
// First point: (0,0)
x2 = round((path[0].x - x_min) / resolution);
y2 = round((path[0].y - y_min) / resolution);
// Draw path in the bitmap:
for (size_t j = 0; j < nPoses; j++)
{
// For next segment
x1 = x2;
y1 = y2;
// Coordinates -> pixels
x2 = round((path[j].x - x_min) / resolution);
y2 = round((path[j].y - y_min) / resolution);
// Draw line:
img->line(
x1, round((imgHeight - 1) - y1), x2,
round((imgHeight - 1) - y2),
i == M ? TColor(0, 0, 0)
: TColor(0x50, 0x50, 0x50), // Color, gray levels,
i == M ? 3 : 1 // Line width
);
}
}
}
MRPT_END
}