void QQuickPathInterpolator::_q_pathUpdated() { if (! _path) return; qreal angle = 0; const QPointF pt = _path->sequentialPointAt(_progress, &angle); if (_x != pt.x()) { _x = pt.x(); emit xChanged(); } if (_y != pt.y()) { _y = pt.y(); emit yChanged(); } //convert to clockwise angle = qreal(360) - angle; if (qFuzzyCompare(angle, qreal(360))) angle = qreal(0); if (angle != _angle) { _angle = angle; emit angleChanged(); } }
void AngleRadiusWidget::setAngle(double angle) { if (angle_ != angle) { angle_ = glm::clamp(angle, minAngle_, maxAngle_);; update(); emit angleChanged(); } }
void tst_QGraphicsTransform3D::rotation3D() { QGraphicsRotation3D rot1; QVERIFY(rot1.origin() == QVector3D(0, 0, 0)); QVERIFY(rot1.axis() == QVector3D(0, 0, 1)); QCOMPARE(rot1.angle(), qreal(0.0f)); QSignalSpy spy1(&rot1, SIGNAL(originChanged())); QSignalSpy spy2(&rot1, SIGNAL(axisChanged())); QSignalSpy spy3(&rot1, SIGNAL(angleChanged())); rot1.setOrigin(QVector3D(1, 2, 3)); rot1.setAxis(QVector3D(4, -5, 6)); rot1.setAngle(45.0f); QVERIFY(rot1.origin() == QVector3D(1, 2, 3)); QVERIFY(rot1.axis() == QVector3D(4, -5, 6)); QCOMPARE(rot1.angle(), qreal(45.0f)); QCOMPARE(spy1.size(), 1); QCOMPARE(spy2.size(), 1); QCOMPARE(spy3.size(), 1); QMatrix4x4 m1; rot1.applyTo(&m1); QMatrix4x4 m2; m2.translate(1, 2, 3); m2.rotate(45.0f, QVector3D(4, -5, 6)); m2.translate(-1, -2, -3); QVERIFY(isSameMatrix(m1, m2)); }
WiimoteManager::WiimoteManager(QObject *parent) : QObject(parent), wiimote(new Wiimote(this)) { worker = new CWiidConnectionWorker(); thread = new QThread(this); worker->moveToThread(thread); thread->start(); connect(worker, SIGNAL(wiimoteMessage(WiimoteMessage)), wiimote, SLOT(motionPlusEvent(WiimoteMessage))); connect(worker, SIGNAL(connected()), this, SIGNAL(connected())); connect(worker, SIGNAL(disconnected()), this, SIGNAL(disconnected())); connect(worker, SIGNAL(deviceMessage(QString,int)), this, SIGNAL(deviceMessage(QString,int))); connect(wiimote, SIGNAL(angleChanged(Angles<BigDecimal>)), this, SIGNAL(angleChanged(Angles<BigDecimal>))); connect(wiimote, SIGNAL(deltaChanged(Angles<BigDecimal>)), this, SIGNAL(deltaChanged(Angles<BigDecimal>))); connect(wiimote, SIGNAL(calibrationStep(int)), this, SIGNAL(calibrationStep(int))); connect(wiimote, SIGNAL(calibrated()), this, SIGNAL(calibrated())); connect(wiimote, SIGNAL(needsCalibration()), this, SIGNAL(needsCalibration())); }
QSGGravityAffector::QSGGravityAffector(QSGItem *parent) : QSGParticleAffector(parent), m_acceleration(-10), m_angle(90), m_xAcc(0), m_yAcc(0) { connect(this, SIGNAL(accelerationChanged(qreal)), this, SLOT(recalc())); connect(this, SIGNAL(angleChanged(qreal)), this, SLOT(recalc())); recalc(); }
void QGraphicsRotation3D::setAngle(qreal value) { Q_D(QGraphicsRotation3D); if (d->angle != value) { d->angle = value; emit transformChanged(); emit angleChanged(); } }
void QGraphicsRotation::setAngle(qreal angle) { Q_D(QGraphicsRotation); if (d->angle == angle) return; d->angle = angle; update(); emit angleChanged(); }
void BoxEntity::setAngle(float arg) { if (m_angle == arg) return; m_angle = arg; emit angleChanged(); updateTransformation(); }
bool CannonField::qt_emit( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->signalOffset() ) { case 0: angleChanged((int)static_QUType_int.get(_o+1)); break; case 1: forceChanged((int)static_QUType_int.get(_o+1)); break; default: return QWidget::qt_emit(_id,_o); } return TRUE; }
void AsemanSensors::setZero(qreal xrad, qreal yrad) { p->zeroX = xrad; p->zeroY = yrad; refresh(); Q_EMIT accChanged(); Q_EMIT grvChanged(); Q_EMIT angleChanged(); Q_EMIT angleSpeedChanged(); }
void CannonField::setAngle(int angle) { if (angle < 5) angle = 5; if (angle > 70) angle = 70; if (currentAngle == angle) return; currentAngle = angle; update(); emit angleChanged(currentAngle); }
void CannonField::setAngle( int degrees ) { if ( degrees < 5 ) degrees = 5; if ( degrees > 70 ) degrees = 70; if ( ang == degrees ) return; ang = degrees; repaint(); emit angleChanged( ang ); }
void ArtworkCalligraphyOptionWidget::emitAll() { emit usePathChanged(m_usePath->isChecked()); emit usePressureChanged(m_usePressure->isChecked()); emit useAngleChanged(m_useAngle->isChecked()); emit widthChanged(m_widthBox->value()); emit thinningChanged(m_thinningBox->value()); emit angleChanged(m_angleBox->value()); emit fixationChanged(m_fixationBox->value()); emit capsChanged(m_capsBox->value()); emit massChanged(m_massBox->value()); emit dragChanged(m_dragBox->value()); }
void AsemanSensors::zero() { p->zeroX = p->r_vector.x*M_PI/180; p->zeroY = p->r_vector.y*M_PI/180; p->zeroZ = p->r_vector.z*M_PI/180; refresh(); Q_EMIT accChanged(); Q_EMIT grvChanged(); Q_EMIT angleChanged(); Q_EMIT angleSpeedChanged(); }
void Kompas::setAngle(double a) { a = a + m_coef_A; if(m_tmCourse) a=m_skl+a; if(a<0) a+=360; if(a>360) a-=360; if (a!=0) { double temp; double *pt=new double; temp=QString::number(modf(a,pt)).left(3).toDouble(); m_afterComma=temp; m_fractPart=(QString::number(*pt).right(1).toDouble()+temp)*10; m_angle=*pt; m_fullangle=m_angle+temp; } else m_afterComma=m_fractPart=m_angle=m_fullangle=m_lastAngle=0; if(m_angle-m_lastAngle > 180) { m_con--; } else if(m_angle-m_lastAngle < -180) { m_con++; } m_lastAngle=m_angle; m_angle=m_angle+360*m_con; m_angle=m_angle-(m_angle-m_last)/(m_dempf*2); m_last=m_angle; if(m_fractPart-m_lastAngle1 > 50) { m_con1--; } else if(m_fractPart-m_lastAngle1 < -50) { m_con1++; } m_lastAngle1=m_fractPart; m_fractPart=m_fractPart+100*m_con1; m_fractPart=m_fractPart-(m_fractPart-m_last2)/(m_dempf*2); m_last2=m_fractPart; qApp->processEvents(); emit angleChanged(); }
void AsemanSensors::timerEvent(QTimerEvent *e) { if( e->timerId() == p->duration_timer ) { Q_EMIT accChanged(); Q_EMIT grvChanged(); Q_EMIT angleChanged(); Q_EMIT angleSpeedChanged(); Q_EMIT updated(); // qDebug() << p->a_vector.x << p->a_vector.y << p->a_vector.z // << angleX() << angleY() << angleZ(); } else QObject::timerEvent(e); }
void CannonField::setAngle( int degrees ) { if ( degrees < 5 ) degrees = 5; if ( degrees > 70 ) degrees = 70; if ( ang == degrees ) return; ang = degrees; //清空窗口部件(通常用背景色来充满)并向窗口部件发出一个绘画事件。 //这样的结构就是调用窗口部件的绘画事件函数一次。 repaint(); //使用这个函数也可以,那就不必使用repaint了。 //update(); //利用宏emit来发射angleChanged()信号 emit angleChanged( ang ); }
void Item3dPrivate::pretransform_append(QDeclarativeListProperty<QGraphicsTransform> *list, QGraphicsTransform *item) { Item3d *object = qobject_cast<Item3d *>(list->object); QList<QGraphicsTransform *> *ptrans; if (object) { ptrans = &object->d->pretransforms; //We now need to connect the underlying transform so that any change will update the graphical item. if (!ptrans->contains(item)) { ptrans->append(item); if (qobject_cast<QGraphicsScale *>(item)) { QObject::connect(item, SIGNAL(originChanged()), object, SLOT(update())); QObject::connect(item, SIGNAL(scaleChanged()), object, SLOT(update())); } else if (qobject_cast<QGraphicsRotation *>(item)) { QObject::connect(item, SIGNAL(originChanged()), object, SLOT(update())); QObject::connect(item, SIGNAL(angleChanged()), object, SLOT(update())); QObject::connect(item, SIGNAL(axisChanged()), object, SLOT(update())); } else if (qobject_cast<QGraphicsScale3D *>(item)) { QObject::connect(item, SIGNAL(originChanged()), object, SLOT(update())); QObject::connect(item, SIGNAL(scaleChanged()), object, SLOT(update())); } else if (qobject_cast<QGraphicsTranslation3D *>(item)) { QObject::connect(item, SIGNAL(translateChanged()), object, SLOT(update())); } else if (qobject_cast<QGraphicsFaceCamera *>(item)) { QObject::connect(item, SIGNAL(preserveUpVectorChanged()), object, SLOT(update())); } } } else qWarning()<<"Warning: could not find Item3d to add transformation to."; }
void Square::rotate(double angle) { leftDownTriangle.rotate(angle); rightUpTriangle.rotate(angle); emit angleChanged(angle); }
void CompassPort::on()// метод для чтения из порта и его открытия, если не открыт { emit timerStop(); if(!portSensor->isOpen()) { if (portSensor->open(QIODevice::ReadWrite))// открываем порт если он еще не открыт { QSerialPortInfo *info = new QSerialPortInfo(*portSensor);//информация о порте для отладки m_state=1;// порт открыт delete info; } else { if(portSensor->isOpen())// если что-то пошло не так, закрываем порт portSensor->close(); } } if(portSensor->isOpen() && portSensor->waitForReadyRead(100))// работа с открытым портом { QString data; QByteArray ByteArray,ByteArrayStart,ByteArrayFinish; bool startFinded = false; m_state = 1; while(m_state)// пока порт открыт { //if(portSensor->waitForReadyRead(1)) { qint64 byteAvail = portSensor->bytesAvailable();// просматриваем кол-во доступных байн для чтения qApp->processEvents(); QThread::msleep(10);//усыпляем поток, чтобы не занимал времени( данные раз в 10 секунд) if(byteAvail >=23)// проверка кол-ва байт, для их обработки { ByteArray = portSensor->readAll();// чтение из буфера порта data = data.fromLocal8Bit(ByteArray).trimmed(); if(ByteArray[3]=='p')//то ли сообщение пришло(смотри даташит хоневеловского датчика) { QBitArray bitdata(184),two_bytes(16); for(int i = 0,j; i < 184; ++i)//формирование массива бит для парсинга сообщения { j=i/8; if(j<=18) bitdata[i] = ByteArray[j] & (1 << i%8); else break; } // //m_roll = Round(toDec(two_bytes,1)*1.41,1); m_roll = QString::number((short)((ByteArray.at(6)<<8) + (ByteArray.at(5)))*360.0/65536.0,10,1).toDouble(); emit rollChanged(m_roll); // for(int i=56,j=15;i<72&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //Pitch // m_pitch = Round(toDec(two_bytes,1)*1.41,1); m_pitch = QString::number((short)((ByteArray.at(8)<<8) + (ByteArray.at(7)))*360.0/65536.0,10,1).toDouble(); emit pitchChanged(m_pitch); for(int i=72,j=15;i<88&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //Azimuth // m_angle = Round(toDec(two_bytes,0)*1.41,1); for(int i=72,j=15;i<88&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //Azimuth m_angle = Round(toDec(two_bytes,0)*1.41,1); static int i=0; if(i<=1) { i++; } else { emit angleChanged(m_angle); i=0; } m_B= QString::number((short)((ByteArray.at(18)<<8) + (ByteArray.at(17)))*750.0/65536.0,10,1).toDouble(); emit BChanged(m_B); // for(int i=152,j=15;i<168&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //coef C // m_C = Round(toDec(two_bytes,1)*3,1); m_C= QString::number((short)((ByteArray.at(20)<<8) + (ByteArray.at(19)))*750.0/65536.0,10,1).toDouble(); emit CChanged(m_C); // for(int i=168,j=15;i<184&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //coef Z // m_Z = Round(toDec(two_bytes,1)*1.41,1); m_Z= QString::number((short)((ByteArray.at(22)<<8) + (ByteArray.at(21)))*750.0/65536.0,10,1).toDouble(); emit ZChanged(m_Z); m_state=0; qApp->processEvents(); } } // внимательно посмотреть этот код, кажется косяк с выбросами полей и курса в нем(!) else if(byteAvail >=4 && byteAvail <=23)// если сообщение не полное( разбито на два) { ByteArray= portSensor->readAll(); data = data.fromLocal8Bit(ByteArray).trimmed(); if(ByteArray[3]=='p' && startFinded == false) { ByteArrayStart = ByteArray; startFinded = true; } else if(startFinded == true) { ByteArrayFinish += ByteArray; ByteArray = ByteArrayStart + ByteArrayFinish; if(ByteArray.size() >= 23) { QBitArray bitdata(184),two_bytes(16); for(int i = 0,j; i < 184; ++i) { j=i/8; if(j<=23) bitdata[i] = ByteArray[j] & (1 << i%8); else break; } // //m_roll = Round(toDec(two_bytes,1)*1.41,1); m_roll = QString::number((short)((ByteArray.at(6)<<8) + (ByteArray.at(5)))*360.0/65536.0,10,1).toDouble(); emit rollChanged(m_roll); // for(int i=56,j=15;i<72&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //Pitch // m_pitch = Round(toDec(two_bytes,1)*1.41,1); m_pitch = QString::number((short)((ByteArray.at(8)<<8) + (ByteArray.at(7)))*360.0/65536.0,10,1).toDouble(); emit pitchChanged(m_pitch); for(int i=72,j=15;i<88&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //Azimuth // m_angle = Round(toDec(two_bytes,0)*1.41,1); for(int i=72,j=15;i<88&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //Azimuth m_angle = Round(toDec(two_bytes,0)*1.41,1); static int i=0; if(i<=1) { i++; } else { emit angleChanged(m_angle); i=0; } m_B= QString::number((short)((ByteArray.at(18)<<8) + (ByteArray.at(17)))*750.0/65536.0,10,1).toDouble(); emit BChanged(m_B); // for(int i=152,j=15;i<168&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //coef C // m_C = Round(toDec(two_bytes,1)*3,1); m_C= QString::number((short)((ByteArray.at(20)<<8) + (ByteArray.at(19)))*750.0/65536.0,10,1).toDouble(); emit CChanged(m_C); // for(int i=168,j=15;i<184&&j>=0;i++,j--){two_bytes[j]=bitdata[i];} //coef Z // m_Z = Round(toDec(two_bytes,1)*1.41,1); m_Z= QString::number((short)((ByteArray.at(22)<<8) + (ByteArray.at(21)))*750.0/65536.0,10,1).toDouble(); emit ZChanged(m_Z); m_state=0; startFinded = false; } } } } } } else { } emit timerStart(10); }
void AngleWidget::updateAngle(QPoint mousePos) { mousePos -= QPoint(frameSize().width() / 2, frameSize().height() / 2); double newAngle = normalizeAngle(atan2(mousePos.y(), mousePos.x()) + M_PI_2); emit angleChanged(newAngle); }
void QgsAngleMagnetWidget::angleSpinBoxValueChanged( double angle ) { emit angleChanged( angle ); }
void QNode::tiltAngleCb(const std_msgs::Float64ConstPtr& tilt) { currentTiltAngle=tilt->data; // cout<<"\n tiltAngle: "<<currentTiltAngle; emit angleChanged(); }
void BrushEngine::setAngle(int angle) { if (this->angle == angle) return; this->angle = angle; emit angleChanged(angle); }
StaticFrameGui::StaticFrameGui(QWidget* parent): FrameGui(parent) { setTitle("Static Frame"); group = new QButtonGroup (this); grid = new QGridLayout (this); dewellSwitch = new QRadioButton (this); dewellSwitch->setText("Dewell (ms)"); dewellSwitch->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); repeatSwitch = new QRadioButton (this); repeatSwitch->setText("Repeat (frames)"); repeatSwitch->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); group->addButton(dewellSwitch,1); group->addButton(repeatSwitch,2); grid->addWidget(dewellSwitch,2,0,1,1); grid->addWidget(repeatSwitch,3,0,1,1); QLabel * pointsLabel = new QLabel ("Points",this); pointsLabel->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); pointsDisplay = new QLabel ("0",this); pointsDisplay->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); grid->addWidget(pointsLabel,1,0,1,1); grid->addWidget(pointsDisplay,1,1,1,1); dewellEntry = new QSpinBox (this); dewellEntry->setMinimum (40); dewellEntry->setMaximum (600000); repeatEntry = new QSpinBox (this); repeatEntry->setMinimum (1); repeatEntry->setMaximum (1000); grid->addWidget(dewellEntry,2,1,1,1); grid->addWidget(repeatEntry,3,1,1,1); QLabel *l = new QLabel (this); l->setText("ArcBall"); l->setFrameShape(QFrame::Panel); l->setFrameShadow(QFrame::Raised); l->setAlignment(Qt::AlignHCenter); arcball = new ArcBall(this); connect (arcball,SIGNAL(angleChanged(QQuaternion)),this,SLOT(angleChangedData(QQuaternion))); connect (arcball,SIGNAL(mouseDown()),this,SLOT(arcballDown())); connect (arcball,SIGNAL(mouseUp()),this,SLOT(arcballUp())); grid->addWidget(l,4,0); grid->addWidget(arcball,5,0); l = new QLabel (this); l->setText ("Size"); l->setFrameShape(QFrame::Panel); l->setFrameShadow(QFrame::Raised); l->setAlignment(Qt::AlignHCenter); grid->addWidget(l,4,1); size = new QSlider(Qt::Vertical,this); size->setRange(-200,100); size->setSliderPosition(0); grid->addWidget(size,5,1); setLayout(grid); }