Esempio n. 1
0
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();
}
Esempio n. 3
0
 // -------------------------------------------------------------------------
 void JsRouteDispatch::addPoint( unsigned long long llTime, qreal lon, qreal lat, qreal hdg, qreal spd )
 {
    emit addPointSignal( llTime, lon, lat, hdg, spd );
 }
Esempio n. 4
0
void webViewBridge::addPoint(int pt, double lat, double lon)
{
//    mainWindow * parent = qobject_cast<mainWindow*>(this->parent());
//    parent->addPoint();
 emit addPointSignal(pt, lat, lon);
}