示例#1
0
void FlyToEditWidget::save()
{
    if (flyToElement()->view() != nullptr && m_coord != GeoDataCoordinates()) {
        GeoDataCoordinates coords = m_coord;
        if (auto camera = geodata_cast<GeoDataCamera>(flyToElement()->view())) {
            camera->setCoordinates( coords );
        } else if (auto lookAt = geodata_cast<GeoDataLookAt>(flyToElement()->view())) {
            lookAt->setCoordinates( coords );
        } else{
            lookAt = new GeoDataLookAt;
            lookAt->setCoordinates( coords );
            flyToElement()->setView( lookAt );
        }
    }

    flyToElement()->setDuration(m_durationSpin->value());

    if (m_modeCombo->currentIndex() == 0) {
        flyToElement()->setFlyToMode( GeoDataFlyTo::Smooth );
    } else if (m_modeCombo->currentIndex() == 1) {
        flyToElement()->setFlyToMode( GeoDataFlyTo::Bounce );
    }

    emit editingDone(m_index);
}
示例#2
0
void FlyToEditWidget::save()
{
    if (flyToElement()->view() != 0 && m_coord != GeoDataCoordinates()) {
        GeoDataCoordinates coords = m_coord;
        if ( flyToElement()->view()->nodeType() == GeoDataTypes::GeoDataCameraType ) {
            GeoDataCamera* camera = dynamic_cast<GeoDataCamera*>( flyToElement()->view() );
            camera->setCoordinates( coords );
        } else if ( flyToElement()->view()->nodeType() == GeoDataTypes::GeoDataLookAtType ) {
            GeoDataLookAt* lookAt = dynamic_cast<GeoDataLookAt*>( flyToElement()->view() );
            lookAt->setCoordinates( coords );
        } else{
            GeoDataLookAt* lookAt = new GeoDataLookAt;
            lookAt->setCoordinates( coords );
            flyToElement()->setView( lookAt );
        }
    }

    flyToElement()->setDuration(m_waitSpin->value());

    emit editingDone(m_index);
}