void MetaGLInfoClass::addPoint(GeoCoords pos, Geometry::Type objectType) { Point3DNode* pointNode = new Point3DNode(this); pointNode->createPoint(objectType, pos); qint32 pointNumber; if (pointHash->size() == 0) pointNumber = 1; else { pointNumber = pointHash->end().key() + 1; if (pointNumber > 10000) pointNumber = 1; while (pointHash->contains(pointNumber)) pointNumber += 1; } pointHash->insert(pointNumber, pointNode); if (objectType == Geometry::Point) pointNode->setObjectName("Point"+QString::number(pointNumber)); else if (objectType == Geometry::Tag) pointNode->setObjectName("Tag"+QString::number(pointNumber)); else if (objectType == Geometry::Pin) pointNode->setObjectName("Pin"+QString::number(pointNumber)); emit addPointSignal(pointNumber, pos, pointNode->objectName()); }
void transitionFunctionRenderAreaWidget::mouseReleaseEvent(QMouseEvent *event) { if ((event->pos().x() < 0) || (event->pos().x() > width()) || (event->pos().y() < 0) || (event->pos().y() > height())) { return; } if (event->button() == Qt::LeftButton) { if (!pointStyleMoveable) { double x = ((double)event->pos().x() - 1.0)/ ((double)width() - 2); if (x < 0.0) { x = 0.0; } double y = ((double)height() - (double)event->pos().y() + 1.0) / ((double)height() - 2.0); if (y < 0.0) { y = 0.0; } emit addPointSignal(x, y); } else { if (selectedPoint == -1) { if (!deny) { double x = ((double)event->pos().x() - 1.0)/ ((double)width() - 2); if (x < 0.0) { x = 0.0; } double y = ((double)height() - (double)event->pos().y() + 1.0) / ((double)height() - 2.0); if (y < 0.0) { y = 0.0; } emit addPointSignal(x, y); } deny = false; } else { double xstep = (double)(width() - 2) / (double)(functionData->GetMaxPoint() - functionData->GetMinPoint()); unsigned short x = (int)((event->pos().x() - 1) / xstep); double y = ((double)(height() - event->pos().y() + 1) / ((double)(height()-2))); if ((x > functionData->GetPointOnPosition(selectedPoint - 1)) && (x < functionData->GetPointOnPosition(selectedPoint + 1))) { functionData->SetPointOnPosition(selectedPoint, x); functionData->SetValueOnPoint(x, y); } selectedPoint = -1; } } } if (event->button() == Qt::RightButton) { if (selectedPoint != -1) { selectedPoint = -1; deny = true; } else { if (pointStyleMoveable) { double xstep = (double)(width() - 2) / (double)(functionData->GetMaxPoint() - functionData->GetMinPoint()); int minx = (int)((event->pos().x() - 1 - lengthToPickPoint) / xstep); int maxx = (int)((event->pos().x() - 1 + lengthToPickPoint) / xstep); double miny = ((double)(height() - event->pos().y() + 1 - lengthToPickPoint) / ((double)(height()-2))); double maxy = ((double)(height() - event->pos().y() + 1 + lengthToPickPoint) / ((double)(height()-2))); int i; bool chosed = false; for (i = 0; i < functionData->size(); ++i) { if ((minx < functionData->GetPointOnPosition(i)) && (maxx > functionData->GetPointOnPosition(i))) { chosed = true; break; } } if (chosed) { unsigned short point = functionData->GetPointOnPosition(i); if ((miny < functionData->GetValueOnPoint(point)) && (maxy > functionData->GetValueOnPoint(point))) { if ((i != 0) && (i != functionData->size() - 1)) { functionData->DeletePointOnPosition(i); } } } } } } update(); }
// ------------------------------------------------------------------------- void JsRouteDispatch::addPoint( unsigned long long llTime, qreal lon, qreal lat, qreal hdg, qreal spd ) { emit addPointSignal( llTime, lon, lat, hdg, spd ); }
void webViewBridge::addPoint(int pt, double lat, double lon) { // mainWindow * parent = qobject_cast<mainWindow*>(this->parent()); // parent->addPoint(); emit addPointSignal(pt, lat, lon); }