FileTransferHandler::FileTransferHandler(PsiAccount *pa, FileTransfer *ft) { d = new Private; d->pa = pa; d->c = 0; if(ft) { d->sending = false; d->peer = ft->peer(); d->fileName = clean_filename(ft->fileName()); d->fileSize = ft->fileSize(); d->desc = ft->description(); d->shift = calcShift(d->fileSize); d->complement = calcComplement(d->fileSize, d->shift); d->ft = ft; Jid proxy = d->pa->userAccount().dtProxy; if(proxy.isValid()) d->ft->setProxy(proxy); mapSignals(); } else { d->sending = true; d->ft = 0; } }
float ScenRectangle::intersect(Node *node) { //////////////// if(nodeOverlap(*node)) { Point2D pt(node->getPosition()); //Trasformo il punto nelle coordinate locali del rettangolo pt.translate(-this->p.x,-this->p.y); pt.rotate(-rotAngle); Vector2D lv; lv=node->getVelocity(); lv.rotate(-rotAngle); Vector2D shift=calcShift(pt,lv,node->getRadius()+0.01f); node->setPosition(shift); //return 0; } //////////////////////////// float radius=node->getRadius(); ScenRectangle boundRect(Point2D(p.x-radius,p.y-radius), width+radius*2,height+radius*2); //Creo il raggio e lo trasformo nelle coodinate locali del rettangolo Ray2D ray=transformRay(Ray2D(node->getPosition(),node->getVelocity())); //Lo devo traslare perchè calcolo //l'intersezione con un rettangolo allargato ray.o.x+=radius; ray.o.y+=radius; //Calcolo l'intersezione return boundRect.rayLocalIntersect(ray); }//Fine intersect
int main() { char szStr[256]; int ctime; ctime=0; ctime=ctime+calcFuncCall(); ctime=ctime+calcAdd(); ctime=ctime+calcSub(); ctime=ctime+calcMul(); ctime=ctime+calcDiv(); ctime=ctime+calcShift(); ctime=ctime+calcFloatAdd(); ctime=ctime+calcFloatSub(); ctime=ctime+calcFloatMul(); ctime=ctime+calcFloatDiv(); ctime=ctime+calcDoubleAdd(); ctime=ctime+calcDoubleSub(); ctime=ctime+calcDoubleMul(); ctime=ctime+calcDoubleDiv(); printf("Spec Time=,%d",ctime); return 0; }
void ImageViewer::layoutImage() { if(hasPicture()) { calcScaleRatio(); calcTopLeft(); calcShift(); } updateCursor(); }
void FileTransferHandler::send(const XMPP::Jid &to, const QString &fname, const QString &desc) { if(!d->sending) return; d->peer = to; QFileInfo fi(fname); d->filePath = fname; d->fileName = fi.fileName(); d->fileSize = fi.size(); // TODO: large file support d->desc = desc; d->shift = calcShift(d->fileSize); d->complement = calcComplement(d->fileSize, d->shift); d->ft = d->pa->client()->fileTransferManager()->createTransfer(); Jid proxy = d->pa->userAccount().dtProxy; if(proxy.isValid()) d->ft->setProxy(proxy); mapSignals(); d->f.setFileName(fname); d->ft->sendFile(d->peer, d->fileName, d->fileSize, desc); }
void FileTransferHandler::send(const XMPP::Jid &to, const QString &fname, const QString &desc) { if(!d->sending) return; d->peer = to; QFileInfo fi(fname); d->filePath = fname; d->fileName = fi.fileName(); d->fileSize = fi.size(); // TODO: large file support d->desc = desc; d->shift = calcShift(d->fileSize); d->complement = calcComplement(d->fileSize, d->shift); d->ft = d->pa->client()->fileTransferManager()->createTransfer(); Jid proxy = d->pa->userAccount().dtProxy; if(proxy.isValid()) d->ft->setProxy(proxy); mapSignals(); d->f.setFileName(fname); // try to make thumbnail QImage img(fname); XMPP::FTThumbnail thumb; if (!img.isNull()) { QByteArray ba; QBuffer buffer(&ba); buffer.open(QIODevice::WriteOnly); img = img.scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation); img.save(&buffer, "PNG"); thumb = XMPP::FTThumbnail(ba, "image/png", img.width(), img.height()); } d->ft->sendFile(d->peer, d->fileName, d->fileSize, desc, thumb); }