void KisLightSource::setAltitude(qreal altitude)
{
    if (m_altitude != altitude)
        m_altitude = altitude;
    emit altitudeChanged(altitude);
    emit orbitMoved(m_azimuth, altitude);
}
void QDeclarativeCoordinate::setAltitude(double altitude)
{
    if (m_coordinate.altitude() != altitude) {
        m_coordinate.setAltitude(altitude);
        emit altitudeChanged(m_coordinate.altitude());
    }
}
Esempio n. 3
0
void QmlAltimeterReading::readingUpdate()
{
    qreal altitude = m_sensor->reading()->altitude();
    if (m_altitude != altitude) {
        m_altitude = altitude;
        Q_EMIT altitudeChanged();
    }
}
void KisLightSource::moveOrbit(qreal azimuth, qreal altitude)
{
    if (m_azimuth != azimuth)
        m_azimuth = azimuth;
    if (m_altitude != altitude)
        m_altitude = altitude;
    emit azimuthChanged(azimuth);
    emit altitudeChanged(altitude);
    emit orbitMoved(azimuth, altitude);
}
void
QmlBarometerAltimeterReading::set_altitude_offset(qreal offset)
{
  qInfo() << "set_altitude_offset" << offset;
  qreal old_altitude_offset = m_altitude_offset;
  m_altitude_offset = offset;
  Q_EMIT altitudeOffsetChanged();
  m_altitude += offset - old_altitude_offset;
  Q_EMIT altitudeChanged(); // versus readingUpdate ?
}
void
QmlBarometerAltimeterReading::set_sea_level_pressure(qreal sea_level_pressure)
{
  qInfo() << "set_sea_level_pressure" << sea_level_pressure << m_sea_level_pressure;
  if (!qFuzzyCompare(sea_level_pressure, m_sea_level_pressure)) {
    qInfo() << "set_sea_level_pressure yes";
    m_sea_level_pressure = sea_level_pressure;
    Q_EMIT pressureSeaLevelChanged();
    m_altitude = pressure_to_altitude(m_pressure);
    Q_EMIT altitudeChanged(); // versus readingUpdate ?
  }
}
void KisLightSource::mouseMoveEvent(QMouseEvent* event)
{
    m_moving = true;
    qreal newX = parentWidget()->mapFromGlobal(event->globalPos()).x();
    qreal newY = parentWidget()->mapFromGlobal(event->globalPos()).y();
    qreal newRelativeX = newX - qreal(parentWidget()->width() / 2);
    qreal newRelativeY = newY - qreal(parentWidget()->height() / 2);

    //Normalize
    newRelativeX /= (parentWidget()->width() / 2);
    newRelativeY /= (parentWidget()->height() / 2);

    if (!(newRelativeX == 0 && newRelativeY == 0)) {
    // TODO BUG reverse the symbols here later
        m_azimuth = -atan2(newRelativeX, newRelativeY) + M_PI / 2;  // In radians
        m_azimuth *= (180 / M_PI);  // To degrees
    } else {
        m_azimuth = 0;
    }

    //Pitagoras
    qreal newM = sqrt(pow(newRelativeX, 2) + pow(newRelativeY, 2));

    if (newM > 1) {
        // Adjust coordinates to make newM be worth 1
        newRelativeX = cos(m_azimuth * M_PI / 180 );
        newRelativeY = sin(m_azimuth * M_PI / 180 );
        newM = 1;  // 1 is the current result of sqrt(pow(newRelativeX, 2) + pow(newRelativeY, 2));
    }

    m_altitude = acos(newM);  // In radians
    m_altitude *= (180 / M_PI); // To degrees

    qDebug() << "newM: " << newM;
    qDebug() << "new Inclination: " << m_altitude;

    // Set the base vector values
    lightVector.setX( newRelativeX );
    lightVector.setY( newRelativeY );
    lightVector.setZ( sin( m_altitude * M_PI / 180 ) );

    m_moving = false;

    update();

    qDebug() << lightVector;

    emit moved();
    emit azimuthChanged(m_azimuth);
    emit altitudeChanged(m_altitude);
    emit orbitMoved(m_azimuth, m_altitude);
}
void
QmlBarometerAltimeterReading::calibrate(qreal altitude)
{
  if (!qFuzzyCompare(altitude, m_altitude)) {
    qInfo() << "calibrate" << altitude;
    altitude -= m_altitude_offset;
    m_sea_level_pressure = m_pressure / qPow(1 - ALPHA*altitude, BETA);
    qInfo() << "sea_level_pressure" << m_sea_level_pressure;
    Q_EMIT pressureSeaLevelChanged();
    m_altitude = altitude;
    Q_EMIT altitudeChanged(); // versus readingUpdate ?
  }
}
void
QmlBarometerAltimeterReading::readingUpdate()
{
  qreal pressure = m_sensor->reading()->pressure();
  if (m_pressure != pressure) {
    m_pressure = pressure;
    Q_EMIT pressureChanged();
    m_altitude = pressure_to_altitude(pressure);
    Q_EMIT altitudeChanged();
  }

  qreal temperature = m_sensor->reading()->temperature();
  if (m_temperature != temperature) {
    m_temperature = temperature;
    Q_EMIT temperatureChanged();
  }
}
void QDeclarativeCoordinate::setCoordinate(const QGeoCoordinate &coordinate)
{
    QGeoCoordinate previousCoordinate = m_coordinate;
    m_coordinate = coordinate;

    // Comparing two NotANumbers is false which is not wanted here
    if (coordinate.altitude() != previousCoordinate.altitude() &&
        !(qIsNaN(coordinate.altitude()) && qIsNaN(previousCoordinate.altitude()))) {
        emit altitudeChanged(m_coordinate.altitude());
    }
    if (coordinate.latitude() != previousCoordinate.latitude() &&
        !(qIsNaN(coordinate.latitude()) && qIsNaN(previousCoordinate.latitude()))) {
        emit latitudeChanged(m_coordinate.latitude());
    }
    if (coordinate.longitude() != previousCoordinate.longitude() &&
        !(qIsNaN(coordinate.longitude()) && qIsNaN(previousCoordinate.longitude()))) {
        emit longitudeChanged(m_coordinate.longitude());
    }
}