void MobileRouteInSim::Init( ARCMobileElement* pMobile ,const ElapsedTime&t)
{
	if(mpMobile!=pMobile)
	{
		mpMobile = pMobile;
		updateCachedata();
		DynamicConflictGraph::getInstance().OnMobilePlaneRoute(mpMobile,getPathList(*this),t);
	}
}
QPointF SymbolDataEditor::getEndPoint()
{
    QPointF result = getTranslatePoint();
    QStringList pathList = getPathList();

    if (pathList.isEmpty() || pathList.last().isEmpty())
        return result;

    QString path = pathList.last();

    bool absolutely = path.at(0).isUpper();

    if (absolutely)
        result = getMovePoint(path);
    else
        result += getMovePoint(path);

    int indexOfC = path.indexOf('c', 0, Qt::CaseInsensitive);

    if (indexOfC > 0)
        absolutely = path.at(indexOfC).isUpper();

    if (absolutely)
        result = getLastCurvePoint(path);
    else
        result += getLastCurvePoint(path);

    QPointF linePoint = getLinePoint(path);

    if (!linePoint.isNull())
    {
        if (path.at(path.indexOf('l')).isUpper())
            result = linePoint;
        else
            result += linePoint;
    }

    result = fromViewBox(result);

    return fromStored(result);
}
QPointF SymbolDataEditor::getBeginPoint()
{
    QPointF result = getTranslatePoint();
    QStringList pathList = getPathList();

    if (pathList.isEmpty() || pathList.first().isEmpty())
        return result;

    QString path = pathList.first();

    bool absolutely = path.at(0).isUpper();

    if (absolutely)
        result = getMovePoint(path);
    else
        result += getMovePoint(path);

    result = fromViewBox(result);

    return fromStored(result);
}