Ejemplo n.º 1
0
void GeometryInteractor::mouseMove(SimpleOpenGLWidget* simpleOpenGLWidget, int x, int y)
{
    // y window coordinates are opposite of opengl coordinates
    // invert
    y = invertY(y, simpleOpenGLWidget->getHeight());

    if (m_ButtonDown) {
        switch (m_Button)
        {
        case Qt::LeftButton:
            doTranslation(simpleOpenGLWidget, m_OldX, m_OldY, x, y);
            break;
        case Qt::MidButton:
            doScaling(simpleOpenGLWidget, m_OldX, m_OldY, x, y);
            break;
        case Qt::RightButton:
            doRotation(simpleOpenGLWidget, m_OldX, m_OldY, x, y);
            break;
        default:
            break;
        }
    }

    m_OldX = x;
    m_OldY = y;
}
Ejemplo n.º 2
0
void Box2DBody::setLinearVelocity(const QPointF &velocity)
{
    if (linearVelocity() == velocity)
        return;

    mBodyDef.linearVelocity = invertY(velocity);
    if (mBody)
        mBody->SetLinearVelocity(mBodyDef.linearVelocity);

    emit linearVelocityChanged();
}
Ejemplo n.º 3
0
void GeometryInteractor::startDrag(SimpleOpenGLWidget* simpleOpenGLWidget, int x, int y, Qt::ButtonState button)
{
    // y window coordinates are opposite of opengl coordinates
    // invert
    y = invertY(y, simpleOpenGLWidget->getHeight());

    m_ButtonDown = true;
    m_Button = button;
    m_OldX = x;
    m_OldY = y;
}
Ejemplo n.º 4
0
QPointF Box2DMouseJoint::getReactionForce(float32 inv_dt) const
{
    if (mouseJoint())
        return invertY(mouseJoint()->GetReactionForce(inv_dt));
    return QPointF();
}
Ejemplo n.º 5
0
QPointF Box2DBody::getLinearVelocityFromLocalPoint(const QPointF &point) const
{
    if (mBody)
        return invertY(mBody->GetLinearVelocityFromLocalPoint(mWorld->toMeters(point)));
    return QPointF();
}
Ejemplo n.º 6
0
void Box2DBody::applyForceToCenter(const QPointF &force)
{
    if (mBody)
        mBody->ApplyForceToCenter(invertY(force), true);
}
Ejemplo n.º 7
0
void Box2DBody::applyForce(const QPointF &force, const QPointF &point)
{
    if (mBody)
        mBody->ApplyForce(invertY(force), mWorld->toMeters(point), true);
}
Ejemplo n.º 8
0
void Box2DBody::applyLinearImpulse(const QPointF &impulse,
                                   const QPointF &point)
{
    if (mBody)
        mBody->ApplyLinearImpulse(invertY(impulse), mWorld->toMeters(point), true);
}
Ejemplo n.º 9
0
QPointF Box2DBody::linearVelocity() const
{
    if (mBody)
        return invertY(mBody->GetLinearVelocity());
    return invertY(mBodyDef.linearVelocity);
}