gtl_polygon_90_concept.htm 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469
  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: Polygon 90 Concept</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>Polygon 90 Concept</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><a href="gtl_property_merge_90.htm">Property Merge 90</a></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>Polygon 90 Concept</h1>
  93. <p> </p>
  94. <p>The polygon_90 concept tag is <font face="Courier New">
  95. polygon_90_concept</font></p>
  96. <p> To register a user defined type as a model of <font
  97. face="Times New Roman">polygon_90 </font>concept, specialize the
  98. geometry concept meta-function for that type.&nbsp; In the example
  99. below CPolygon90 is registered as a model of polygon_90&nbsp; concept.</p>
  100. <p> <font face="Courier New">template &lt;&gt;<br />
  101. struct geometry_concept&lt;CPolygon90&gt; { typedef polygon_90_concept
  102. type; };</font></p>
  103. <p> <font face="Times New Roman">The semantic of a polygon_90 is
  104. that it can provide iterators over the x and y coordinates that
  105. correspond to its horizontal and vertical sides, starting with an x
  106. coordinate.&nbsp; A mutable polygon_90 must also be able to set its
  107. geometry based on an interator range over such coordinates.&nbsp; Since
  108. most polygons use vertex points in internal storage iterator adaptors
  109. for converting to and from point sequences are provided in
  110. iterator_points_to_compact.hpp and iterator_compact_to_points.hpp to
  111. aid in the specialization of polygon_90_traits.&nbsp; A
  112. std::vector&lt;int&gt; or std::list&lt;int&gt; could be made models of
  113. polygon_90_concept by simply providing access to their iterators
  114. through traits.&nbsp; Library functions that create polygon objects
  115. require that those objects provide a default constructor.</font></p>
  116. <p> <font face="Times New Roman">Below is shown the default
  117. polygon traits.&nbsp; Specialization of these traits is required for
  118. types that don't conform to the default behavior.&nbsp; Note that these
  119. traits are also used by the polygon_90_with_holes concept.</font></p>
  120. <p><font face="Courier New">template &lt;typename T&gt;<br />
  121. struct polygon_90_traits {<br />
  122. &nbsp;&nbsp;&nbsp;&nbsp; typedef typename T::coordinate_type
  123. coordinate_type;<br />
  124. &nbsp;&nbsp;&nbsp;&nbsp; typedef typename T::compact_iterator_type
  125. compact_iterator_type;<br />
  126. &nbsp;&nbsp;&nbsp;&nbsp; static inline compact_iterator_type
  127. begin_compact(const T&amp; t) {<br />
  128. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
  129. t.begin_compact();<br />
  130. &nbsp;&nbsp;&nbsp;&nbsp; }<br />
  131. &nbsp;&nbsp;&nbsp;&nbsp; static inline compact_iterator_type
  132. end_compact(const T&amp; t) {<br />
  133. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
  134. t.end_compact();<br />
  135. &nbsp;&nbsp;&nbsp;&nbsp; }<br />
  136. &nbsp;&nbsp;&nbsp;&nbsp; static inline unsigned int size(const T&amp;
  137. t) {<br />
  138. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return t.size();<br />
  139. &nbsp;&nbsp;&nbsp;&nbsp; }<br />
  140. &nbsp;&nbsp;&nbsp;&nbsp; static inline winding_direction winding(const
  141. T&amp; t) {<br />
  142. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
  143. unknown_winding;<br />
  144. &nbsp;&nbsp;&nbsp;&nbsp; }<br />
  145. };</font></p>
  146. <p><font face="Courier New">template &lt;typename T&gt;<br />
  147. struct polygon_90_mutable_traits { <br />
  148. &nbsp;&nbsp;&nbsp;&nbsp; template &lt;typename iT&gt;<br />
  149. &nbsp;&nbsp;&nbsp;&nbsp; static inline T&amp; set_compact(T&amp; t, iT
  150. input_begin, iT input_end) {<br />
  151. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  152. t.set_compact(input_begin, input_end);<br />
  153. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return t;<br />
  154. &nbsp;&nbsp;&nbsp;&nbsp; }</font><br />
  155. <font face="Courier New">};</font></p>
  156. <p>An object that is a model of <font face="Courier New">
  157. polygon_90_concept</font> can be viewed as a model of any of its
  158. refinements if it is determined at runtime to conform to the
  159. restriction of those concepts.&nbsp; This concept casting is
  160. accomplished through the
  161. <font face="Courier New">view_as&lt;&gt;()</font> function.</p>
  162. <p><font face="Courier New">view_as&lt;rectangle_concept&gt;(polygon_90_object)</font></p>
  163. <p>The return value of <font face="Courier New">view_as&lt;&gt;()</font>
  164. can be passed into any interface that expects an object of the
  165. conceptual type specified in its template parameter.</p>
  166. <h2>Functions</h2>
  167. <table id="table1" border="1" width="100%">
  168. <tbody>
  169. <tr>
  170. <td width="586"><font face="Courier New">template
  171. &lt;typename T&gt;<br />
  172. compact_iterator_type <b>begin_compact</b>(const T&amp; polygon)</font></td>
  173. <td><font face="Times New Roman">Expects a model of
  174. polygon_90.&nbsp; Returns the begin iterator over the range of
  175. coordinates that correspond to horizontal and vertical edges.</font></td>
  176. </tr>
  177. <tr>
  178. <td width="586"><font face="Courier New">template
  179. &lt;typename T&gt;<br />
  180. compact_iterator_type <b>end_compact</b>(const T&amp; polygon)</font></td>
  181. <td><font face="Times New Roman">Expects a model of
  182. polygon_90.&nbsp; Returns the end iterator over the range of
  183. coordinates that correspond to horizontal and vertical edges.</font></td>
  184. </tr>
  185. <tr>
  186. <td width="586"><font face="Courier New">template
  187. &lt;typename T&gt;<br />
  188. point_iterator_type <b>begin_points</b>(const T&amp; polygon)</font></td>
  189. <td><font face="Times New Roman">Expects a model of
  190. polygon_90.&nbsp; Returns the begin iterator over the range of points
  191. that correspond to vertices of the polygon.</font></td>
  192. </tr>
  193. <tr>
  194. <td width="586"><font face="Courier New">template
  195. &lt;typename T&gt;<br />
  196. point_iterator_type <b>end_points</b>(const T&amp; polygon)</font></td>
  197. <td><font face="Times New Roman">Expects a model of
  198. polygon_90.&nbsp; Returns the end iterator over the range of points
  199. that correspond to vertices of the polygon.</font></td>
  200. </tr>
  201. <tr>
  202. <td width="586"><font face="Courier New">template
  203. &lt;typename T, typename iterator&gt;<br />
  204. void <b>set_compact</b>(T&amp; polygon, iterator b, iterator e)</font></td>
  205. <td><font face="Times New Roman">Expects a model of
  206. polygon_90.&nbsp;&nbsp; Sets the polygon to the coordinate data range
  207. [b,e) that corresponds to .horizontal and vertical edges.</font></td>
  208. </tr>
  209. <tr>
  210. <td width="586"><font face="Courier New">template
  211. &lt;typename T, typename iterator&gt;<br />
  212. void <b>set_points</b>(T&amp; polygon, iterator b, iterator e)</font></td>
  213. <td><font face="Times New Roman">Expects a model of
  214. polygon_90.&nbsp;&nbsp; Sets the polygon to the point data range [b,e)
  215. that corresponds to vertices of a manhattan polygon.&nbsp;
  216. Non-manhattan edges between successive input points results in
  217. undefined behavior.</font></td>
  218. </tr>
  219. <tr>
  220. <td width="586"><font face="Courier New">template
  221. &lt;typename T&gt;<br />
  222. unsigned int <b>size</b>(const T&amp; polygon)</font></td>
  223. <td><font face="Times New Roman">Returns the number of
  224. edges in the polygon.</font></td>
  225. </tr>
  226. <tr>
  227. <td width="586"><font face="Courier New">template
  228. &lt;typename T1, typename T2&gt;<br />
  229. T1&amp; <b>assign</b>(T1&amp; left, const T2&amp; right)</font></td>
  230. <td>Copies data from right object that models polygon_90
  231. into left object that models polygon_90.</td>
  232. </tr>
  233. <tr>
  234. <td width="586"><font face="Courier New">template
  235. &lt;typename T, typename point_type&gt;<br />
  236. bool <b>contains</b>(const T&amp;, const point_type&amp; point, <br />
  237. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  238. bool consider_touch=true)</font></td>
  239. <td>Given an object that models polygon_90 and an object
  240. that models point, returns true if the polygon contains the
  241. point.&nbsp; If the consider_touch flag is true will return true if the
  242. point lies along the boundary of the polygon.&nbsp; Linear wrt.
  243. vertices.</td>
  244. </tr>
  245. <tr>
  246. <td width="586"><font face="Courier New">// get the center
  247. coordinate<br />
  248. template &lt;typename T, typename point_type&gt;<br />
  249. void <b>center</b>(point_type&amp; p, const T&amp; polygon)</font></td>
  250. <td>Sets object that models point to the center point of
  251. the bounding box of an object that models polygon_90.&nbsp; Linear wrt.
  252. vertices.</td>
  253. </tr>
  254. <tr>
  255. <td width="586"><font face="Courier New">template
  256. &lt;typename T, typename rectangle_type&gt;<br />
  257. bool <b>extents</b>(rectangle_type&amp; bbox, const T&amp; polygon)</font></td>
  258. <td>Sets object that models rectangle to the bounding box
  259. of an object that models polygon_90 and returns true.&nbsp; Returns
  260. false and leaves bbox unchanged if polygon is empty.&nbsp; Linear wrt.
  261. vertices.</td>
  262. </tr>
  263. <tr>
  264. <td width="586"><font face="Courier New">template
  265. &lt;typename T&gt;<br />
  266. manhattan_area_type <b>area</b>(const T&amp; polygon)</font></td>
  267. <td>Returns the area of an object that models
  268. polygon_90.&nbsp; Linear wrt. vertices.</td>
  269. </tr>
  270. <tr>
  271. <td width="586"><font face="Courier New">template
  272. &lt;typename T&gt;<br />
  273. direction_1d <b>winding</b>(const T&amp; polygon)</font></td>
  274. <td>Returns the winding direction of an object that models
  275. polygon_90, LOW == CLOCKWISE, HIGH = COUNTERCLOCKWISE.&nbsp; Complexity
  276. depends upon winding trait.</td>
  277. </tr>
  278. <tr>
  279. <td width="586"><font face="Courier New">template
  280. &lt;typename T&gt;<br />
  281. coordinate_difference <b>perimeter</b>(const T&amp; polygon)</font></td>
  282. <td>Returns the perimeter length of an object that models
  283. polygon_90.&nbsp; Linear wrt. vertices.</td>
  284. </tr>
  285. <tr>
  286. <td width="586"><font face="Courier New">template
  287. &lt;typename T, typename transform_type&gt;<br />
  288. T&amp; <b>transform</b>(T&amp; polygon, const transform_type&amp;)</font></td>
  289. <td>Applies transform() on the vertices of polygon and sets
  290. the polygon to that described by the result of transforming its
  291. vertices.&nbsp; Linear wrt. vertices.</td>
  292. </tr>
  293. <tr>
  294. <td width="586"><font face="Courier New">template
  295. &lt;typename T&gt;<br />
  296. T&amp; <b>scale_up</b>(T&amp; polygon, unsigned_area_type factor)</font></td>
  297. <td>Scales up coordinate of an object that models
  298. polygon_90 by unsigned factor.&nbsp; Linear wrt. vertices.</td>
  299. </tr>
  300. <tr>
  301. <td width="586"><font face="Courier New">template
  302. &lt;typename T&gt;<br />
  303. T&amp; <b>scale_down</b>(T&amp; polygon, unsigned_area_type factor)</font></td>
  304. <td>Scales down coordinates of an object that models
  305. polygon_90 by unsigned factor.&nbsp; Linear wrt. vertices.</td>
  306. </tr>
  307. <tr>
  308. <td width="586"><font face="Courier New">template
  309. &lt;typename T, scaling_type&gt;<br />
  310. T&amp; <b>scale</b>(T&amp; rectangle, double scaling) </font></td>
  311. <td>Scales coordinates of an object that models polygon_90
  312. by floating point factor.&nbsp; Linear wrt. vertices.</td>
  313. </tr>
  314. <tr>
  315. <td width="586"><font face="Courier New">template
  316. &lt;typename T&gt;<br />
  317. T&amp; <b>move</b>(T&amp; polygon, orientation_2d,<br />
  318. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; coordinate_difference
  319. displacement)</font></td>
  320. <td>Adds displacement value to coordinate indicated by
  321. orientation_2d of vertices of an object that models polygon_90 .&nbsp;
  322. Linear wrt. vertices.</td>
  323. </tr>
  324. <tr>
  325. <td width="586"><font face="Courier New">template
  326. &lt;typename polygon_type, typename point_type&gt;<br />
  327. polygon_type&amp; <b>convolve</b>(polygon_type&amp; polygon,<br />
  328. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  329. const point_type&amp; point)</font></td>
  330. <td>Convolves coordinate values of point with vertices of
  331. an object that models polygon_90.&nbsp; Linear wrt. vertices.</td>
  332. </tr>
  333. </tbody>
  334. </table>
  335. <h1>Polygon 90 Data</h1>
  336. <p> </p>
  337. <p>The library provides a model of polygon 90 concept declared
  338. <font face="Courier New">template&lt;typename T&gt;
  339. polygon_90_data </font>where T is the coordinate type.</p>
  340. <p>This data type is used internally when a Manhattan polygon is
  341. needed and is available to the library user who finds it convenient to
  342. use a library polygon data type instead of providing their own.&nbsp;
  343. The data type is implemented to be convenient to use with the library
  344. traits.</p>
  345. <h2>Members</h2>
  346. <table id="table2" border="1" width="100%">
  347. <tbody>
  348. <tr>
  349. <td width="586"><b><font face="Courier New">geometry_type</font></b></td>
  350. <td><font face="Times New Roman">polygon_90_concept</font></td>
  351. </tr>
  352. <tr>
  353. <td width="586"><b><font face="Courier New">coordinate_type</font></b></td>
  354. <td><font face="Times New Roman">T</font></td>
  355. </tr>
  356. <tr>
  357. <td width="586"><b><font face="Courier New">iterator_type</font></b></td>
  358. <td>Iterator over vertices point_data&lt;T&gt; vertices of
  359. polygon</td>
  360. </tr>
  361. <tr>
  362. <td width="586"><b><font face="Courier New">compact_iterator_type</font></b></td>
  363. <td><font face="Times New Roman">Iterator over
  364. non-redundant coordinates of the polygon, alternating x, y, x, y
  365. starting with an x, where each x corresponds to a vertical edge and
  366. each y corresponds to a horizontal edge.</font></td>
  367. </tr>
  368. <tr>
  369. <td width="586"><font face="Courier New"><b>polygon_90_data</b>()</font></td>
  370. <td><font face="Times New Roman">Default constructs the </font>polygon.</td>
  371. </tr>
  372. <tr>
  373. <td width="586"><font face="Courier New"><b>polygon_90_data</b>(const
  374. polygon_90_data&amp; that)</font></td>
  375. <td><font face="Times New Roman">Copy construct</font></td>
  376. </tr>
  377. <tr>
  378. <td width="586"><font face="Courier New">polygon_90_data&amp;
  379. <b>operator=</b>(const polygon_90_data&amp; that)</font></td>
  380. <td>Assignment operator.</td>
  381. </tr>
  382. <tr>
  383. <td width="586"><font face="Courier New">template
  384. &lt;typename T2&gt;<b>&nbsp; <br />
  385. </b>polygon_90_data&amp; <b>operator=</b>(const T2&amp;
  386. that) const</font></td>
  387. <td>Assign from an object that is a model of polygon 90.</td>
  388. </tr>
  389. <tr>
  390. <td width="586"><font face="Courier New">iterator_type <b>begin</b>()
  391. const</font></td>
  392. <td>Get the begin iterator over vertices of the polygon.</td>
  393. </tr>
  394. <tr>
  395. <td width="586"><font face="Courier New">iterator_type <b>end</b>()
  396. const</font></td>
  397. <td>Get the end iterator over vertices of the polygon.</td>
  398. </tr>
  399. <tr>
  400. <td width="586"><font face="Courier New">compact_iterator_type
  401. <b> begin_compact</b>() const</font></td>
  402. <td>Get the begin compact iterator over non-redundant
  403. coordinates of the polygon.</td>
  404. </tr>
  405. <tr>
  406. <td width="586"><font face="Courier New">compact_iterator_type
  407. <b> end_compact</b>() const</font></td>
  408. <td>Get the end compact iterator over non-redundant
  409. coordinates of the polygon.</td>
  410. </tr>
  411. <tr>
  412. <td width="586"><font face="Courier New">std::size_t <b>size</b>()
  413. const</font></td>
  414. <td>Get the number of elements in the sequence stored to
  415. the polygon, usually equal to the number of edges of the polygon.</td>
  416. </tr>
  417. <tr>
  418. <td width="586"><font face="Courier New">template
  419. &lt;typename iT&gt;<b>&nbsp; <br />
  420. </b>void <b>set</b>(iT begin_points, iT end_points)</font></td>
  421. <td>Sets the polygon to the iterator range of points.&nbsp;
  422. No check is performed to ensure the points describe a Manhattan figure,
  423. every other x and y value of the points is used to initialize the
  424. polygon.</td>
  425. </tr>
  426. <tr>
  427. <td width="586"><font face="Courier New">template
  428. &lt;typename iT&gt;<b>&nbsp; <br />
  429. </b>void <b>set_compact</b>(iT begin_coords, iT end_coords)</font></td>
  430. <td>Sets the polygon to the iterator range of
  431. coordinates.&nbsp; These coordinates correspond to the x values of
  432. vertical edges and y values of horizontal edges.&nbsp; It is expected
  433. that the sequence start with an x value and proceed x then y then x
  434. then y.</td>
  435. </tr>
  436. </tbody>
  437. </table>
  438. </td>
  439. </tr>
  440. <tr>
  441. <td style="background-color: rgb(238, 238, 238);" nowrap="1"
  442. valign="top"> &nbsp;</td>
  443. <td
  444. style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
  445. valign="top" width="100%">
  446. <table class="docinfo" id="table3" frame="void" rules="none">
  447. <colgroup> <col class="docinfo-name" /><col
  448. class="docinfo-content" /> </colgroup> <tbody valign="top">
  449. <tr>
  450. <th class="docinfo-name">Copyright:</th>
  451. <td>Copyright © Intel Corporation 2008-2010.</td>
  452. </tr>
  453. <tr class="field">
  454. <th class="docinfo-name">License:</th>
  455. <td class="field-body">Distributed under the Boost Software
  456. License, Version 1.0. (See accompanying file <tt class="literal"> <span
  457. class="pre">LICENSE_1_0.txt</span></tt> or copy at <a
  458. class="reference" target="_top"
  459. href="http://www.boost.org/LICENSE_1_0.txt">
  460. http://www.boost.org/LICENSE_1_0.txt</a>)</td>
  461. </tr>
  462. </tbody>
  463. </table>
  464. </td>
  465. </tr>
  466. </tbody>
  467. </table>
  468. </body>
  469. </html>