]>
Commit | Line | Data |
---|---|---|
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"> | |
6 | <head> | |
7 | <!-- | |
8 | Copyright 2009-2010 Intel Corporation | |
9 | license banner | |
10 | --> | |
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"> --> | |
14 | </head> | |
15 | <body> | |
16 | <table style="margin: 0pt; padding: 0pt; width: 100%;" border="0" | |
17 | cellpadding="0" cellspacing="0"> | |
18 | <tbody> | |
19 | <tr> | |
20 | <td style="background-color: rgb(238, 238, 238);" nowrap="1" | |
21 | valign="top"> | |
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> | |
28 | <ul> | |
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 | |
47 | Concept</a></li> | |
48 | <li><a href="gtl_polygon_45_set_concept.htm">Polygon 45 Set | |
49 | Concept</a></li> | |
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 | |
56 | Extraction</a></li> | |
57 | <li>Property Merge 90</li> | |
58 | <li><a href="gtl_property_merge_45.htm">Property Merge 45</a></li> | |
59 | <li><a href="gtl_property_merge.htm">Property Merge</a></li> | |
60 | <li><a href="voronoi_main.htm">Voronoi Main Page<br /> | |
61 | </a></li> | |
62 | <li><a href="voronoi_benchmark.htm">Voronoi Benchmark</a><br /> | |
63 | </li> | |
64 | <li><a href="voronoi_builder.htm">Voronoi Builder</a></li> | |
65 | <li><a href="voronoi_diagram.htm">Voronoi Diagram</a></li> | |
66 | </ul> | |
67 | <h3 class="navbar">Other Resources</h3> | |
68 | <ul> | |
69 | <li><a href="GTL_boostcon2009.pdf">GTL Boostcon 2009 Paper</a></li> | |
70 | <li><a href="GTL_boostcon_draft03.pdf">GTL Boostcon 2009 | |
71 | Presentation</a></li> | |
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 | |
77 | Tutorial</a></li> | |
78 | </ul> | |
79 | </div> | |
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> | |
85 | </td> | |
86 | <td | |
87 | style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;" | |
88 | valign="top" width="100%"> | |
89 | <!-- End Header --><br /> | |
90 | <p> | |
91 | </p> | |
92 | <h1>Property Merge 90</h1> | |
93 | <p> </p> | |
94 | <p>The following is the declaration of the property merge | |
95 | algorithm.</p> | |
96 | <p><font face="Courier New">template <typename | |
97 | coordinate_type, typename property_type><br /> | |
98 | class property_merge_90;</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_90_set_data<coordinate_type> ><br /> | |
110 | std::map<std::vector<property_type>, | |
111 | polygon_90_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%"> | |
116 | <tbody> | |
117 | <tr> | |
118 | <td width="586"><b><font face="Courier New">property_merge_90</font></b><font | |
119 | face="Courier New">()</font></td> | |
120 | <td>Default constructor. </td> | |
121 | </tr> | |
122 | <tr> | |
123 | <td width="586"><b><font face="Courier New">property_merge_90</font></b><font | |
124 | face="Courier New">(const property_merge_90& that)</font></td> | |
125 | <td>Copy construct.</td> | |
126 | </tr> | |
127 | <tr> | |
128 | <td width="586"><font face="Courier New">void <br /> | |
129 | <b>insert</b>(const | |
130 | polygon_90_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> | |
134 | </tr> | |
135 | <tr> | |
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 90 set with an associated property. Linear wrt vertices | |
142 | inserted.</td> | |
143 | </tr> | |
144 | <tr> | |
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 + | |
151 | intersections.</td> | |
152 | </tr> | |
153 | </tbody> | |
154 | </table> | |
155 | </td> | |
156 | </tr> | |
157 | <tr> | |
158 | <td style="background-color: rgb(238, 238, 238);" nowrap="1" | |
159 | valign="top"> </td> | |
160 | <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"> | |
166 | <tr> | |
167 | <th class="docinfo-name">Copyright:</th> | |
168 |