本文整理汇总了C++中Way::isHidden方法的典型用法代码示例。如果您正苦于以下问题:C++ Way::isHidden方法的具体用法?C++ Way::isHidden怎么用?C++ Way::isHidden使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Way
的用法示例。
在下文中一共展示了Way::isHidden方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: snapMouseMoveEvent
void CreateSingleWayInteraction::snapMouseMoveEvent(QMouseEvent* ev, Feature* lastSnap)
{
if (Node* Pt = dynamic_cast<Node*>(lastSnap))
LastCursor = COORD_TO_XY(Pt);
else if (Way* R = dynamic_cast<Way*>(lastSnap))
{
Coord P(XY_TO_COORD(ev->pos()));
findSnapPointIndex(R, P);
LastCursor = COORD_TO_XY(P);
}
else if (theRoad && theRoad->size() > 1 && SnapAngle)
{
QLineF l1(COORD_TO_XY(theRoad->getNode(theRoad->size()-1)), COORD_TO_XY(theRoad->getNode(theRoad->size()-2)));
QLineF l2(COORD_TO_XY(theRoad->getNode(theRoad->size()-1)), ev->pos());
qreal a = l1.angleTo(l2);
a = qRound(a/SnapAngle) * SnapAngle;
l2.setAngle(l1.angle() + a);
LastCursor = l2.p2().toPoint();
}
else if (HaveFirst && ParallelMode)
{
#define CLEAR_DISTANCE 200
QPointF PreviousPoint;
if (theRoad && theRoad->size() && !Prepend)
PreviousPoint = COORD_TO_XY(CAST_NODE(theRoad->get(theRoad->size()-1))->position());
else
PreviousPoint = COORD_TO_XY(FirstPoint);
CoordBox HotZone(XY_TO_COORD(ev->pos()-QPoint(CLEAR_DISTANCE, CLEAR_DISTANCE)),XY_TO_COORD(ev->pos()+QPoint(CLEAR_DISTANCE, CLEAR_DISTANCE)));
qreal BestDistanceNW = 9999, AngleNW = 0;
qreal BestDistanceNE = 9999, AngleNE = 0;
qreal* BestDistance = &BestDistanceNW;
qreal* BestAngle = &BestDistanceNE;
qreal curAngle = 666;
Way* R;
for (int j=0; j<document()->layerSize(); ++j) {
QList < Feature* > ret = g_backend.indexFind(document()->getLayer(j), HotZone);
foreach(Feature* F, ret) {
if (!(R = CAST_WAY(F)))
continue;
if (R->isHidden())
continue;
if (R->notEverythingDownloaded())
continue;
for (int i=0; i<R->size()-1; ++i)
{
LineF F(COORD_TO_XY(R->getNode(i)),COORD_TO_XY(R->getNode(i+1)));
qreal D = F.capDistance(ev->pos());
if (D < CLEAR_DISTANCE) {
QLineF l(COORD_TO_XY(R->getNode(i)), COORD_TO_XY(R->getNode(i+1)));
qreal a = l.angle();
if ((a >= 0 && a < 90) || (a < -270 && a >= -360)) {
BestDistance = &BestDistanceNE;
BestAngle = &AngleNE;
curAngle = a;
} else if ((a >= 90 && a < 180) || (a < -180 && a >= -270)) {
BestDistance = &BestDistanceNW;
BestAngle = &AngleNW;
curAngle = a;
} else if ((a >= 180 && a < 270) || (a < -90 && a >= -180)) {
BestDistance = &BestDistanceNE;
BestAngle = &AngleNE;
curAngle = a - 180;
} else if ((a >= 270 && a < 360) || (a < 0 && a >= -90)) {
BestDistance = &BestDistanceNW;
BestAngle = &AngleNW;
curAngle = a - 180;
}
if (D < *BestDistance) {
*BestDistance = D;
*BestAngle = curAngle;
}
}
}
qDebug() << BestDistanceNE << BestDistanceNW << AngleNE << AngleNW;
}
}
/* Check if for some reason not a single angle was found. */
Q_ASSERT(curAngle >= -360 && curAngle <= 360);
QLineF l(PreviousPoint, ev->pos());
qreal a = l.angle();
if ((a >= 0 && a < 90) || (a < -270 && a >= -360)) {
if (BestDistanceNE < 9999)
a = AngleNE;
} else if ((a >= 90 && a < 180) || (a < -180 && a >= -270)) {
if (BestDistanceNW < 9999)
a = AngleNW;
} else if ((a >= 180 && a < 270) || (a < -90 && a >= -180)) {
if (BestDistanceNE < 9999)
a = AngleNE - 180;
} else if ((a >= 270 && a < 360) || (a < 0 && a >= -90)) {
if (BestDistanceNW < 9999)
a = AngleNW - 180;
//.........这里部分代码省略.........