qtmobility/examples/sensors/panorama/rotationcontroller.cpp
changeset 11 06b8e2af4411
child 14 6fbed849b4f4
equal deleted inserted replaced
8:71781823f776 11:06b8e2af4411
       
     1 #include "inputcontroller.h"
       
     2 #include "rotationcontroller.h"
       
     3 #include <QTime>
       
     4 #include <QDebug>
       
     5 #include <math.h>
       
     6 
       
     7 
       
     8 RotationController::RotationController( ): TimedController(), m_factor(0.5){}
       
     9 
       
    10 void RotationController::startSensor()
       
    11 {
       
    12     m_rotationSensor.connectToBackend();
       
    13     m_rotationSensor.start();
       
    14     connect(&m_rotationSensor, SIGNAL(readingChanged()), this, SLOT(update()));
       
    15 
       
    16     int dataRate = m_rotationSensor.dataRate();
       
    17     m_interval = dataRate>0?1000/m_rotationSensor.dataRate():20;
       
    18 }
       
    19 
       
    20 void RotationController::stopSensor(){ m_rotationSensor.stop();}
       
    21 
       
    22 
       
    23 void RotationController::update()
       
    24 {
       
    25     qreal pitch = m_rotationSensor.reading()->x();
       
    26     qreal roll= m_rotationSensor.reading()->y();
       
    27 
       
    28     m_dx = - m_factor* roll;
       
    29     m_dy =  - m_factor * pitch;
       
    30 
       
    31     updateCoordinates();
       
    32 }
       
    33 
       
    34 
       
    35 void RotationController::updateCoordinates(){
       
    36     m_x +=m_dx * m_delay / m_interval;
       
    37     m_y +=m_dy * m_delay / m_interval;
       
    38 }
       
    39 
       
    40