当前位置: 首页>>代码示例>>C++>>正文


C++ CoordBox类代码示例

本文整理汇总了C++中CoordBox的典型用法代码示例。如果您正苦于以下问题:C++ CoordBox类的具体用法?C++ CoordBox怎么用?C++ CoordBox使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CoordBox类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: grid

 virtual void grid(GridBase<CELL, 3> *ret)
 {
     CoordBox<3> box = ret->boundingBox();
     for (CoordBox<3>::Iterator i = box.begin(); i != box.end(); ++i) {
         ret->at(*i) = CELL(*i);
     }
 }
开发者ID:sithhell,项目名称:nbody_demo,代码行数:7,代码来源:main_serial1.cpp

示例2: grid

    virtual void grid(GridType *grid)
    {
        CoordBox<2> box = grid->boundingBox();
        grid->setEdge(ContainerCellType());

        for (CoordBox<2>::Iterator i = box.begin(); i != box.end(); ++i) {
            // IDs are derived from a counter. Resetting it ensures
            // that the initializer will use the same ID for a
            // particle on each node for any given container cell:
            counter = 1 + i->toIndex(box.dimensions) * numCells;

            ContainerCellType cell = grid->get(*i);
            cell.clear();
            grid->set(*i, cell);

            if (*i == Coord<2>(0, 0)) {
                // add a single cell with an influx of 1. this will
                // make the whole system heat up over time.
                addHeater(grid, Coord<2>(0, 0), FloatCoord<2>(0, 0), 0, 1);
            }

            addRandomCells(grid, *i, numCells);
        }

        fillGeometryData(grid);
    }
开发者ID:Haider-BA,项目名称:libgeodecomp,代码行数:26,代码来源:main.cpp

示例3: scaledImg

    void Initializer::grid(LibGeoDecomp::GridBase<Cell, 2> *ret)
    {
        using LibGeoDecomp::CoordBox;
        using LibGeoDecomp::FloatCoord;

        boost::gil::rgb8_image_t img;
        boost::gil::png_read_image(VANDOUKEN_DATA_DIR VANDOUKEN_INITIALIZER_IMG, img);
        boost::gil::rgb8_image_t scaledImg(gridDimensions().x(), gridDimensions().y());
        boost::gil::resize_view(
            boost::gil::const_view(img)
          , boost::gil::view(scaledImg)
          , boost::gil::bilinear_sampler()
        );

        boost::gil::rgb8_image_t::const_view_t imgView = boost::gil::const_view(scaledImg);
        CoordBox<2> box = ret->boundingBox();
        for (CoordBox<2>::Iterator i = box.begin(); i != box.end(); ++i) {
            bool setForce = false;
            FloatCoord<2> force;

            for (std::size_t j = 0; j < shapes.size(); ++j) {
                shapes[j]->initCell(&force, &setForce, *i);
            }

            // force alpha channel to 0xff to ensure all particles are opaque
            boost::gil::rgb8_image_t::value_type pixel = imgView(i->x(), i->y());
            unsigned color = 0xff000000 +
                (pixel[0] << 16) +
                (pixel[1] << 8) +
                (pixel[2] << 0);
            ret->set(*i, Cell(color, *i, setForce, force, rand() % Cell::MAX_SPAWN_COUNTDOWN));
        }
        std::cout << "done ...\n";
    }
开发者ID:vanDouken,项目名称:vanDouken,代码行数:34,代码来源:initializer.cpp

示例4: QDialog

bool DirtyListDescriber::showChanges(QWidget* aParent)
{
    QDialog* dlg = new QDialog(aParent);
    Ui.setupUi(dlg);
    dlg->setWindowFlags(dlg->windowFlags() & ~Qt::WindowContextHelpButtonHint);
    theListWidget = Ui.ChangesList;

    runVisit();

    CoordBox bbox = theDocument->getDirtyOrOriginLayer()->boundingBox();
    QString bboxComment = QString("BBOX:%1,%2,%3,%4")
            .arg(QString::number(bbox.bottomLeft().x(), 'f', 2))
            .arg(QString::number(bbox.bottomLeft().y(), 'f', 2))
            .arg(QString::number(bbox.topRight().x(), 'f', 2))
            .arg(QString::number(bbox.topRight().y(), 'f', 2));

    QString statComment = QString("ADD:%1 UPD:%2 DEL:%3").arg(glbAdded).arg(glbUpdated).arg(glbDeleted);

    glbChangeSetComment = bboxComment + " " + statComment;
    Ui.edChangesetComment->setText(glbChangeSetComment);
    Ui.edChangesetComment->selectAll();

    bool ok = (dlg->exec() == QDialog::Accepted);

    if (!Ui.edChangesetComment->text().isEmpty())
        glbChangeSetComment = Ui.edChangesetComment->text();
    else
        glbChangeSetComment = "-";

    Task = Ui.ChangesList->count();
    SAFE_DELETE(dlg)
    return ok;
}
开发者ID:4x4falcon,项目名称:fosm-merkaartor,代码行数:33,代码来源:DirtyList.cpp

示例5: grid

 virtual void grid(GridBase<CELL_TYPE, 1> *ret)
 {
     CoordBox<1> boundingBox = ret->boundingBox();
     for (CoordBox<1>::Iterator i = boundingBox.begin(); i != boundingBox.end(); ++i) {
         CELL_TYPE cell(i->x() % width(), i->x() / width());
         ret->set(*i, cell);
     }
 }
开发者ID:zbyerly,项目名称:libgeodecomp,代码行数:8,代码来源:main.cpp

示例6: clearNoSnap

void ScaleInteraction::snapMousePressEvent(QMouseEvent * anEvent, Feature* aLast)
{
    QList<Feature*> sel;
    if (view()->isSelectionLocked()) {
        if (theMain->properties()->selection(0))
            sel.append(theMain->properties()->selection(0));
        else
            sel.append(aLast);
    } else {
        sel = theMain->properties()->selection();
        if (!sel.size() && aLast)
            sel.append(aLast);
    }
    Radius = 1.0;
    clearNoSnap();
    Scaling.clear();
    OriginalPosition.clear();

    if (!sel.size())
        return;

    view()->setInteracting(true);

    StartDragPosition = XY_TO_COORD(anEvent->pos());
    OriginNode = NULL;
    NodeOrigin  = false;
    CoordBox selBB = sel[0]->boundingBox();
    for (int j=0; j<sel.size(); j++) {
        selBB.merge(sel[j]->boundingBox());
        if (CHECK_WAY(sel[j])) {
            Way* R = STATIC_CAST_WAY(sel[j]);
            for (int i=0; i<R->size(); ++i)
                if (std::find(Scaling.begin(),Scaling.end(),R->get(i)) == Scaling.end())
                    Scaling.push_back(R->getNode(i));
            addToNoSnap(R);
        } else if (CHECK_NODE(sel[j])) {
            if (!OriginNode && !NodeOrigin) {
                OriginNode = STATIC_CAST_NODE(sel[j]);
                NodeOrigin = true;
            } else {
                NodeOrigin = false;
            }
        }
    }
    if (Scaling.size() > 1) {
        if (NodeOrigin) {
            ScaleCenter = COORD_TO_XY(OriginNode->position());
        } else {
            ScaleCenter = COORD_TO_XY(selBB.center());
        }
        for (int i=0; i<Scaling.size(); ++i)
        {
            OriginalPosition.push_back(Scaling[i]->position());
            addToNoSnap(Scaling[i]);
        }
    } else
        Scaling.clear();
}
开发者ID:Harpalus,项目名称:merkaartor,代码行数:58,代码来源:ScaleInteraction.cpp

示例7: setBoundingBox

void NativeRenderDialog::setBoundingBox(CoordBox aBBox)
{
    ui.sbMinLat->setValue(aBBox.bottomLeft().y());
    ui.sbMaxLat->setValue(aBBox.topLeft().y());
    ui.sbMinLon->setValue(aBBox.topLeft().x());
    ui.sbMaxLon->setValue(aBBox.topRight().x());

    prtW->updatePreview();
}
开发者ID:chxyfish,项目名称:merkaartor,代码行数:9,代码来源:NativeRenderDialog.cpp

示例8: stepFinished

    void stepFinished(const GridType& grid, unsigned step, WriterEvent event)
    {
        avrgTemperature = 0;

        CoordBox<2> box = grid.boundingBox();
        for (CoordBox<2>::Iterator i = box.begin(); i != box.end(); ++i) {
            avrgTemperature += grid.get(*i).temperature;
        }

        avrgTemperature /= box.dimensions.prod();
        std::cout << "averageTemperature(" << step << ") = " << avrgTemperature << "\n";
    }
开发者ID:STEllAR-GROUP,项目名称:libgeodecomp,代码行数:12,代码来源:main.cpp

示例9: downloadOSM

bool downloadOSM(QWidget* aParent, const QString& aWeb, const QString& aUser, const QString& aPassword, const CoordBox& aBox , Document* theDocument, Layer* theLayer)
{
    if (checkForConflicts(theDocument))
    {
        QMessageBox::warning(aParent,QApplication::translate("Downloader","Unresolved conflicts"), QApplication::translate("Downloader","Please resolve existing conflicts first"));
        return false;
    }
    Downloader Rcv(aUser, aPassword);
    QString URL = Rcv.getURLToMap();
    URL = URL.arg(aBox.bottomLeft().x(), 0, 'f').arg(aBox.bottomLeft().y(), 0, 'f').arg(aBox.topRight().x(), 0, 'f').arg(aBox.topRight().y(), 0, 'f');

    QUrl theUrl(aWeb+URL);
    return downloadOSM(aParent, theUrl, aUser, aPassword, theDocument, theLayer);
}
开发者ID:ryfx,项目名称:merkaartor,代码行数:14,代码来源:DownloadOSM.cpp

示例10: downloadTracksFromOSM

bool downloadTracksFromOSM(QWidget* Main, const QString& aWeb, const QString& aUser, const QString& aPassword, const CoordBox& aBox , Document* theDocument)
{
    Downloader theDownloader(aUser, aPassword);
    QList<TrackLayer*> theTracklayers;
    //TrackMapLayer* trackLayer = new TrackMapLayer(QApplication::translate("Downloader","Downloaded tracks"));
    //theDocument->add(trackLayer);

    IProgressWindow* aProgressWindow = dynamic_cast<IProgressWindow*>(Main);
    if (!aProgressWindow)
        return false;

    QProgressDialog* dlg = aProgressWindow->getProgressDialog();
    dlg->setWindowTitle(QApplication::translate("Downloader","Parsing..."));

    QProgressBar* Bar = aProgressWindow->getProgressBar();
    Bar->setTextVisible(false);
    Bar->setMaximum(11);

    QLabel* Lbl = aProgressWindow->getProgressLabel();
    Lbl->setText(QApplication::translate("Downloader","Parsing XML"));

    if (dlg)
        dlg->show();

    theDownloader.setAnimator(dlg,Lbl,Bar,true);
    for (int Page=0; ;++Page)
    {
        Lbl->setText(QApplication::translate("Downloader","Downloading trackpoints %1-%2").arg(Page*5000+1).arg(Page*5000+5000));
        QString URL = theDownloader.getURLToTrackPoints();
        URL = URL.arg(aBox.bottomLeft().x()).
                arg(aBox.bottomLeft().y()).
                arg(aBox.topRight().x()).
                arg(aBox.topRight().y()).
                arg(Page);
        QUrl theUrl(aWeb+URL);
        if (!theDownloader.go(theUrl))
            return false;
        if (theDownloader.resultCode() != 200)
            return false;
        int Before = theTracklayers.size();
        QByteArray Ar(theDownloader.content());
        bool OK = importGPX(Main, Ar, theDocument, theTracklayers, true);
        if (!OK)
            return false;
        if (Before == theTracklayers.size())
            break;
        theTracklayers[theTracklayers.size()-1]->setName(QApplication::translate("Downloader", "Downloaded track - nodes %1-%2").arg(Page*5000+1).arg(Page*5000+5000));
    }
    return true;
}
开发者ID:ryfx,项目名称:merkaartor,代码行数:50,代码来源:DownloadOSM.cpp

示例11: QString

bool DrawingLayer::toXML(QXmlStreamWriter& stream, bool asTemplate, QProgressDialog * progress)
{
    bool OK = true;

    stream.writeStartElement(metaObject()->className());
    Layer::toXML(stream, asTemplate, progress);

    if (!asTemplate) {
        stream.writeStartElement("osm");
        stream.writeAttribute("version", "0.6");
        stream.writeAttribute("generator", QString("%1 %2").arg(STRINGIFY(PRODUCT)).arg(STRINGIFY(VERSION)));

        if (p->Features.size()) {
            stream.writeStartElement("bound");
            CoordBox layBB = boundingBox();
            QString S = QString().number(layBB.bottomLeft().y(),'f',6) + ",";
            S += QString().number(layBB.bottomLeft().x(),'f',6) + ",";
            S += QString().number(layBB.topRight().y(),'f',6) + ",";
            S += QString().number(layBB.topRight().x(),'f',6);
            stream.writeAttribute("box", S);
            stream.writeAttribute("origin", QString("http://www.openstreetmap.org/api/%1").arg(M_PREFS->apiVersion()));
            stream.writeEndElement();
        }

        QList<MapFeaturePtr>::iterator it;
        for(it = p->Features.begin(); it != p->Features.end(); it++)
            (*it)->toXML(stream, progress);
        stream.writeEndElement();

        QList<CoordBox> downloadBoxes = p->theDocument->getDownloadBoxes(this);
        if (downloadBoxes.size() && p->theDocument->getLastDownloadLayerTime().secsTo(QDateTime::currentDateTime()) < 12*3600) { // Do not export downloaded areas if older than 12h
            stream.writeStartElement("DownloadedAreas");
            QListIterator<CoordBox>it(downloadBoxes);
            while(it.hasNext()) {
                it.next().toXML("DownloadedBoundingBox", stream);
            }
            stream.writeEndElement();
        }
    }
    stream.writeEndElement();

    return OK;
}
开发者ID:Harpalus,项目名称:merkaartor,代码行数:43,代码来源:Layer.cpp

示例12: grid

    virtual void grid(GridBase<BushFireCell, 2> *ret)
    {
        Random::seed(4711);
        CoordBox<2> box = ret->boundingBox();
        Grid<double> humidityGrid = createUnwarpedPlasmaField(gridDimensions(), 0.5);
        Grid<double> fuelGrid = createUnwarpedPlasmaField(gridDimensions(), 0.01);

        for (CoordBox<2>::Iterator i = box.begin(); i != box.end(); ++i) {
            ret->set(*i, BushFireCell(humidityGrid[*i], 1.0 + fuelGrid[*i]));
        }

        CoordBox<2> seatOfFire(Coord<2>(100, 100), Coord<2>(10, 10));

        for (CoordBox<2>::Iterator i = seatOfFire.begin(); i != seatOfFire.end(); ++i) {
            if (box.inBounds(*i)) {
                ret->set(*i, BushFireCell(0, 10.0, 200.0, BushFireCell::BURNING));
            }
        }
    }
开发者ID:STEllAR-GROUP,项目名称:libgeodecomp,代码行数:19,代码来源:main.cpp

示例13: grid

    virtual void grid(GridBase<ConwayCell, 2> *ret)
    {
        CoordBox<2> rect = ret->boundingBox();
        std::vector<Coord<2> > startCells;
        // start with a single glider...
        //          x
        //           x
        //         xxx
        startCells +=
            Coord<2>(11, 10),
            Coord<2>(12, 11),
            Coord<2>(10, 12), Coord<2>(11, 12), Coord<2>(12, 12);


        // ...add a Diehard pattern...
        //                x
        //          xx
        //           x   xxx
        startCells +=
            Coord<2>(55, 70), Coord<2>(56, 70), Coord<2>(56, 71),
            Coord<2>(60, 71), Coord<2>(61, 71), Coord<2>(62, 71),
            Coord<2>(61, 69);

        // ...and an Acorn pattern:
        //        x
        //          x
        //       xx  xxx
        startCells +=
            Coord<2>(111, 30),
            Coord<2>(113, 31),
            Coord<2>(110, 32), Coord<2>(111, 32),
            Coord<2>(113, 32), Coord<2>(114, 32), Coord<2>(115, 32);


        for (std::vector<Coord<2> >::iterator i = startCells.begin();
             i != startCells.end();
             ++i) {
            if (rect.inBounds(*i)) {
                ret->set(*i, ConwayCell(true));
            }
        }
    }
开发者ID:jhgoebbert,项目名称:libgeodecomp,代码行数:42,代码来源:main.cpp

示例14: boundingBox

CoordBox Layer::boundingBox()
{
    if(p->Features.size()==0) return CoordBox(Coord(0,0),Coord(0,0));
    CoordBox Box;
    bool haveFirst = false;
    for (int i=0; i<p->Features.size(); ++i) {
        if (p->Features.at(i)->isDeleted())
            continue;
        if (p->Features.at(i)->notEverythingDownloaded())
            continue;
        if (p->Features.at(i)->boundingBox().isNull())
            continue;
        if (haveFirst)
            Box.merge(p->Features.at(i)->boundingBox());
        else {
            Box = p->Features.at(i)->boundingBox();
            haveFirst = true;
        }
    }
    return Box;
}
开发者ID:Harpalus,项目名称:merkaartor,代码行数:21,代码来源:Layer.cpp

示例15: downloadOSM

bool downloadOSM(QWidget* aParent, const QString& aWeb, const QString& aUser, const QString& aPassword, const CoordBox& aBox , Document* theDocument, Layer* theLayer)
{
    if (checkForConflicts(theDocument))
    {
        QMessageBox::warning(aParent,QApplication::translate("Downloader","Unresolved conflicts"), QApplication::translate("Downloader","Please resolve existing conflicts first"));
        return false;
    }
    Downloader Rcv(aUser, aPassword);
    QString URL = Rcv.getURLToMap();

    if ((fabs(aBox.bottomLeft().x()) < 180.0 && fabs(aBox.topRight().x()) > 180.0) 
     || (fabs(aBox.bottomLeft().x()) > 180.0 && fabs(aBox.topRight().x()) < 180.0)) {
        /* Check for +-180 meridian, and split query in two if necessary */
        int sign = (aBox.bottomLeft().x() > 0) ? 1 : -1;
        CoordBox q1 = aBox, q2 = aBox;
        if (aBox.bottomLeft().x() > 0) {
            q1.setRight(180*sign);
            q2.setLeft(-180*sign);
            q2.setRight(q2.right()-360);
        } else {
            q1.setLeft(180*sign);
            q2.setRight(-180*sign);
            q2.setLeft(q2.left()+360);
        }
        return downloadOSM(aParent, aWeb, aUser, aPassword, q1, theDocument, theLayer)
            && downloadOSM(aParent, aWeb, aUser, aPassword, q2, theDocument, theLayer);

    } else {
        /* Normal code path */
        URL = URL.arg(aBox.bottomLeft().x(), 0, 'f').arg(aBox.bottomLeft().y(), 0, 'f').arg(aBox.topRight().x(), 0, 'f').arg(aBox.topRight().y(), 0, 'f');
        QUrl theUrl(aWeb+URL);
        return downloadOSM(aParent, theUrl, aUser, aPassword, theDocument, theLayer);
    }
}
开发者ID:sumitkumarn,项目名称:merkaartor,代码行数:34,代码来源:DownloadOSM.cpp


注:本文中的CoordBox类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。