本文整理汇总了C++中WindowProjection::GeoToScreenIfVisible方法的典型用法代码示例。如果您正苦于以下问题:C++ WindowProjection::GeoToScreenIfVisible方法的具体用法?C++ WindowProjection::GeoToScreenIfVisible怎么用?C++ WindowProjection::GeoToScreenIfVisible使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WindowProjection
的用法示例。
在下文中一共展示了WindowProjection::GeoToScreenIfVisible方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void
AirspaceRenderer::DrawIntersections(Canvas &canvas,
const WindowProjection &projection) const
{
for (unsigned i = intersections.size(); i--;) {
RasterPoint sc;
if (projection.GeoToScreenIfVisible(intersections[i], sc))
look.intercept_icon.Draw(canvas, sc.x, sc.y);
}
}
示例2:
static void
RenderMarkers(Canvas &canvas, const WindowProjection &projection,
const MarkerLook &look, const Markers &markers)
{
for (const Marker &m : markers) {
RasterPoint pt;
if (projection.GeoToScreenIfVisible(m.location, pt))
look.icon.Draw(canvas, pt);
}
}
示例3: Draw
void Marks::Draw(Canvas &canvas, const WindowProjection &projection)
{
Poco::ScopedRWLock protect(lock, false); // read only
for (unsigned i = 0; i < marker_store.size(); i++) {
RasterPoint sc;
if (projection.GeoToScreenIfVisible(marker_store[i], sc))
icon.draw(canvas, sc);
}
}
示例4:
void
TopographyFileRenderer::PaintPoint(Canvas &canvas,
const WindowProjection &projection,
const unsigned short *lines,
const unsigned short *end_lines,
const GeoPoint *points) const
{
if (!icon.IsDefined())
return;
for (; lines < end_lines; ++lines) {
const GeoPoint *end = points + *lines;
for (; points < end; ++points) {
RasterPoint sc;
if (projection.GeoToScreenIfVisible(*points, sc))
icon.Draw(canvas, sc.x, sc.y);
}
}
}
示例5:
static void
DrawThermalSources(Canvas &canvas, const MaskedIcon &icon,
const WindowProjection &projection,
const T &sources,
const double aircraft_altitude,
const SpeedVector &wind)
{
for (const auto &source : sources) {
// find height difference
if (aircraft_altitude < source.ground_height)
continue;
// draw thermal at location it would be at the glider's height
GeoPoint location = wind.IsNonZero()
? source.CalculateAdjustedLocation(aircraft_altitude, wind)
: source.location;
// draw if it is in the field of view
PixelPoint pt;
if (projection.GeoToScreenIfVisible(location, pt))
icon.Draw(canvas, pt);
}
}
示例6: glPushMatrix
void
TopographyFileRenderer::PaintPoint(Canvas &canvas,
const WindowProjection &projection,
const XShape &shape,
float *opengl_matrix) const
{
if (!icon.IsDefined())
return;
// TODO: for now i assume there is only one point for point-XShapes
RasterPoint sc;
if (!projection.GeoToScreenIfVisible(shape.get_center(), sc))
return;
#ifndef HAVE_GLES
glPushMatrix();
glLoadMatrixf(opengl_matrix);
#endif
icon.Draw(canvas, sc.x, sc.y);
#ifndef HAVE_GLES
glPopMatrix();
#endif
}