Exemple #1
0
QSharedPointer<RShape> RCircle::getTransformed(const QTransform& transform) const {
    RVector ct = center.getTransformed2d(transform);
    RVector sp = center + RVector(radius, 0);
    RVector spt = sp.getTransformed2d(transform);

    return QSharedPointer<RShape>(
        new RCircle(
            ct,
            ct.getDistanceTo(spt)
        )
    );
}
Exemple #2
0
/**
 * \todo Not working as expected, fix or disable
 */
QSharedPointer<RShape> RArc::getTransformed(const QTransform& transform) const {
    RVector ct = center.getTransformed2d(transform);
    RVector sp = getStartPoint();
    RVector spt = sp.getTransformed2d(transform);
    RVector ep = getEndPoint();
    RVector ept = ep.getTransformed2d(transform);
    //RVector mp = getMiddlePoint();
    //RVector mpt = mp.getTransformed2d(transform);

    RArc* ret = new RArc(
            ct,
            ct.getDistanceTo(spt),
            ct.getAngleTo(spt),
            ct.getAngleTo(ept),
            reversed
        );

//    if (!ret->getMiddlePoint().equalsFuzzy(mpt)) {
//        ret->setReversed(!reversed);
//    }

    return QSharedPointer<RShape>(ret);
}
Exemple #3
0
QSharedPointer<RShape> REllipse::getTransformed(const QTransform& transform) const {
    RVector ct = center.getTransformed2d(transform);
    RVector mp = center + getMajorPoint();
    RVector mpt = mp.getTransformed2d(transform);
    RVector sp = getStartPoint();
    RVector spt = sp.getTransformed2d(transform);
    RVector ep = getEndPoint();
    RVector ept = ep.getTransformed2d(transform);

    QSharedPointer<REllipse> ret = QSharedPointer<REllipse>(
        new REllipse(
            ct,
            mpt - ct,
            ratio,
            0.0,
            M_PI*2,
            reversed
        )
    );
    ret->setStartParam(ret->getParamTo(spt));
    ret->setEndParam(ret->getParamTo(ept));
    return ret;
}