123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
- xmlns:v="urn:schemas-microsoft-com:vml"
- xmlns:o="urn:schemas-microsoft-com:office:office"
- xmlns:(null)1="http://www.w3.org/TR/REC-html40" lang="en">
- <head>
- <!--
- Copyright 2009-2010 Intel Corporation
- license banner
- -->
- <title>Boost Polygon Library: Isotropy</title>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
- <!-- <link type="text/css" rel="stylesheet" href="adobe_source.css"> -->
- </head>
- <body>
- <table style="margin: 0pt; padding: 0pt; width: 100%;" border="0"
- cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td style="background-color: rgb(238, 238, 238);" nowrap="1"
- valign="top">
- <div style="padding: 5px;" align="center"> <img
- src="images/boost.png" border="0" height="86" width="277" /><a
- title="www.boost.org home page" href="http://www.boost.org/"
- tabindex="2" style="border: medium none ;"> </a> </div>
- <div style="margin: 5px;">
- <h3 class="navbar">Contents</h3>
- <ul>
- <li><a href="index.htm">Boost.Polygon Main Page</a></li>
- <li><a href="gtl_design_overview.htm">Design Overview</a></li>
- <li>Isotropy</li>
- <li><a href="gtl_coordinate_concept.htm">Coordinate Concept</a></li>
- <li><a href="gtl_interval_concept.htm">Interval Concept</a></li>
- <li><a href="gtl_point_concept.htm">Point Concept</a></li>
- <li><a href="gtl_segment_concept.htm">Segment Concept</a></li>
- <li><a href="gtl_rectangle_concept.htm">Rectangle Concept</a></li>
- <li><a href="gtl_polygon_90_concept.htm">Polygon 90 Concept</a></li>
- <li><a href="gtl_polygon_90_with_holes_concept.htm">Polygon 90
- With Holes Concept</a></li>
- <li><a href="gtl_polygon_45_concept.htm">Polygon 45 Concept</a></li>
- <li><a href="gtl_polygon_45_with_holes_concept.htm">Polygon 45
- With Holes Concept</a></li>
- <li><a href="gtl_polygon_concept.htm">Polygon Concept</a></li>
- <li><a href="gtl_polygon_with_holes_concept.htm">Polygon With
- Holes Concept</a></li>
- <li><a href="gtl_polygon_90_set_concept.htm">Polygon 90 Set
- Concept</a></li>
- <li><a href="gtl_polygon_45_set_concept.htm">Polygon 45 Set
- Concept</a></li>
- <li><a href="gtl_polygon_set_concept.htm">Polygon Set Concept</a></li>
- <li><a href="gtl_connectivity_extraction_90.htm">Connectivity
- Extraction 90</a></li>
- <li><a href="gtl_connectivity_extraction_45.htm">Connectivity
- Extraction 45</a></li>
- <li><a href="gtl_connectivity_extraction.htm">Connectivity
- Extraction</a></li>
- <li><a href="gtl_property_merge_90.htm">Property Merge 90</a></li>
- <li><a href="gtl_property_merge_45.htm">Property Merge 45</a></li>
- <li><a href="gtl_property_merge.htm">Property Merge</a></li>
- <li><a href="voronoi_main.htm">Voronoi Main Page<br />
- </a></li>
- <li><a href="voronoi_benchmark.htm">Voronoi Benchmark</a><br />
- </li>
- <li><a href="voronoi_builder.htm">Voronoi Builder</a></li>
- <li><a href="voronoi_diagram.htm">Voronoi Diagram</a></li>
- </ul>
- <h3 class="navbar">Other Resources</h3>
- <ul>
- <li><a href="GTL_boostcon2009.pdf">GTL Boostcon 2009 Paper</a></li>
- <li><a href="GTL_boostcon_draft03.pdf">GTL Boostcon 2009
- Presentation</a></li>
- <li><a href="analysis.htm">Performance Analysis</a></li>
- <li><a href="gtl_tutorial.htm">Layout Versus Schematic Tutorial</a></li>
- <li><a href="gtl_minkowski_tutorial.htm">Minkowski Sum Tutorial</a></li>
- <li><a href="voronoi_basic_tutorial.htm">Voronoi Basic Tutorial</a></li>
- <li><a href="voronoi_advanced_tutorial.htm">Voronoi Advanced
- Tutorial</a></li>
- </ul>
- </div>
- <h3 class="navbar">Polygon Sponsor</h3>
- <div style="padding: 5px;" align="center"> <img
- src="images/intlogo.gif" border="0" height="51" width="127" /><a
- title="www.adobe.com home page" href="http://www.adobe.com/"
- tabindex="2" style="border: medium none ;"> </a> </div>
- </td>
- <td
- style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
- valign="top" width="100%">
- <!-- End Header --><br />
- <p>
- </p>
- <h1>Isotropy</h1>
- <p> </p>
- <p align="left">What is isotropy?</p>
- <p:colorscheme
- colors="#ffffff,#000000,#808080,#000000,#bbe0e3,#333399,#009999,#99cc00">
- </p:colorscheme>
- <div class="O" style="text-align: center;" v:shape="_x0000_s1026">
- <p style="text-align: left;"> <span style="">Isotropy -
- Function: <i>adjective</i> Etymology: International Scientific
- Vocabulary<br />
- <b>:</b> exhibiting properties (as velocity of light
- transmission) with the same values when measured along axes in all
- directions <an <i>isotropic</i> crystal></span></p>
- </div>
- <p align="left">In computational geometry things are often
- symmetric and invariant to direction and orientation. This
- invariance to direction is called isotropy. In such situations it
- is convenient to parameterize direction or orientation and write code
- that is invariant to the direction or orientation in which it is
- applied. To do this effectively we provide an internally
- consistent set of isotropic data types to represent program data that
- describes orientations and directions. These data types are:</p>
- <ul>
- <li>direction_1d - has one of the following 2 states: LOW, HIGH
- </li>
- <li>orientation_2d - has one of the following 2 states:
- HORIZONTAL, VERTICAL</li>
- <li>direction_2d - has one of the following 4 states: WEST,
- EAST, SOUTH, NORTH</li>
- <li>orientation_3d - has one of the following 3 states:
- HORIZONTAL, VERTICAL, PROXIMAL</li>
- <li>direction_3d - has one of the following 6 states: WEST,
- EAST, SOUTH, NORTH, DOWN, UP</li>
- </ul>
- <p align="left">The isotropic types create a system and interact
- with each other in various ways, such as casting. Together they
- create a language for describing isotropic situations
- programmatically. For instance, to get the positive direction_2d
- from an orientation_2d you would call a member function of
- orientation_2d and pass a direction_1d:</p>
- <p align="left"><font face="Courier New">orientation_2d orient =
- HORIZONTAL;<br />
- direction_2d dir = orient.get_direction(direction_1d(HIGH));<br />
- assert(dir == EAST);</font></p>
- <p align="left">The motivation for providing isotropic data types
- is to encourage programming at a higher level of abstraction where
- program behavior is controlled by program data passed into function
- calls rather than flow control syntax. Isotropic programming
- style is particularly applicable to working with points, intervals and
- rectangles. Often times the implementation of such logic is
- identical when implemented for the x or y coordinates, except that the
- names of functions and data members are changed in a mechanical way
- leading to code duplication and bloat that results in copy-paste
- programming errors and maintenance problems where changes made to a
- given code block relating to x coordiantes are not duplicated to the
- code block that refers to y. Isotropy therefore represents an
- opportunity to refactor and improve the quality of low level geometry
- code especially in regard to inter-relating coordinates, points,
- intervals and rectangles.</p>
- <h2>direction_1d</h2>
- <p> </p>
- <p align="left">The direction_1d data type has two possible
- states. These are the positive and negative directions on a
- continuum such as the number line. These states can be
- described by one of several direction_1d_enum values: We make
- clockwise and counterclockwise winding orientation of polygons a
- direction 1d value instead of providing a separate winding_orientation
- data type. This is because winding orientation can be thought of
- as positive and negative directions in a 1d (although cyclic)
- space. We assign counterclockwise to be the positive direction of
- travel in the 1d cyclic space to conform with the mathematical
- convention frequently described as the "right hand rule" which assigns
- positive normal value to counterclockwise and negative normal value to
- clockwise as well as the common convention that counterclockwise
- polygon winding corresponds to positive polygonal regions where as
- clockwise polygon winding corresponds to hole (negative) polygonal
- regions.</p>
- <p align="left"><font face="Courier New">enum direction_1d_enum
- {LOW = 0, HIGH = 1,<br />
-
- LEFT = 0, RIGHT = 1,<br />
-
- CLOCKWISE = 0, COUNTERCLOCKWISE = 1,<br />
-
- REVERSE = 0, FORWARD = 1,<br />
-
- NEGATIVE = 0, POSITIVE = 1 };</font></p>
- <h2>Member Functions</h2>
- <table id="table1" border="1" width="100%">
- <tbody>
- <tr>
- <td width="586"><font face="Courier New"><b>direction_1d</b>(direction_1d_enum
- val = LOW)</font></td>
- <td>Constructor defaults to LOW. </td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">direction_1d</font></b><font
- face="Courier New">(const direction_1d& that)</font></td>
- <td>Copy construct.</td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">direction_1d</font></b><font
- face="Courier New">(const direction_2d& that)</font></td>
- <td>Down cast direction_2d, extracting out whether positive
- or negative</td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">direction_1d</font></b><font
- face="Courier New">(const direction_3d& that)</font></td>
- <td>Down cast direction_3d, extracting out whether positive
- or negative</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_1d& <b>operator=</b>(const
- direction_1d dir)</font></td>
- <td>Assignment</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_1d& <b>operator==</b>(const
- direction_1d dir) const</font></td>
- <td>Equivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_1d& <b>operator!=</b>(const
- direction_1d dir) const</font></td>
- <td>Inequivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">unsigned int <b>to_int</b>()
- const</font></td>
- <td>Convert to the integer enum value of current state to
- use as index. Auto-cast to int is disallowed for type safety
- reasons.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_1d& <b>backward</b>()</font></td>
- <td>Inverts direction.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>get_sign</b>()
- const</font></td>
- <td>Returns positive 1 if positive direction and negative
- one if negative direction.</td>
- </tr>
- </tbody>
- </table>
- <h2>orientation_2d</h2>
- <p> </p>
- <p align="left">The orientation_2d data type has two possible
- states. These are the horizontal and vertical axis of a 2d
- Cartesian coordinate system. These states can be described
- by one of the two orientation_2d_enum values:</p>
- <p align="left"><font face="Courier New">enum orientation_2d_enum
- { HORIZONTAL = 0, VERTICAL = 1 };</font></p>
- <h2>Member Functions</h2>
- <table id="table2" border="1" width="100%">
- <tbody>
- <tr>
- <td width="586"><b><font face="Courier New">orientation_2</font></b><font
- face="Courier New"><b>d</b>(orientation_2d_enum val = HORIZONTAL)</font></td>
- <td>Constructor defaults to HORIZONTAL. </td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">orientation_2</font></b><font
- face="Courier New"><b>d</b>(const orientation_2d& that)</font></td>
- <td>Copy construct.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">explicit </font><b>
- <font face="Courier New">orientation_2</font></b><font
- face="Courier New"><b>d</b>(const direction_2d& that)</font></td>
- <td>Down cast direction_2d, extracting out whether
- horizontal or vertical direction type</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">orientation_2d&
- <b>operator=</b>(const orientation_2d o)</font></td>
- <td>Assignment</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">orientation_2d&
- <b>operator==</b>(const orientation_2d o) const</font></td>
- <td>Equivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">orientation_2d&
- <b>operator!=</b>(const orientation_2d o) const</font></td>
- <td>Inequivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">unsigned int <b>to_int</b>()
- const</font></td>
- <td>Convert to the integer enum value of current state to
- use as index. Auto-cast to int is disallowed for type safety
- reasons</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">orientation_2d&
- <b>turn_90</b>()</font></td>
- <td>Change to orthogonal orientation</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>get_perpendicular</b>()
- const</font></td>
- <td>Returns orthogonal orientation</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>get_direction</b>(direction_1d
- dir) const</font></td>
- <td>Returns the positive or negative direction_2d depending
- on the value of dir</td>
- </tr>
- </tbody>
- </table>
- <h2>direction_2d</h2>
- <p> </p>
- <p align="left">The direction_2d data type has four possible
- states. These are the cardinal directions of the 2D Cartesian
- coordinate system. These states can be described by one of
- several direction_2d_enum values:</p>
- <p align="left"><font face="Courier New">enum direction_2d_enum {
- WEST = 0, EAST = 1, SOUTH = 2, NORTH = 3 };</font></p>
- <h2>Member Functions</h2>
- <table id="table3" border="1" width="100%">
- <tbody>
- <tr>
- <td width="586"><font face="Courier New"><b>direction_2d</b>(direction_2d_enum
- val = WEST)</font></td>
- <td>Constructor defaults to WEST. </td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">direction_2d</font></b><font
- face="Courier New">(const direction_2d& that)</font></td>
- <td>Copy construct.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_1d& <b>operator=</b>(const
- direction_2d dir)</font></td>
- <td>Assignment</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_1d& <b>operator==</b>(const
- direction_2d dir) const</font></td>
- <td>Equivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_1d& <b>operator!=</b>(const
- direction_2d dir) const</font></td>
- <td>Inequivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">unsigned int <b>to_int</b>()
- const</font></td>
- <td>Convert to the integer enum value of current state to
- use as index. Auto-cast to int is disallowed for type safety
- reasons.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_2d& <b>backward</b>()</font></td>
- <td>Inverts direction.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_2d& <b>turn</b>(direction_1d
- dir)</font></td>
- <td>Changes to direction_2d to the left if dir is LOW, to
- the right if dir is HIGH</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_2d& <b>left</b>()</font></td>
- <td>Changes to the direction_2d to the left</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_2d& <b>right</b>()</font></td>
- <td>Changes to the direction_2d to the right</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>is_positive</b>()
- const</font></td>
- <td>Returns true if EAST or NORTH</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>is_negative</b>()
- const</font></td>
- <td>Returns true if WEST or SOUTH</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>get_sign</b>()
- const</font></td>
- <td>Returns positive 1 if positive direction and negative
- one if negative direction.</td>
- </tr>
- </tbody>
- </table>
- <h2>orientation_3d</h2>
- <p> </p>
- <p align="left">The orientation_3d data type has three possible
- states. These are the horizontal, vertical and proximal (x, y, z)
- axis of a 3d Cartesian coordinate system. These states can
- be described by one of the orientation_2d_enum values or by the
- orientation_3d_enum value:</p>
- <p align="left"><font face="Courier New">enum orientation_3d_enum
- { PROXIMAL = 2 };</font></p>
- <h2>Member Functions</h2>
- <table id="table6" border="1" width="100%">
- <tbody>
- <tr>
- <td width="586"><b><font face="Courier New">orientation_3</font></b><font
- face="Courier New"><b>d</b>(orientation_2d_enum val = HORIZONTAL)</font></td>
- <td>Constructor defaults to HORIZONTAL. </td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">orientation_3</font></b><font
- face="Courier New"><b>d</b>(const orientation_3d& that)</font></td>
- <td>Copy construct.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">explicit </font><b>
- <font face="Courier New">orientation_3</font></b><font
- face="Courier New"><b>d</b>(const direction_2d& that)</font></td>
- <td>Extract out the orientation of the direction</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">explicit </font><b>
- <font face="Courier New">orientation_3</font></b><font
- face="Courier New"><b>d</b>(const direction_3d& that)</font></td>
- <td>Extract out the orientation of the direction</td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">orientation_3</font></b><font
- face="Courier New"><b>d</b>(const orientation_2d& that)</font></td>
- <td>Up cast orientation_2d to orientation_3d.</td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">orientation_3</font></b><font
- face="Courier New"><b>d</b>(const orientation_3d_enum& that)</font></td>
- <td>Construct from constant value</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">orientation_3d&
- <b>operator=</b>(const orientation_3d o)</font></td>
- <td>Assignment</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">orientation_3d&
- <b>operator==</b>(const orientation_3d o) const</font></td>
- <td>Equivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">orientation_3d&
- <b>operator!=</b>(const orientation_3d o) const</font></td>
- <td>Inequivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">unsigned int <b>to_int</b>()
- const</font></td>
- <td>Convert to the integer enum value of current state to
- use as index. Auto-cast to int is disallowed for type safety
- reasons</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>get_direction</b>(direction_1d
- dir) const</font></td>
- <td>Returns the positive or negative direction_2d depending
- on the value of dir</td>
- </tr>
- </tbody>
- </table>
- <h2>direction_3d</h2>
- <p> </p>
- <p align="left">The direction_3d data type has six possible
- states. These are the cardinal directions of the 3D Cartesian
- coordinate system. These states can be described by one of
- the direction_2d_enum values or the direction_3d_enum values:</p>
- <p align="left"><font face="Courier New">enum direction_3d_enum {
- DOWN = 4, UP = 5 };</font></p>
- <h2>Member Functions</h2>
- <table id="table5" border="1" width="100%">
- <tbody>
- <tr>
- <td width="586"><font face="Courier New"><b>direction_3d</b>(direction_2d_enum
- val = WEST)</font></td>
- <td>Constructor defaults to LOW. </td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">direction_3d</font></b><font
- face="Courier New">(direction_3d_enum that)</font></td>
- <td>Construct from constant value</td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">direction_3d</font></b><font
- face="Courier New">(const direction_3d& that)</font></td>
- <td>Copy construct</td>
- </tr>
- <tr>
- <td width="586"><b><font face="Courier New">direction_3d</font></b><font
- face="Courier New">(direction_2d that)</font></td>
- <td>Up cast direction_2d to direction_3d</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_3d& <b>operator=</b>(const
- direction_3d dir)</font></td>
- <td>Assignment</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_3d& <b>operator==</b>(const
- direction_3d dir) const</font></td>
- <td>Equivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_2d& <b>operator!=</b>(const
- direction_3d dir) const</font></td>
- <td>Inequivalence</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">unsigned int <b>to_int</b>()
- const</font></td>
- <td>Convert to the integer enum value of current state to
- use as index. Auto-cast to int is disallowed for type safety
- reasons.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">direction_1d& <b>backward</b>()</font></td>
- <td>Inverts direction.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>is_positive</b>()
- const</font></td>
- <td>Returns true if direction is EAST, NORTH or UP.</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>is_negative</b>()
- const</font></td>
- <td>Returns true if direction is WEST, SOUTH or DOWN</td>
- </tr>
- <tr>
- <td width="586"><font face="Courier New">int <b>get_sign</b>()
- const</font></td>
- <td>Returns positive 1 if positive direction and negative
- one if negative direction.</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- <tr>
- <td style="background-color: rgb(238, 238, 238);" nowrap="1"
- valign="top"> </td>
- <td
- style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
- valign="top" width="100%">
- <table class="docinfo" id="table7" frame="void" rules="none">
- <colgroup> <col class="docinfo-name" /><col
- class="docinfo-content" /> </colgroup> <tbody valign="top">
- <tr>
- <th class="docinfo-name">Copyright:</th>
- <td>Copyright © Intel Corporation 2008-2010.</td>
- </tr>
- <tr class="field">
- <th class="docinfo-name">License:</th>
- <td class="field-body">Distributed under the Boost Software
- License, Version 1.0. (See accompanying file <tt class="literal"> <span
- class="pre">LICENSE_1_0.txt</span></tt> or copy at <a
- class="reference" target="_top"
- href="http://www.boost.org/LICENSE_1_0.txt">
- http://www.boost.org/LICENSE_1_0.txt</a>)</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- </body>
- </html>
|