Ejemplo n.º 1
0
void Water::differPixels() {
    // 現在のカメラのpixelデータを取得
    unsigned char *pixels = camera.getPixels();
    for ( int y=0; y<waterHeight; y++ ) {
        for ( int x=0; x<waterWidth; x++ ) {
            // pixelのindexの設定
            int index = (y*waterWidth + x) * 3;
            // 前フレームとのRGBの差分を計算
            int R = int(pixels[index]) - int(pixelsBuffer[index]);
            int G = int(pixels[index+1]) - int(pixelsBuffer[index+1]);
            int B = int(pixels[index+2]) - int(pixelsBuffer[index+2]);
            // 前フレームとの差分が一定値を超えたら
            if ( R*R + G*G + B*B >= 70*70 ) {
                // ベクトル場に力を加える
                VF.addOutwardCircle(x, y, 20, 0.05);
                if ( y > border + waterLevel ) {
                    createBubble(x, y);
                }
            }
        }
    }
    // 最後に今のフレームのpixelをbufferに保存
    for ( int i=0; i<waterHeight*waterWidth*3; i++ ) {
        pixelsBuffer[i] = pixels[i];
    }
    
}
Ejemplo n.º 2
0
PacientScene::PacientScene(QObject *parent) :
    QGraphicsScene(parent)
{
    addPixmap(QPixmap(":/images/corps.jpg"));

    _menu = new QMenu();
    _menu->addAction("New bubble...", this, SLOT(createBubble()));
}
Ejemplo n.º 3
0
SmsWidget::SmsWidget(QMyMessage _sms, QPixmap _ico, bool received) :
        originalText(_sms.getMessage()),
        msg(_sms),
        type(received),
        number(_sms.getPhone()),
        readed(_sms.getReaded()),
        caricaAltri(false)
{
    id = _sms.getId();
    name = _sms.getParsedName();

    labelGroup = new QLabel(_sms.getParsedName());
    labelGroup->setFont(QFont(labelGroup->font().family(), -1, QFont::Bold, false));
    labelGroup->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    labelGroup->setMaximumSize(10000, 18);

    labelIco = new QLabel();
    labelIco->setPixmap(_ico);
    labelIco->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
    labelIco->setMaximumSize(16, 16);
    labelIco->setMinimumSize(16, 16);
    labelIco->setScaledContents(true);
    QString service = _sms.getAccountName();
    if(!service.isEmpty())
        labelIco->setToolTip(service);

    labelIcoReceived = new QLabel();
    labelIcoReceived->setMaximumSize(16, 16);
    labelIcoReceived->setMinimumSize(16, 16);
    labelIcoReceived->setScaledContents(true);
    createBubble(_sms.getReaded(), received);

    labelTime = new QLabel(msg.getData().toString("dd/MM/yyyy hh:mm:ss"));
    labelTime->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
    labelTime->setMaximumSize(10000, 18);
    QString _txt = msg.getMessage();

    _txt = _txt.replace("<","&lt;");
    _txt = _txt.replace(">","&gt;");
    _txt = parseQuotes(_txt);
    _txt = parseLinks(_txt);
    _txt = parseAts(_txt);

    labelTxt = new QLabel(_txt);
    labelTxt->setTextInteractionFlags(Qt::LinksAccessibleByMouse);
    labelTxt->setWordWrap(true);
    labelTxt->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
    connect(labelTxt, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));

    hLayout = new QHBoxLayout;
    vLayout = new QVBoxLayout;

    labelGroup->adjustSize();
    labelIco->adjustSize();
    labelIcoReceived->adjustSize();
    labelTxt->adjustSize();
    labelTime->adjustSize();

    hLayout->addWidget(labelIcoReceived);
    hLayout->addWidget(labelGroup);
    hLayout->addWidget(labelTime);
    hLayout->addWidget(labelIco);
    vLayout->addLayout(hLayout);
    vLayout->addWidget(labelTxt);

    setLayout(vLayout);
    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
    adjustSize();
}
Ejemplo n.º 4
0
void SmsWidget::setReaded(bool _r)
{
    readed = _r;
    createBubble(_r, type);
}
Ejemplo n.º 5
0
SmsWidget::SmsWidget(QString _txt, QPixmap _ico, bool received, QDateTime time ,QString user, QString service, QString _id, libJackSMS::dataTypes::phoneNumber _number, bool _letto) :
        originalText(_txt),
        type(received),
        id(_id),
        number(_number),
        readed(_letto),
        dateTim(time),
        caricaAltri(false)
{
    name = user;
    labelGroup = new QLabel(user);
    labelGroup->setFont(QFont(labelGroup->font().family(), -1, QFont::Bold, false));
    labelGroup->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed);
    labelGroup->setMaximumSize(10000,18);

    labelIco = new QLabel();
    labelIco->setPixmap(_ico);
    labelIco->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
    labelIco->setMaximumSize(16, 16);
    labelIco->setMinimumSize(16, 16);
    labelIco->setScaledContents(true);
    if (!service.isEmpty())
        labelIco->setToolTip(service);

    labelIcoReceived = new QLabel();
    labelIcoReceived->setMaximumSize(16, 16);
    labelIcoReceived->setMinimumSize(16, 16);
    labelIcoReceived->setScaledContents(true);
    createBubble(_letto, received);

    labelTime = new QLabel(time.toString("dd/MM/yyyy hh:mm:ss"));

    labelTime->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
    labelTime->setMaximumSize(10000, 18);

    _txt = _txt.replace("<", "&lt;");
    _txt = _txt.replace(">", "&gt;");
    _txt = parseQuotes(_txt);
    _txt = parseLinks(_txt);
    _txt = parseAts(_txt);

    labelTxt = new QLabel(_txt);

    labelTxt->setTextInteractionFlags(Qt::LinksAccessibleByMouse);
    labelTxt->setWordWrap(true);
    labelTxt->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
    connect(labelTxt, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));

    hLayout = new QHBoxLayout;
    vLayout = new QVBoxLayout;

    labelGroup->adjustSize();
    labelIco->adjustSize();
    labelIcoReceived->adjustSize();
    labelTxt->adjustSize();
    labelTime->adjustSize();

    hLayout->addWidget(labelIcoReceived);
    hLayout->addWidget(labelGroup);
    hLayout->addWidget(labelTime);
    hLayout->addWidget(labelIco);
    vLayout->addLayout(hLayout);
    vLayout->addWidget(labelTxt);

    setLayout(vLayout);
    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
    adjustSize();
}