Ejemplo n.º 1
0
void SGMEnergyPosition::setEnergy(double energy) {
	if(energy_ != energy){
		energy_ = energy;
		setModified(true);
		emit energyChanged(energy_);
		emit energyPositionChanged();
	}
}
Ejemplo n.º 2
0
void SGMScanInfo::setEnergy(double energy) {
	if(energy_ != energy){
		energy_ = energy;
		setModified(true);
		emit energyChanged(energy_);
		emit scanInfoChanged();
	}
}
void VESPERSEXAFSScanConfiguration::setEnergy(double edgeEnergy)
{
	if (energy_ != edgeEnergy){

		exafsRegions()->setDefaultEdgeEnergy(edgeEnergy);
		energy_ = edgeEnergy;
		emit energyChanged(energy_);
		setModified(true);
	}
}
Ejemplo n.º 4
0
void BioXASMonochromator::setEnergy(BioXASMonochromatorEnergyControl *newControl)
{
	if (energy_ != newControl) {

		removeChildControl(energy_);

		energy_ = newControl;

		addChildControl(energy_);

		emit energyChanged(energy_);
	}
}
Ejemplo n.º 5
0
Battery::Battery(const QString &udi, QObject *parent)
    : QObject(parent)
    , m_device(Solid::Device(udi))
{
//    qCDebug(BATTERY) << "Added battery" << udi;

    m_battery = m_device.as<Solid::Battery>();
    connect(m_battery, &Solid::Battery::chargePercentChanged, [this](int, const QString &) {
        Q_EMIT chargePercentChanged();
    });
    connect(m_battery, &Solid::Battery::capacityChanged, [this](int, const QString &) {
        Q_EMIT capacityChanged();
    });
    connect(m_battery, &Solid::Battery::powerSupplyStateChanged, [this](bool, const QString &) {
        Q_EMIT powerSupplyChanged();
    });
    connect(m_battery, &Solid::Battery::chargeStateChanged, [this](int, const QString &) {
        Q_EMIT chargeStateChanged();
    });
    connect(m_battery, &Solid::Battery::timeToEmptyChanged, [this](qlonglong, const QString &) {
        Q_EMIT timeToEmptyChanged();
    });
    connect(m_battery, &Solid::Battery::timeToFullChanged, [this](qlonglong, const QString &) {
        Q_EMIT timeToFullChanged();
    });
    connect(m_battery, &Solid::Battery::chargeStateChanged, [this](int, const QString &) {
        Q_EMIT chargeStateChanged();
    });
    connect(m_battery, &Solid::Battery::energyChanged, [this](double, const QString &) {
        Q_EMIT energyChanged();
    });
    connect(m_battery, &Solid::Battery::energyRateChanged, [this](double, const QString &) {
        Q_EMIT energyRateChanged();
    });
    connect(m_battery, &Solid::Battery::voltageChanged, [this](double, const QString &) {
        Q_EMIT voltageChanged();
    });
    connect(m_battery, &Solid::Battery::temperatureChanged, [this](double, const QString &) {
        Q_EMIT temperatureChanged();
    });
}
Ejemplo n.º 6
0
void Missile::doMove()
{
    qreal x = m_position.x();
    qreal y = m_position.y();
    const qreal distance = hypot(x, y);

    if (distance < 0.1) {
        m_alive = false;
        emit aliveChanged();
        return;
    }

    qreal velocityMagnitude = hypot(m_velocityX, m_velocityY);
    if (velocityMagnitude > MISSILE_MAX_SPEED) {
        qreal velocityAngle = atan2(m_velocityY, m_velocityX);
        m_velocityX = cos(velocityAngle) * MISSILE_MAX_SPEED;
        m_velocityY = sin(velocityAngle) * MISSILE_MAX_SPEED;
    }

    const qreal force = distance / 1000;
    const qreal angle = atan2(y, x);
    m_velocityX -= cos(angle) * force;
    m_velocityY -= sin(angle) * force;

    x += m_velocityX;
    y += m_velocityY;

    if (x > 1.0) { x = -1.0; }
    if (y > 1.0) { y = -1.0; }
    if (x < -1.0) { x = 1.0; }
    if (y < -1.0) { y = 1.0; }

    m_position.setX(x);
    m_position.setY(y);
    emit positionChanged();


    // Always point in the right direction
    if (m_type == Normal) {
        setRotation(atan2(m_velocityY, m_velocityX));
    }

    // Just fall into the sun
    if (m_energy < 10) {
        m_velocityX /= 1.01;
        m_velocityY /= 1.01;
        return;
    }

    if (m_type == Mine) {
        m_velocityX += cos(m_rotation) * 0.0005;
        m_velocityY += sin(m_rotation) * 0.0005;
        m_energy-= 1;
        emit energyChanged();
        return;
    }

    m_energy-= 50;

    emit energyChanged();

    if (m_type == Normal) {
        m_velocityX += cos(m_rotation) * (m_energy / 1000000.0);
        m_velocityY += sin(m_rotation) * (m_energy / 1000000.0);
    } else if (m_type == Seeking) {
        m_velocityX += cos(m_rotation) * (m_energy / 100000.0);
        m_velocityY += sin(m_rotation) * (m_energy / 100000.0);
    }
}