Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

num_segments

Calculates the number of segments of a geometry.

Description

The free function num_segments calculates the number of segments of a geometry.

Synopsis

template<typename Geometry>
std::size_t num_segments(Geometry const & geometry)

Parameters

Type

Concept

Name

Description

Geometry const &

Any type fulfilling a Geometry Concept

geometry

A model of the specified concept

Returns

The calculated number of segments

Header

Either

#include <boost/geometry.hpp>

Or

#include <boost/geometry/algorithms/num_segments.hpp>

Conformance

The function num_segments is not defined by OGC.

Behavior

Case

Behavior

pointlike (e.g. point)

Returns 0

Segment

Returns 1

Box

Returns d * 2^(d-1), where d is the dimension of the box

Rangelike (linestring, ring)

Returns boost::size(geometry) - 1

Other geometries

Returns the sum of the number of segments of its elements

Complexity

Constant or Linear

Examples

Get the number of segments in a geometry

#include <iostream>

#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>


int main()
{
    boost::geometry::model::multi_polygon
        <
            boost::geometry::model::polygon
                <
                    boost::geometry::model::d2::point_xy<double>, true, false // cw, open polygon
                >
        > mp;
    boost::geometry::read_wkt("MULTIPOLYGON(((0 0,0 10,10 0),(1 1,8 1,1 8)),((10 10,10 20,20 10)))", mp);
    std::cout << "Number of segments: " << boost::geometry::num_segments(mp) << std::endl;
    return 0;
}

Output:

Number of segments: 9

PrevUpHomeNext