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


C++ box2d::maxx方法代码示例

本文整理汇总了C++中box2d::maxx方法的典型用法代码示例。如果您正苦于以下问题:C++ box2d::maxx方法的具体用法?C++ box2d::maxx怎么用?C++ box2d::maxx使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在box2d的用法示例。


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

示例1: has_placement

    bool has_placement(box2d<double> const& box, double margin, mapnik::value_unicode_string const& text, double repeat_distance)
    {
        // Don't bother with any of the repeat checking unless the repeat distance is greater than the margin
        if (repeat_distance <= margin) {
            return has_placement(box, margin);
        }

        box2d<double> repeat_box(box.minx() - repeat_distance, box.miny() - repeat_distance,
                                 box.maxx() + repeat_distance, box.maxy() + repeat_distance);

        box2d<double> const& margin_box = (margin > 0
                                               ? box2d<double>(box.minx() - margin, box.miny() - margin,
                                                               box.maxx() + margin, box.maxy() + margin)
                                               : box);

        tree_t::query_iterator itr = tree_.query_in_box(repeat_box);
        tree_t::query_iterator end = tree_.query_end();

        for ( ;itr != end; ++itr)
        {
            if (itr->get().box.intersects(margin_box) || (text == itr->get().text && itr->get().box.intersects(repeat_box)))
            {
                return false;
            }
        }

        return true;
    }
开发者ID:gischen,项目名称:mapnik,代码行数:28,代码来源:label_collision_detector.hpp

示例2: envelope_points

void envelope_points(std::vector< coord<double,2> > & coords, box2d<double>& env, int points)
{
    double width = env.width();
    double height = env.height();

    int steps;

    if (points <= 4) {
        steps = 0;
    } else {
        steps = static_cast<int>(std::ceil((points - 4) / 4.0));
    }

    steps += 1;
    double xstep = width / steps;
    double ystep = height / steps;

    for (int i=0; i<=steps; i++) {
        coords.push_back(coord<double,2>(env.minx() + i * xstep, env.miny()));
        coords.push_back(coord<double,2>(env.minx() + i * xstep, env.maxy()));

    }
    for (int i=1; i<steps; i++) {
        coords.push_back(coord<double,2>(env.minx(), env.miny() + i * ystep));
        coords.push_back(coord<double,2>(env.maxx(), env.miny() + i * ystep));
    }
}
开发者ID:Blaxxun,项目名称:mapnik,代码行数:27,代码来源:proj_transform.cpp

示例3: backward

 inline box2d<double> backward(box2d<double> const& e) const
 {
     double x0 = e.minx();
     double y0 = e.miny();
     double x1 = e.maxx();
     double y1 = e.maxy();
     backward(&x0, &y0);
     backward(&x1, &y1);
     return box2d<double>(x0, y0, x1, y1);
 }
开发者ID:DavidLiuGitHub,项目名称:mapnik,代码行数:10,代码来源:view_transform.hpp

示例4: sql_bbox

std::string occi_datasource::sql_bbox(box2d<double> const& env) const
{
    std::ostringstream b;
    b << std::setprecision(16);
    b << "MDSYS.SDO_GEOMETRY(" << SDO_GTYPE_2DPOLYGON << "," << srid_ << ",NULL,";
    b << " MDSYS.SDO_ELEM_INFO_ARRAY(1," << SDO_ETYPE_POLYGON << "," << SDO_INTERPRETATION_RECTANGLE << "),";
    b << " MDSYS.SDO_ORDINATE_ARRAY(";
    b << env.minx() << "," << env.miny() << ", ";
    b << env.maxx() << "," << env.maxy() << "))";
    return b.str();
}
开发者ID:gischen,项目名称:mapnik,代码行数:11,代码来源:occi_datasource.cpp

示例5: sql_bbox

std::string postgis_datasource::sql_bbox(box2d<double> const& env) const
{
    std::ostringstream b;
    if (srid_ > 0)
        b << "SetSRID(";
    b << "'BOX3D(";
    b << std::setprecision(16);
    b << env.minx() << " " << env.miny() << ",";
    b << env.maxx() << " " << env.maxy() << ")'::box3d";
    if (srid_ > 0)
        b << ", " << srid_ << ")";
    return b.str();
}
开发者ID:bygreencn,项目名称:mapnik,代码行数:13,代码来源:postgis_datasource.cpp

示例6: transform

 inline box2d<double> transform(box2d<double>& box) const
 {
     int x_offset = int(std::floor(box.minx() / tile_size_));
     int y_offset = int(std::floor(box.miny() / tile_size_));
     box2d<double> rem(x_offset * tile_size_,
                       y_offset * tile_size_,
                       x_offset * tile_size_,
                       y_offset * tile_size_);
     box.init(box.minx() - rem.minx(),
              box.miny() - rem.miny(),
              box.maxx() - rem.maxx(),
              box.maxy() - rem.maxy());
     return rem;
 }
开发者ID:ParveenArora,项目名称:mapnik,代码行数:14,代码来源:raster_featureset.hpp

示例7: split_box

    void split_box(box2d<double> const& node_extent,box2d<double> * ext)
    {
        double width=node_extent.width();
        double height=node_extent.height();

        double lox=node_extent.minx();
        double loy=node_extent.miny();
        double hix=node_extent.maxx();
        double hiy=node_extent.maxy();

        ext[0]=box2d<double>(lox,loy,lox + width * ratio_,loy + height * ratio_);
        ext[1]=box2d<double>(hix - width * ratio_,loy,hix,loy + height * ratio_);
        ext[2]=box2d<double>(lox,hiy - height*ratio_,lox + width * ratio_,hiy);
        ext[3]=box2d<double>(hix - width * ratio_,hiy - height*ratio_,hix,hiy);
    }
开发者ID:gischen,项目名称:mapnik,代码行数:15,代码来源:quad_tree.hpp

示例8: has_point_placement

    bool has_point_placement(box2d<double> const& box, double distance)
    {
        box2d<double> bigger_box(box.minx() - distance, box.miny() - distance, box.maxx() + distance, box.maxy() + distance);
        tree_t::query_iterator itr = tree_.query_in_box(bigger_box);
        tree_t::query_iterator end = tree_.query_end();

        for ( ;itr != end; ++itr)
        {
            if (itr->box.intersects(bigger_box))
            {
                return false;
            }
        }

        return true;
    }
开发者ID:FlavioFalcao,项目名称:mapnik,代码行数:16,代码来源:label_collision_detector.hpp

示例9: has_placement

    bool has_placement(box2d<double> const& box, mapnik::value_unicode_string const& text, double distance)
    {
        box2d<double> bigger_box(box.minx() - distance, box.miny() - distance, box.maxx() + distance, box.maxy() + distance);
        tree_t::query_iterator itr = tree_.query_in_box(bigger_box);
        tree_t::query_iterator end = tree_.query_end();

        for ( ;itr != end; ++itr)
        {
            if (itr->box.intersects(box) || (text == itr->text && itr->box.intersects(bigger_box)))
            {
                return false;
            }
        }

        return true;
    }
开发者ID:FlavioFalcao,项目名称:mapnik,代码行数:16,代码来源:label_collision_detector.hpp

示例10: backward

bool proj_transform::backward (box2d<double> & box) const
{
    if (is_source_equal_dest_)
        return true;

    double minx = box.minx();
    double miny = box.miny();
    double maxx = box.maxx();
    double maxy = box.maxy();
    double z = 0.0;
    if (!backward(minx,miny,z))
        return false;
    if (!backward(maxx,maxy,z))
        return false;
    box.init(minx,miny,maxx,maxy);
    return true;
}
开发者ID:Blaxxun,项目名称:mapnik,代码行数:17,代码来源:proj_transform.cpp

示例11: result

 /** Rotates the size_ box and translates the position. */
 box2d<double> perform_transform(double angle, double dx, double dy)
 {
     double x1 = size_.minx();
     double x2 = size_.maxx();
     double y1 = size_.miny();
     double y2 = size_.maxy();
     agg::trans_affine tr = tr_ * agg::trans_affine_rotation(angle).translate(dx, dy);
     double xA = x1, yA = y1, xB = x2, yB = y1, xC = x2, yC = y2, xD = x1, yD = y2;
     tr.transform(&xA, &yA);
     tr.transform(&xB, &yB);
     tr.transform(&xC, &yC);
     tr.transform(&xD, &yD);
     box2d<double> result(xA, yA, xC, yC);
     result.expand_to_include(xB, yB);
     result.expand_to_include(xD, yD);
     return result;
 }
开发者ID:Kotaimen,项目名称:mapnik,代码行数:18,代码来源:markers_placement.hpp

示例12: draw_rect

void draw_rect(image_32 &pixmap, box2d<double> const& box)
{
    double x0 = box.minx();
    double x1 = box.maxx();
    double y0 = box.miny();
    double y1 = box.maxy();
    unsigned color1 = 0xff0000ff;
    for (double x=x0; x<x1; x++)
    {
        pixmap.setPixel(x, y0, color1);
        pixmap.setPixel(x, y1, color1);
    }
    for (double y=y0; y<y1; y++)
    {
        pixmap.setPixel(x0, y, color1);
        pixmap.setPixel(x1, y, color1);
    }
}
开发者ID:ake-koomsin,项目名称:mapnik_nvpr,代码行数:18,代码来源:process_debug_symbolizer.cpp

示例13: has_placement

    bool has_placement(box2d<double> const& box, double minimum_distance)
    {
        box2d<double> const& minimum_box = (minimum_distance > 0
                                               ? box2d<double>(box.minx() - minimum_distance, box.miny() - minimum_distance,
                                                               box.maxx() + minimum_distance, box.maxy() + minimum_distance)
                                               : box);

        tree_t::query_iterator itr = tree_.query_in_box(minimum_box);
        tree_t::query_iterator end = tree_.query_end();

        for (;itr != end; ++itr)
        {
            if (itr->box.intersects(minimum_box))
            {
                return false;
            }
        }
        return true;
    }
开发者ID:agemsa,项目名称:mapnik,代码行数:19,代码来源:label_collision_detector.hpp

示例14: has_placement

    bool has_placement(box2d<double> const& box, double margin)
    {
        box2d<double> const& margin_box = (margin > 0
                                               ? box2d<double>(box.minx() - margin, box.miny() - margin,
                                                               box.maxx() + margin, box.maxy() + margin)
                                               : box);

        tree_t::query_iterator tree_itr = tree_.query_in_box(margin_box);
        tree_t::query_iterator tree_end = tree_.query_end();

        for (;tree_itr != tree_end; ++tree_itr)
        {
            if (tree_itr->get().box.intersects(margin_box))
            {
                return false;
            }
        }
        return true;
    }
开发者ID:JesseCrocker,项目名称:mapnik,代码行数:19,代码来源:label_collision_detector.hpp

示例15: set_gradient

void cairo_context::set_gradient(cairo_gradient const& pattern, const box2d<double> &bbox)
{
    cairo_pattern_t * gradient = pattern.gradient();
    double bx1=bbox.minx();
    double by1=bbox.miny();
    double bx2=bbox.maxx();
    double by2=bbox.maxy();
    if (pattern.units() != USER_SPACE_ON_USE)
    {
        if (pattern.units() == OBJECT_BOUNDING_BOX)
        {
            cairo_path_extents(cairo_.get(), &bx1, &by1, &bx2, &by2);
        }
        cairo_matrix_t cairo_matrix;
        cairo_pattern_get_matrix(gradient, &cairo_matrix);
        cairo_matrix_scale(&cairo_matrix,1.0/(bx2-bx1),1.0/(by2-by1));
        cairo_matrix_translate(&cairo_matrix, -bx1,-by1);
        cairo_pattern_set_matrix(gradient, &cairo_matrix);
    }
    cairo_set_source(cairo_.get(), const_cast<cairo_pattern_t*>(gradient));
    check_object_status_and_throw_exception(*this);
}
开发者ID:lightmare,项目名称:mapnik,代码行数:22,代码来源:cairo_context.cpp


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