1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en"
3 xmlns:
v=
"urn:schemas-microsoft-com:vml"
4 xmlns:
o=
"urn:schemas-microsoft-com:office:office"
5 xmlns:(null)
1=
"http://www.w3.org/TR/REC-html40" lang=
"en">
8 Copyright 2009-2010 Intel Corporation
11 <title>Boost Polygon Library: Property Merge
90</title>
12 <meta http-equiv=
"content-type" content=
"text/html;charset=ISO-8859-1" />
13 <!-- <link type="text/css" rel="stylesheet" href="adobe_source.css"> -->
16 <table style=
"margin: 0pt; padding: 0pt; width: 100%;" border=
"0"
17 cellpadding=
"0" cellspacing=
"0">
20 <td style=
"background-color: rgb(238, 238, 238);" nowrap=
"1"
22 <div style=
"padding: 5px;" align=
"center"> <img
23 src=
"images/boost.png" border=
"0" height=
"86" width=
"277" /><a
24 title=
"www.boost.org home page" href=
"http://www.boost.org/"
25 tabindex=
"2" style=
"border: medium none ;"> </a> </div>
26 <div style=
"margin: 5px;">
27 <h3 class=
"navbar">Contents
</h3>
29 <li><a href=
"index.htm">Boost.Polygon Main Page
</a></li>
30 <li><a href=
"gtl_design_overview.htm">Design Overview
</a></li>
31 <li><a href=
"gtl_isotropy.htm">Isotropy
</a></li>
32 <li><a href=
"gtl_coordinate_concept.htm">Coordinate Concept
</a></li>
33 <li><a href=
"gtl_interval_concept.htm">Interval Concept
</a></li>
34 <li><a href=
"gtl_point_concept.htm">Point Concept
</a></li>
35 <li><a href=
"gtl_segment_concept.htm">Segment Concept
</a></li>
36 <li><a href=
"gtl_rectangle_concept.htm">Rectangle Concept
</a></li>
37 <li><a href=
"gtl_polygon_90_concept.htm">Polygon
90 Concept
</a></li>
38 <li><a href=
"gtl_polygon_90_with_holes_concept.htm">Polygon
90
39 With Holes Concept
</a></li>
40 <li><a href=
"gtl_polygon_45_concept.htm">Polygon
45 Concept
</a></li>
41 <li><a href=
"gtl_polygon_45_with_holes_concept.htm">Polygon
45
42 With Holes Concept
</a></li>
43 <li><a href=
"gtl_polygon_concept.htm">Polygon Concept
</a></li>
44 <li><a href=
"gtl_polygon_with_holes_concept.htm">Polygon With
45 Holes Concept
</a></li>
46 <li><a href=
"gtl_polygon_90_set_concept.htm">Polygon
90 Set
48 <li><a href=
"gtl_polygon_45_set_concept.htm">Polygon
45 Set
50 <li><a href=
"gtl_polygon_set_concept.htm">Polygon Set Concept
</a></li>
51 <li><a href=
"gtl_connectivity_extraction_90.htm">Connectivity
52 Extraction
90</a></li>
53 <li><a href=
"gtl_connectivity_extraction_45.htm">Connectivity
54 Extraction
45</a></li>
55 <li><a href=
"gtl_connectivity_extraction.htm">Connectivity
57 <li><a href=
"gtl_property_merge_90.htm">Property Merge
90</a></li>
58 <li>Property Merge
45</li>
59 <li><a href=
"gtl_property_merge.htm">Property Merge
</a></li>
60 <li><a href=
"voronoi_main.htm">Voronoi Main Page
<br />
62 <li><a href=
"voronoi_benchmark.htm">Voronoi Benchmark
</a><br />
64 <li><a href=
"voronoi_builder.htm">Voronoi Builder
</a></li>
65 <li><a href=
"voronoi_diagram.htm">Voronoi Diagram
</a></li>
67 <h3 class=
"navbar">Other Resources
</h3>
69 <li><a href=
"GTL_boostcon2009.pdf">GTL Boostcon
2009 Paper
</a></li>
70 <li><a href=
"GTL_boostcon_draft03.pdf">GTL Boostcon
2009
72 <li><a href=
"analysis.htm">Performance Analysis
</a></li>
73 <li><a href=
"gtl_tutorial.htm">Layout Versus Schematic Tutorial
</a></li>
74 <li><a href=
"gtl_minkowski_tutorial.htm">Minkowski Sum Tutorial
</a></li>
75 <li><a href=
"voronoi_basic_tutorial.htm">Voronoi Basic Tutorial
</a></li>
76 <li><a href=
"voronoi_advanced_tutorial.htm">Voronoi Advanced
80 <h3 class=
"navbar">Polygon Sponsor
</h3>
81 <div style=
"padding: 5px;" align=
"center"> <img
82 src=
"images/intlogo.gif" border=
"0" height=
"51" width=
"127" /><a
83 title=
"www.adobe.com home page" href=
"http://www.adobe.com/"
84 tabindex=
"2" style=
"border: medium none ;"> </a> </div>
87 style=
"padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
88 valign=
"top" width=
"100%">
89 <!-- End Header --><br />
92 <h1>Property Merge
45</h1>
94 <p>The following is the declaration of the property merge
96 <p><font face=
"Courier New">template
<typename
97 coordinate_type, typename property_type
><br />
98 class property_merge_45;
</font></p>
99 <p>The property algorithm computes the n-layer map overlay of
100 input polygon sets.
Each input geometry is inserted along with a
101 property value.
The property type can be anything suitable for
102 use as an element of a std::set.
Multiple geometry objects can be
103 separately inserted with the same property value.
To store the
104 result of this operation a fairly complex container is required.
105 Resulting geometries are associated with unique subsets of property
106 values of the input geometry.
Two suitable containers for storing
107 the result of a property merge operation are:
</p>
108 <p><font face=
"Courier New">std::map
<std::set
<property_type
>,
109 polygon_45_set_data
<coordinate_type
> ><br />
110 std::map
<std::vector
<property_type
>,
111 polygon_45_set_data
<coordinate_type
> ></font></p>
112 <p>Example code
<a href=
"gtl_property_merge_usage.htm">property_merge_usage.cpp
</a>
113 demonstrates using the n-layer map-overlay algorithm on polygon
90 data.
</p>
114 <h2>Member Functions
</h2>
115 <table id=
"table1" border=
"1" width=
"100%">
118 <td width=
"586"><b><font face=
"Courier New">property_merge_45
</font></b><font
119 face=
"Courier New">()
</font></td>
120 <td>Default constructor.
</td>
123 <td width=
"586"><b><font face=
"Courier New">property_merge_45
</font></b><font
124 face=
"Courier New">(const property_merge_45
& that)
</font></td>
125 <td>Copy construct.
</td>
128 <td width=
"586"><font face=
"Courier New">void
<br />
130 polygon_45_set_data
<coordinate_type
>& ps,
<br />
131 const property_type
& property)
</font></td>
132 <td>I
<font face=
"Times New Roman">nsert a polygon set with
133 an associated property.
</font> Linear wrt vertices inserted.
</td>
136 <td width=
"586"><font face=
"Courier New">
137 template
<class GeoObjT
><br />
138 void
<b>insert
</b>(const GeoObjT
& geoObj,
<br />
139 const property_type
& property)
</font></td>
140 <td>Insert a geometry object that is a refinement of
141 polygon
45 set with an associated property.
Linear wrt vertices
145 <td width=
"586"><font face=
"Courier New">
146 template
<typename result_type
><br />
147 void
<b>merge
</b>(result_type
& result)
</font></td>
148 <td>Accepts a container object that conforms to the
149 expectations defined above.
Performs property merge and populates
150 the container object.
O(n log n) runtime wrt. vertices +
158 <td style=
"background-color: rgb(238, 238, 238);" nowrap=
"1"
159 valign=
"top"> </td>
161 style=
"padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
162 valign=
"top" width=
"100%">
163 <table class=
"docinfo" id=
"table2" frame=
"void" rules=
"none">
164 <colgroup> <col class=
"docinfo-name" /><col
165 class=
"docinfo-content" /> </colgroup> <tbody valign=
"top">
167 <th class=
"docinfo-name">Copyright:
</th>
168 <td>Copyright © Intel Corporation
2008-
2010.
</td>
171 <th class=
"docinfo-name">License:
</th>
172 <td class=
"field-body">Distributed under the Boost Software
173 License, Version
1.0. (See accompanying file
<tt class=
"literal"> <span
174 class=
"pre">LICENSE_1_0.txt
</span></tt> or copy at
<a
175 class=
"reference" target=
"_top"
176 href=
"http://www.boost.org/LICENSE_1_0.txt">
177 http://www.boost.org/LICENSE_1_0.txt
</a>)
</td>