And running the program in a third computer, I get a different exception:<br><br>Program received signal SIGSEGV, Segmentation fault.<br>[Switching to Thread 0xb7350a70 (LWP 1795)]<br>0xb758617b in geos::io::WKBWriter::write (this=0xbfc8605c, g=@0x805b4b8,<br>
    os=@0xbfc85f90) at WKBWriter.cpp:77<br>77      WKBWriter.cpp: No such file or directory.<br>        in WKBWriter.cpp<br>(gdb) backtrace<br>#0  0xb758617b in geos::io::WKBWriter::write (this=0xbfc8605c, g=@0x805b4b8,<br>
    os=@0xbfc85f90) at WKBWriter.cpp:77<br>#1  0xb74a456b in GEOSGeomToWKB_buf (g=0x805b4b8, size=0xbfc860ac)<br>    at geos_c.cpp:563<br>#2  0xb7aa63c7 in OGRGeometryFactory::createFromGEOS (geosGeom=0x805b4b8)<br>    at ogrgeometryfactory.cpp:1296<br>
#3  0xb7aac824 in OGRPolygon::Centroid (this=0x8050b30, poPoint=0xbfc861c0)<br>    at ogrpolygon.cpp:740<br>#4  0xb7fa2d14 in CreateFeature (poPolygon=0x8050780, newPoLayer=0x8050570,<br>    poFeature=0x80509a0) at testIndexes.cpp:57<br>
#5  0xb7fa3eae in CalculateShapeIndexes (baseName=0xbfc864e6 &quot;abc&quot;,<br>    outFile=0xbfc864b4 &quot;out&quot;) at testIndexes.cpp:221<br><br>I start to wonder if my <a href="http://configure.in">configure.in</a> is picking up the correct location for geos includes... I am gonna research a bit more about this and post results!<br>
Anyway, it would be great if anybody had some ideas why the program is crashing with different errors in each pc... this is confusing me a bit!<br>Could it be because the geos version installed is different from the geos version that was used when compiling gdal?<br>
(In ubuntu I have some gdal binaries I have no idea-where-they-came-from and a svn version of geos...)<br>                                                       cheers,<br>                                                                 Jo<br>
<br><div class="gmail_quote">2009/7/20  <span dir="ltr">&lt;<a href="mailto:geos-devel-request@lists.osgeo.org">geos-devel-request@lists.osgeo.org</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Send geos-devel mailing list submissions to<br>
        <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="http://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geos-devel</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
        <a href="mailto:geos-devel-request@lists.osgeo.org">geos-devel-request@lists.osgeo.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:geos-devel-owner@lists.osgeo.org">geos-devel-owner@lists.osgeo.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of geos-devel digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
   1. Computational Geometry Problem + Exception (Jo)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Mon, 20 Jul 2009 23:16:26 +0100<br>
From: Jo &lt;<a href="mailto:doublebyte@gmail.com">doublebyte@gmail.com</a>&gt;<br>
Subject: [geos-devel] Computational Geometry Problem + Exception<br>
To: <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
Message-ID:<br>
        &lt;<a href="mailto:23ab5f0a0907201516g4af4646bm272acfeecc8a1fcb@mail.gmail.com">23ab5f0a0907201516g4af4646bm272acfeecc8a1fcb@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br>
<br>
Hi,<br>
Sorry to bother you again, but I am getting sometimes this exception from<br>
GEOS and I don&#39;t have a clue what it is:<br>
<br>
test: CoordinateArraySequence.cpp:105: virtual const geos::geom::Coordinate&amp;<br>
geos::geom::CoordinateArraySequence::getAt(size_t) const: Assertion<br>
`pos&lt;vect-&gt;size()&#39; failed.<br>
<br>
Backtracing it, I discovered that it comes from the ISCCW algorithm:<br>
<br>
#0  0xb7119c66 in raise () from /lib/libc.so.6<br>
#1  0xb711b571 in abort () from /lib/libc.so.6<br>
#2  0xb7112e60 in __assert_fail () from /lib/libc.so.6<br>
#3  0xb7884ee6 in geos::geom::CoordinateArraySequence::getAt (this=0x0,<br>
pos=7117)<br>
    at<br>
/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../include/c++/3.4.6/bits/stl_vector.h:375<br>
#4  0xb7876b79 in geos::algorithm::CGAlgorithms::isCCW (ring=0x804f2b8) at<br>
CGAlgorithms.cpp:175<br>
<br>
Does anybody has any ideas in what can be causing this?<br>
Strangely it breaks in different files in my two computers: both using GEOS,<br>
vs 3.2.0 from svn.<br>
Any help on this would be much appreciated!<br>
<br>
cheers,<br>
<br>
Jo<br>
<br>
2009/7/19 &lt;<a href="mailto:geos-devel-request@lists.osgeo.org">geos-devel-request@lists.osgeo.org</a>&gt;<br>
<br>
&gt; Send geos-devel mailing list submissions to<br>
&gt;        <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
&gt;<br>
&gt; To subscribe or unsubscribe via the World Wide Web, visit<br>
&gt;        <a href="http://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geos-devel</a><br>
&gt; or, via email, send a message with subject or body &#39;help&#39; to<br>
&gt;        <a href="mailto:geos-devel-request@lists.osgeo.org">geos-devel-request@lists.osgeo.org</a><br>
&gt;<br>
&gt; You can reach the person managing the list at<br>
&gt;        <a href="mailto:geos-devel-owner@lists.osgeo.org">geos-devel-owner@lists.osgeo.org</a><br>
&gt;<br>
&gt; When replying, please edit your Subject line so it is more specific<br>
&gt; than &quot;Re: Contents of geos-devel digest...&quot;<br>
&gt;<br>
&gt;<br>
&gt; Today&#39;s Topics:<br>
&gt;<br>
&gt;   1. geos svn (Jo)<br>
&gt;<br>
&gt;<br>
&gt; ----------------------------------------------------------------------<br>
&gt;<br>
&gt; Message: 1<br>
&gt; Date: Sun, 19 Jul 2009 23:10:01 +0100<br>
&gt; From: Jo &lt;<a href="mailto:doublebyte@gmail.com">doublebyte@gmail.com</a>&gt;<br>
&gt; Subject: [geos-devel] geos svn<br>
&gt; To: <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
&gt; Message-ID:<br>
&gt;        &lt;<a href="mailto:23ab5f0a0907191510s1d567375qdf13e491e1e06933@mail.gmail.com">23ab5f0a0907191510s1d567375qdf13e491e1e06933@mail.gmail.com</a>&gt;<br>
&gt; Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br>
&gt;<br>
&gt; Latest SVN version of geos seems to be incomplete: no libtool and<br>
&gt; lt-main.sh.<br>
&gt; Also, the nightly release appears to be a broken tar file (at least I<br>
&gt; cannot<br>
&gt; open it in my pc)...<br>
&gt;  cheers,<br>
&gt;            Jo<br>
&gt;<br>
&gt; 2009/7/19 &lt;<a href="mailto:geos-devel-request@lists.osgeo.org">geos-devel-request@lists.osgeo.org</a>&gt;<br>
&gt;<br>
&gt; &gt; Send geos-devel mailing list submissions to<br>
&gt; &gt;        <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
&gt; &gt;<br>
&gt; &gt; To subscribe or unsubscribe via the World Wide Web, visit<br>
&gt; &gt;        <a href="http://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geos-devel</a><br>
&gt; &gt; or, via email, send a message with subject or body &#39;help&#39; to<br>
&gt; &gt;        <a href="mailto:geos-devel-request@lists.osgeo.org">geos-devel-request@lists.osgeo.org</a><br>
&gt; &gt;<br>
&gt; &gt; You can reach the person managing the list at<br>
&gt; &gt;        <a href="mailto:geos-devel-owner@lists.osgeo.org">geos-devel-owner@lists.osgeo.org</a><br>
&gt; &gt;<br>
&gt; &gt; When replying, please edit your Subject line so it is more specific<br>
&gt; &gt; than &quot;Re: Contents of geos-devel digest...&quot;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Today&#39;s Topics:<br>
&gt; &gt;<br>
&gt; &gt;   1. Computational Geometry Problem (Jo)<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; ----------------------------------------------------------------------<br>
&gt; &gt;<br>
&gt; &gt; Message: 1<br>
&gt; &gt; Date: Sun, 19 Jul 2009 22:56:53 +0100<br>
&gt; &gt; From: Jo &lt;<a href="mailto:doublebyte@gmail.com">doublebyte@gmail.com</a>&gt;<br>
&gt; &gt; Subject: [geos-devel] Computational Geometry Problem<br>
&gt; &gt; To: <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
&gt; &gt; Message-ID:<br>
&gt; &gt;        &lt;<a href="mailto:23ab5f0a0907191456l5f8d648i4dce9666abf3dcf8@mail.gmail.com">23ab5f0a0907191456l5f8d648i4dce9666abf3dcf8@mail.gmail.com</a>&gt;<br>
&gt; &gt; Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br>
&gt; &gt;<br>
&gt; &gt; Hi Sanak,<br>
&gt; &gt; Thanks a lot for the modified code: it worked on perfection!<br>
&gt; &gt; Here is a screenshot of a run with my shapefile:<br>
&gt; &gt;<br>
&gt; &gt; <a href="http://ladybug.no-ip.org/files/inCircleFinal.png" target="_blank">http://ladybug.no-ip.org/files/inCircleFinal.png</a><br>
&gt; &gt;<br>
&gt; &gt;        Have a good rest of the weekend!<br>
&gt; &gt;                                                             Jo<br>
&gt; &gt;<br>
&gt; &gt; 2009/7/19 &lt;<a href="mailto:geos-devel-request@lists.osgeo.org">geos-devel-request@lists.osgeo.org</a>&gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt; Send geos-devel mailing list submissions to<br>
&gt; &gt; &gt;        <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; To subscribe or unsubscribe via the World Wide Web, visit<br>
&gt; &gt; &gt;        <a href="http://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geos-devel</a><br>
&gt; &gt; &gt; or, via email, send a message with subject or body &#39;help&#39; to<br>
&gt; &gt; &gt;        <a href="mailto:geos-devel-request@lists.osgeo.org">geos-devel-request@lists.osgeo.org</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; You can reach the person managing the list at<br>
&gt; &gt; &gt;        <a href="mailto:geos-devel-owner@lists.osgeo.org">geos-devel-owner@lists.osgeo.org</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; When replying, please edit your Subject line so it is more specific<br>
&gt; &gt; &gt; than &quot;Re: Contents of geos-devel digest...&quot;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Today&#39;s Topics:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;   1. Re: Re: Computational Geometry Problem (Sanak Goe)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; ----------------------------------------------------------------------<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Message: 1<br>
&gt; &gt; &gt; Date: Sun, 19 Jul 2009 21:24:34 +0900<br>
&gt; &gt; &gt; From: Sanak Goe &lt;<a href="mailto:geosanak@gmail.com">geosanak@gmail.com</a>&gt;<br>
&gt; &gt; &gt; Subject: Re: [geos-devel] Re: Computational Geometry Problem<br>
&gt; &gt; &gt; To: GEOS Development List &lt;<a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a>&gt;<br>
&gt; &gt; &gt; Message-ID:<br>
&gt; &gt; &gt;        &lt;<a href="mailto:5f9be0a0907190524n5a8de434y38731cf04e7770d0@mail.gmail.com">5f9be0a0907190524n5a8de434y38731cf04e7770d0@mail.gmail.com</a>&gt;<br>
&gt; &gt; &gt; Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Skipped content of type multipart/alternative-------------- next part<br>
&gt; &gt; &gt; --------------<br>
&gt; &gt; &gt; #include &lt;locale.h&gt;<br>
&gt; &gt; &gt; #include &lt;iostream&gt;<br>
&gt; &gt; &gt; #include &lt;vector&gt;<br>
&gt; &gt; &gt; #include &lt;algorithm&gt;<br>
&gt; &gt; &gt; #include &lt;stdexcept&gt;<br>
&gt; &gt; &gt; #include &lt;map&gt; // added by sanak 2009.07.19<br>
&gt; &gt; &gt; #ifdef _MSC_VER<br>
&gt; &gt; &gt; #include &lt;io.h&gt;<br>
&gt; &gt; &gt; #endif // _MSC_VER<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; //Geos<br>
&gt; &gt; &gt; #include &lt;geos_c.h&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #include &lt;geos/algorithm/CGAlgorithms.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/algorithm/HCoordinate.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/geom/Coordinate.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/geom/CoordinateArraySequence.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/geom/LineString.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/geom/MultiPoint.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/geom/Point.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/geom/Polygon.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/io/WKTReader.h&gt;<br>
&gt; &gt; &gt; #include &lt;geos/io/WKTWriter.h&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; // &lt;-- modified by sanak 2009.07.19<br>
&gt; &gt; &gt; //const double epsilonArea = 100.0;<br>
&gt; &gt; &gt; const double epsilonRadius = 0.1;<br>
&gt; &gt; &gt; // --&gt; modified by sanak 2009.07.19<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; // &lt;-- Boost code<br>
&gt; &gt; &gt; template &lt; class BidirectionalIterator &gt;<br>
&gt; &gt; &gt; bool next_combination ( BidirectionalIterator first1 ,<br>
&gt; &gt; &gt;  BidirectionalIterator last1 ,<br>
&gt; &gt; &gt;  BidirectionalIterator first2 ,<br>
&gt; &gt; &gt;  BidirectionalIterator last2 )<br>
&gt; &gt; &gt; {<br>
&gt; &gt; &gt;  if (( first1 == last1 ) || ( first2 == last2 )) {<br>
&gt; &gt; &gt;    return false ;<br>
&gt; &gt; &gt;  }<br>
&gt; &gt; &gt;  BidirectionalIterator m1 = last1 ;<br>
&gt; &gt; &gt;  BidirectionalIterator m2 = last2 ; --m2;<br>
&gt; &gt; &gt;  while (--m1 != first1 &amp;&amp; !(* m1 &lt; *m2 )){<br>
&gt; &gt; &gt;  }<br>
&gt; &gt; &gt;  bool result = (m1 == first1 ) &amp;&amp; !(* first1 &lt; *m2 );<br>
&gt; &gt; &gt;  if (! result ) {<br>
&gt; &gt; &gt;    while ( first2 != m2 &amp;&amp; !(* m1 &lt; * first2 )) {<br>
&gt; &gt; &gt;      ++ first2 ;<br>
&gt; &gt; &gt;    }<br>
&gt; &gt; &gt;    first1 = m1;<br>
&gt; &gt; &gt;    std :: iter_swap (first1 , first2 );<br>
&gt; &gt; &gt;    ++ first1 ;<br>
&gt; &gt; &gt;    ++ first2 ;<br>
&gt; &gt; &gt;  }<br>
&gt; &gt; &gt;  if (( first1 != last1 ) &amp;&amp; ( first2 != last2 )) {<br>
&gt; &gt; &gt;    m1 = last1 ; m2 = first2 ;<br>
&gt; &gt; &gt;    while (( m1 != first1 ) &amp;&amp; (m2 != last2 )) {<br>
&gt; &gt; &gt;      std :: iter_swap (--m1 , m2 );<br>
&gt; &gt; &gt;      ++ m2;<br>
&gt; &gt; &gt;    }<br>
&gt; &gt; &gt;    std :: reverse (first1 , m1 );<br>
&gt; &gt; &gt;    std :: reverse (first1 , last1 );<br>
&gt; &gt; &gt;    std :: reverse (m2 , last2 );<br>
&gt; &gt; &gt;    std :: reverse (first2 , last2 );<br>
&gt; &gt; &gt;  }<br>
&gt; &gt; &gt;  return ! result ;<br>
&gt; &gt; &gt; }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; template &lt; class BidirectionalIterator &gt;<br>
&gt; &gt; &gt; bool next_combination ( BidirectionalIterator first ,<br>
&gt; &gt; &gt;  BidirectionalIterator middle ,<br>
&gt; &gt; &gt;  BidirectionalIterator last )<br>
&gt; &gt; &gt; {<br>
&gt; &gt; &gt;  return next_combination (first , middle , middle , last );<br>
&gt; &gt; &gt; }<br>
&gt; &gt; &gt; // Boost Code --&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; bool computeIncircle(<br>
&gt; &gt; &gt;                                         const geos::geom::Polygon*<br>
&gt; poly,<br>
&gt; &gt; &gt;                                         const geos::geom::Polygon*<br>
&gt; &gt; negbuf,<br>
&gt; &gt; &gt;                                         geos::geom::Coordinate&amp; center,<br>
&gt; &gt; &gt;                                         double&amp; radius)<br>
&gt; &gt; &gt; {<br>
&gt; &gt; &gt;        radius = 0.0;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;        if (negbuf == NULL)<br>
&gt; &gt; &gt;        {<br>
&gt; &gt; &gt;                negbuf = poly;<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;        try<br>
&gt; &gt; &gt;        {<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                if (!negbuf-&gt;isValid())<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        throw std::runtime_error(&quot;Invalid polygon.&quot;);<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                if (negbuf-&gt;getNumInteriorRing() &gt; 0)<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        throw std::runtime_error(&quot;This sample only<br>
&gt; &gt; supports<br>
&gt; &gt; &gt; non-holes polygon.&quot;);<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                const geos::geom::LineString* shell =<br>
&gt; &gt; &gt; negbuf-&gt;getExteriorRing();<br>
&gt; &gt; &gt;                geos::geom::CoordinateArraySequence* coords =<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; static_cast&lt;geos::geom::CoordinateArraySequence*&gt;(shell-&gt;getCoordinates());<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                // compute orientation of ring<br>
&gt; &gt; &gt;                if (!geos::algorithm::CGAlgorithms::isCCW(coords))<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        coords-&gt;reverse(coords);<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                // compute angle bisector of every  continuous three<br>
&gt; &gt; points<br>
&gt; &gt; &gt; in polygon<br>
&gt; &gt; &gt;                size_t cnt = coords-&gt;size() - 1;<br>
&gt; &gt; &gt;                // &lt;-- modified by sanak 2009.07.19<br>
&gt; &gt; &gt;                //std::vector&lt;geos::algorithm::HCoordinate*&gt; bisects;<br>
&gt; &gt; &gt;                std::vector&lt;size_t&gt; bisectids;<br>
&gt; &gt; &gt;                std::map&lt;size_t, geos::algorithm::HCoordinate*&gt; bisects;<br>
&gt; &gt; &gt;                // --&gt; modified by sanak 2009.07.19<br>
&gt; &gt; &gt;                for (size_t i = 0; i &lt; cnt; i++)<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        size_t prev = (i == 0) ? cnt - 1 : i - 1;<br>
&gt; &gt; &gt;                        size_t curr = i;<br>
&gt; &gt; &gt;                        size_t next = (i == cnt - 1) ? 0 : i + 1;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                        // &lt;-- JTS 1.10 Code<br>
&gt; &gt; &gt;                        geos::geom::Coordinate a = coords-&gt;getAt(prev);<br>
&gt; &gt; &gt;                        geos::geom::Coordinate b = coords-&gt;getAt(curr);<br>
&gt; &gt; &gt;                        geos::geom::Coordinate c = coords-&gt;getAt(next);<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                        double len0 = b.distance(a);<br>
&gt; &gt; &gt;                        double len2 = b.distance(c);<br>
&gt; &gt; &gt;                        double frac = len0 / (len0 + len2);<br>
&gt; &gt; &gt;                        double dx = c.x - a.x;<br>
&gt; &gt; &gt;                        double dy = c.y - a.y;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                        geos::geom::Coordinate splitPt =<br>
&gt; &gt; &gt; geos::geom::Coordinate(a.x + frac * dx, a.y + frac * dy);<br>
&gt; &gt; &gt;                        // --&gt; JTS 1.10 Code<br>
&gt; &gt; &gt;                        // &lt;-- modified by sanak 2009.07.19<br>
&gt; &gt; &gt;                        //bisects.push_back(new<br>
&gt; &gt; &gt; geos::algorithm::HCoordinate(b, splitPt));<br>
&gt; &gt; &gt;                        bisectids.push_back(i);<br>
&gt; &gt; &gt;                        bisects.insert(std::pair&lt;size_t,<br>
&gt; &gt; &gt; geos::algorithm::HCoordinate*&gt;(i, new geos::algorithm::HCoordinate(b,<br>
&gt; &gt; &gt; splitPt)));<br>
&gt; &gt; &gt;                        // --&gt; modified by sanak 2009.07.19<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                // get intersection points of angle bisectors<br>
&gt; &gt; &gt;                geos::geom::CoordinateArraySequence intsects;<br>
&gt; &gt; &gt;                do<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        // &lt;-- modified by sanak 2009.07.19<br>
&gt; &gt; &gt;                        //geos::algorithm::HCoordinate* hc0 =<br>
&gt; bisects[0];<br>
&gt; &gt; &gt;                        //geos::algorithm::HCoordinate* hc1 =<br>
&gt; bisects[1];<br>
&gt; &gt; &gt;                        geos::algorithm::HCoordinate* hc0 =<br>
&gt; &gt; &gt; bisects[bisectids[0]];<br>
&gt; &gt; &gt;                        geos::algorithm::HCoordinate* hc1 =<br>
&gt; &gt; &gt; bisects[bisectids[1]];<br>
&gt; &gt; &gt;                        // --&gt; modified by sanak 2009.07.19<br>
&gt; &gt; &gt;                        geos::algorithm::HCoordinate* hcoord = new<br>
&gt; &gt; &gt; geos::algorithm::HCoordinate(*hc0, *hc1);<br>
&gt; &gt; &gt;                        try<br>
&gt; &gt; &gt;                        {<br>
&gt; &gt; &gt;                                // get intersection<br>
&gt; &gt; &gt;                                geos::geom::Coordinate coord =<br>
&gt; &gt; &gt; geos::geom::Coordinate(hcoord-&gt;getX(), hcoord-&gt;getY());<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                                // TODO:remove duplicate point<br>
&gt; &gt; &gt;                                intsects.add(coord);<br>
&gt; &gt; &gt;                        }<br>
&gt; &gt; &gt;                        catch (std::exception&amp; ex)<br>
&gt; &gt; &gt;                        {<br>
&gt; &gt; &gt;                                // no intersection<br>
&gt; &gt; &gt;                        }<br>
&gt; &gt; &gt;                        if (hcoord)<br>
&gt; &gt; &gt;                        {<br>
&gt; &gt; &gt;                                delete hcoord;<br>
&gt; &gt; &gt;                        }<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;                // &lt;-- modified by sanak 2009.07.19<br>
&gt; &gt; &gt;                //while (next_combination(bisects.begin(),<br>
&gt; bisects.begin()<br>
&gt; &gt; +<br>
&gt; &gt; &gt; 2, bisects.end()));<br>
&gt; &gt; &gt;                while (next_combination(bisectids.begin(),<br>
&gt; &gt; bisectids.begin()<br>
&gt; &gt; &gt; + 2, bisectids.end()));<br>
&gt; &gt; &gt;                // --&gt; modified by sanak 2009.07.19<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                // clean up<br>
&gt; &gt; &gt;                if (bisects.size() &gt; 0)<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        std::cout &lt;&lt; &quot;bissects ok.&quot; &lt;&lt; std::endl;<br>
&gt; &gt; &gt;                        // &lt;-- modified by sanak 2009.07.19<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;  //std::vector&lt;geos::algorithm::HCoordinate*&gt;::iterator it;<br>
&gt; &gt; &gt;                        //for (it = bisects.begin(); it !=<br>
&gt; bisects.end();<br>
&gt; &gt; &gt; it++)<br>
&gt; &gt; &gt;                        //{<br>
&gt; &gt; &gt;                        //      delete *it;<br>
&gt; &gt; &gt;                        //}<br>
&gt; &gt; &gt;                        std::map&lt;size_t,<br>
&gt; &gt; &gt; geos::algorithm::HCoordinate*&gt;::iterator it;<br>
&gt; &gt; &gt;                        for (it = bisects.begin(); it != bisects.end();<br>
&gt; &gt; &gt; it++)<br>
&gt; &gt; &gt;                        {<br>
&gt; &gt; &gt;                                delete it-&gt;second;<br>
&gt; &gt; &gt;                        }<br>
&gt; &gt; &gt;                        // --&gt; modified by sanak 2009.07.19<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;                else<br>
&gt; &gt; &gt;                std::cout &lt;&lt; &quot;No bissects.&quot; &lt;&lt; std::endl;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                std::cout &lt;&lt; &quot;intsects.size()&quot; &lt;&lt; intsects.size() &lt;&lt;<br>
&gt; &gt; &gt;  std::endl;<br>
&gt; &gt; &gt;                if (intsects.size() &gt; 0)<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        std::cout &lt;&lt; &quot;intsects ok.&quot; &lt;&lt; std::endl;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                        geos::geom::Point* incenter = NULL;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                        geos::geom::GeometryFactory factory;<br>
&gt; &gt; &gt;                        const geos::geom::LineString* line =<br>
&gt; &gt; &gt; poly-&gt;getExteriorRing();<br>
&gt; &gt; &gt;                        //geos::geom::MultiPoint* rcpoints =<br>
&gt; &gt; &gt; factory.createMultiPoint(intsects); // for debug<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                        std::vector&lt;geos::geom::Coordinate*&gt;::iterator<br>
&gt; it;<br>
&gt; &gt; &gt;                        for (size_t i = 0; i &lt; intsects.size(); i++)<br>
&gt; &gt; &gt;                        {<br>
&gt; &gt; &gt;                                geos::geom::Coordinate coord =<br>
&gt; &gt; intsects[i];<br>
&gt; &gt; &gt;                                // exclude points that are outer of<br>
&gt; &gt; polygon<br>
&gt; &gt; &gt;                                if<br>
&gt; &gt; &gt; (geos::algorithm::CGAlgorithms::isPointInRing(coord, coords))<br>
&gt; &gt; &gt;                                {<br>
&gt; &gt; &gt;                                        geos::geom::Point* point =<br>
&gt; &gt; &gt; factory.createPoint(coord);<br>
&gt; &gt; &gt;                                        // compute distance from every<br>
&gt; &gt; &gt; candidates of centres to polygon, and choose largest one<br>
&gt; &gt; &gt;                                        double distance =<br>
&gt; &gt; &gt; line-&gt;distance(point);<br>
&gt; &gt; &gt;                                        if (radius &lt; distance)<br>
&gt; &gt; &gt;                                        {<br>
&gt; &gt; &gt;                                                radius = distance;<br>
&gt; &gt; &gt;                                                incenter = point;<br>
&gt; &gt; &gt;                                        }<br>
&gt; &gt; &gt;                                }<br>
&gt; &gt; &gt;                                //else std::cout &lt;&lt; &quot;Point not in Ring.&quot;<br>
&gt; &gt; &lt;&lt;<br>
&gt; &gt; &gt; std::endl;<br>
&gt; &gt; &gt;                        }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                        if (incenter != NULL &amp;&amp; radius != 0.0)<br>
&gt; &gt; &gt;                        {<br>
&gt; &gt; &gt;                                        geos::io::WKTWriter writer;<br>
&gt; &gt; &gt;                                        std::cout &lt;&lt; &quot;wkt : &quot; &lt;&lt;<br>
&gt; &gt; &gt; writer.write(incenter) &lt;&lt; std::endl;<br>
&gt; &gt; &gt;                                        std::cout &lt;&lt; &quot;radius : &quot; &lt;&lt;<br>
&gt; radius<br>
&gt; &gt; &gt; &lt;&lt; std::endl;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                                center.x = incenter-&gt;getX();<br>
&gt; &gt; &gt;                                center.y = incenter-&gt;getY();<br>
&gt; &gt; &gt;                                //return true; // deleted by sanak<br>
&gt; &gt; &gt; 2009.07.19<br>
&gt; &gt; &gt;                        }<br>
&gt; &gt; &gt;                        // &lt;-- added by sanak 2009.07.19<br>
&gt; &gt; &gt;                        else<br>
&gt; &gt; &gt;                        {<br>
&gt; &gt; &gt;                                geos::geom::Point* intPt =<br>
&gt; &gt; &gt; negbuf-&gt;getInteriorPoint();<br>
&gt; &gt; &gt;                                center.x = intPt-&gt;getX();<br>
&gt; &gt; &gt;                                center.y = intPt-&gt;getY();<br>
&gt; &gt; &gt;                                radius = line-&gt;distance(intPt);<br>
&gt; &gt; &gt;                        }<br>
&gt; &gt; &gt;                        return true;<br>
&gt; &gt; &gt;                        // --&gt; added by sanak 2009.07.19<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;                else<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        std::cout &lt;&lt; &quot;No intsects.&quot; &lt;&lt; std::endl;<br>
&gt; &gt; &gt;                        throw std::runtime_error(&quot;Couldn&#39;t get<br>
&gt; &gt; incenter.&quot;);<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt;        catch (std::exception&amp; ex)<br>
&gt; &gt; &gt;        {<br>
&gt; &gt; &gt;                std::cerr &lt;&lt; &quot;Exception : &quot; &lt;&lt; ex.what() &lt;&lt; std::endl;<br>
&gt; &gt; &gt;                throw ex;<br>
&gt; &gt; &gt;                return false;<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt;        return false;<br>
&gt; &gt; &gt; }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; int main(int argc, char* argv[])<br>
&gt; &gt; &gt; {<br>
&gt; &gt; &gt;        // check stdin<br>
&gt; &gt; &gt; #ifdef _MSC_VER<br>
&gt; &gt; &gt;        if (::_isatty(fileno(stdin)))<br>
&gt; &gt; &gt; #else<br>
&gt; &gt; &gt;        if (::isatty(fileno(stdin)))<br>
&gt; &gt; &gt; #endif // _MSC_VER<br>
&gt; &gt; &gt;        {<br>
&gt; &gt; &gt;                std::cerr &lt;&lt; &quot;Usage: %s &lt; [wktfile(polygon)]&quot; &lt;&lt;<br>
&gt; &gt; std::endl;<br>
&gt; &gt; &gt;                return -1;<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;        std::string line;<br>
&gt; &gt; &gt;        geos::io::WKTReader reader;<br>
&gt; &gt; &gt;        std::vector&lt;geos::geom::Polygon*&gt; g;<br>
&gt; &gt; &gt;        while (getline(std::cin, line, &#39;\n&#39;))<br>
&gt; &gt; &gt;        {<br>
&gt; &gt; &gt;                //std::cout &lt;&lt; line &lt;&lt; std::endl;<br>
&gt; &gt; &gt;                geos::geom::Polygon* geom =<br>
&gt; &gt; &gt;                static_cast&lt;geos::geom::Polygon*&gt;(reader.read(line));<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                if (geom == NULL &amp;&amp; geom-&gt;getGeometryType() !=<br>
&gt; &quot;Polygon&quot;)<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        throw std::runtime_error(&quot;This sample only<br>
&gt; &gt; supports<br>
&gt; &gt; &gt; polygon geometry&quot;);<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                geos::geom::Polygon* poly =<br>
&gt; &gt; &gt; static_cast&lt;geos::geom::Polygon*&gt;(geom);<br>
&gt; &gt; &gt;                if (!poly-&gt;isValid())<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        throw std::runtime_error(&quot;Invalid polygon.&quot;);<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                if (poly-&gt;getNumInteriorRing() &gt; 0)<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        throw std::runtime_error(&quot;This sample only<br>
&gt; &gt; supports<br>
&gt; &gt; &gt; non-holes polygon.&quot;);<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                g.push_back(poly);<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;        try<br>
&gt; &gt; &gt;        {<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                for (int i=0 ; i &lt; g.size(); ++i)<br>
&gt; &gt; &gt;                {<br>
&gt; &gt; &gt;                        geos::geom::Polygon* negbuf = NULL;<br>
&gt; &gt; &gt;                        double prevRadius = 0.0; // added by sanak<br>
&gt; &gt; &gt; 2009.07.19<br>
&gt; &gt; &gt;                        while (true)<br>
&gt; &gt; &gt;                        {<br>
&gt; &gt; &gt;                                geos::geom::Coordinate center;<br>
&gt; &gt; &gt;                                double radius = 0.0;<br>
&gt; &gt; &gt;                                if (computeIncircle(g[i], negbuf,<br>
&gt; center,<br>
&gt; &gt; &gt; radius))<br>
&gt; &gt; &gt;                                {<br>
&gt; &gt; &gt;                                        // &lt;-- modified by sanak<br>
&gt; &gt; 2009.07.19<br>
&gt; &gt; &gt;                                        //negbuf =<br>
&gt; &gt; &gt; static_cast&lt;geos::geom::Polygon*&gt;(g[i]-&gt;buffer(-radius));<br>
&gt; &gt; &gt;                                        //if (negbuf == NULL &amp;&amp;<br>
&gt; &gt; &gt; negbuf-&gt;getGeometryType() != &quot;Polygon&quot;)<br>
&gt; &gt; &gt;                                        //{<br>
&gt; &gt; &gt;                                        //      // TODO:<br>
&gt; &gt; &gt;                                        //      throw<br>
&gt; &gt; &gt; std::runtime_error(&quot;Intercepted!!!!!!!&quot;);<br>
&gt; &gt; &gt;                                        //}<br>
&gt; &gt; &gt;                                        //double area =<br>
&gt; negbuf-&gt;getArea();<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                                        //if (area &lt; epsilonArea)<br>
&gt; &gt; &gt;                                        geos::geom::Geometry* buf =<br>
&gt; &gt; &gt; g[i]-&gt;buffer(-(radius));<br>
&gt; &gt; &gt;                                        std::string buftype =<br>
&gt; &gt; &gt; buf-&gt;getGeometryType();<br>
&gt; &gt; &gt;                                        if (buftype == &quot;Polygon&quot;)<br>
&gt; &gt; &gt;                                        {<br>
&gt; &gt; &gt;                                                negbuf =<br>
&gt; &gt; &gt; static_cast&lt;geos::geom::Polygon*&gt;(buf);<br>
&gt; &gt; &gt;                                        }<br>
&gt; &gt; &gt;                                        else if (buftype ==<br>
&gt; &gt; &quot;MultiPolygon&quot;)<br>
&gt; &gt; &gt;                                        {<br>
&gt; &gt; &gt;                                                size_t cnt =<br>
&gt; &gt; &gt; buf-&gt;getNumGeometries();<br>
&gt; &gt; &gt;                                                double maxradius = 0.0;<br>
&gt; &gt; &gt;                                                double tmpradius = 0.0;<br>
&gt; &gt; &gt;                                                geos::geom::Coordinate<br>
&gt; &gt; &gt; tmpcenter;<br>
&gt; &gt; &gt;                                                for (size_t j = 0; j &lt;<br>
&gt; &gt; cnt;<br>
&gt; &gt; &gt; j++)<br>
&gt; &gt; &gt;                                                {<br>
&gt; &gt; &gt;                                                        const<br>
&gt; &gt; &gt; geos::geom::Polygon* item = static_cast&lt;const<br>
&gt; &gt; &gt; geos::geom::Polygon*&gt;(buf-&gt;getGeometryN(j));<br>
&gt; &gt; &gt;                                                        if<br>
&gt; &gt; &gt; (computeIncircle(g[i], item, tmpcenter, tmpradius))<br>
&gt; &gt; &gt;                                                        {<br>
&gt; &gt; &gt;                                                                if<br>
&gt; &gt; &gt; (tmpradius &gt; maxradius)<br>
&gt; &gt; &gt;                                                                {<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;  negbuf = static_cast&lt;geos::geom::Polygon*&gt;(item-&gt;clone());<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;  center = tmpcenter;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;  radius = tmpradius;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;  maxradius = tmpradius;<br>
&gt; &gt; &gt;                                                                }<br>
&gt; &gt; &gt;                                                        }<br>
&gt; &gt; &gt;                                                }<br>
&gt; &gt; &gt;                                        }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                                        if ((radius - prevRadius) &lt;<br>
&gt; &gt; &gt; epsilonRadius)<br>
&gt; &gt; &gt;                                        // --&gt; modified by sanak<br>
&gt; &gt; 2009.07.19<br>
&gt; &gt; &gt;                                        {<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;                                                std::cout &lt;&lt; &quot;center : &quot;<br>
&gt; &gt; &lt;&lt;<br>
&gt; &gt; &gt; center.toString() &lt;&lt; std::endl;<br>
&gt; &gt; &gt;                                                std::cout &lt;&lt; &quot;radius : &quot;<br>
&gt; &gt; &lt;&lt;<br>
&gt; &gt; &gt; radius &lt;&lt; std::endl;<br>
&gt; &gt; &gt;<br>
&gt; &gt;  geos::geom::GeometryFactory<br>
&gt; &gt; &gt; factory;<br>
&gt; &gt; &gt;                                                geos::geom::Point*<br>
&gt; &gt; centerPt<br>
&gt; &gt; &gt; = factory.createPoint(center);<br>
&gt; &gt; &gt;                                                geos::geom::Geometry*<br>
&gt; &gt; &gt; incircle = centerPt-&gt;buffer(radius);<br>
&gt; &gt; &gt;                                                geos::io::WKTWriter<br>
&gt; &gt; writer;<br>
&gt; &gt; &gt;                                                std::cout &lt;&lt; &quot;wkt : &quot; &lt;&lt;<br>
&gt; &gt; &gt; writer.write(incircle) &lt;&lt; std::endl;<br>
&gt; &gt; &gt;                                                // &lt;-- modified by sanak<br>
&gt; &gt; &gt; 2009.07.19<br>
&gt; &gt; &gt;                                                //return 0;<br>
&gt; &gt; &gt;                                                break;<br>
&gt; &gt; &gt;                                                // --&gt; modified by sanak<br>
&gt; &gt; &gt; 2009.07.19<br>
&gt; &gt; &gt;                                        }<br>
&gt; &gt; &gt;                                        prevRadius = radius; // added by<br>
&gt; &gt; &gt; sanak 2009.07.19<br>
&gt; &gt; &gt;                                }<br>
&gt; &gt; &gt;                                else<br>
&gt; &gt; &gt;                                {<br>
&gt; &gt; &gt;                                        std::cout &lt;&lt; &quot;Could not<br>
&gt; compute!&quot;<br>
&gt; &gt; &lt;&lt;<br>
&gt; &gt; &gt; std::endl;<br>
&gt; &gt; &gt;                                        return -2;<br>
&gt; &gt; &gt;                                }<br>
&gt; &gt; &gt;                        }<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt;        catch (std::exception&amp; ex)<br>
&gt; &gt; &gt;        {<br>
&gt; &gt; &gt;                std::cerr &lt;&lt; &quot;Exception : &quot; &lt;&lt; ex.what() &lt;&lt; std::endl;<br>
&gt; &gt; &gt;                return -3;<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;        return 0;<br>
&gt; &gt; &gt; }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; ------------------------------<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; geos-devel mailing list<br>
&gt; &gt; &gt; <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
&gt; &gt; &gt; <a href="http://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geos-devel</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; End of geos-devel Digest, Vol 81, Issue 13<br>
&gt; &gt; &gt; ******************************************<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; &quot;#define QUESTION ((bb) || !(bb))&quot;  (Shakespeare)<br>
&gt; &gt; -------------- next part --------------<br>
&gt; &gt; An HTML attachment was scrubbed...<br>
&gt; &gt; URL:<br>
&gt; &gt;<br>
&gt; <a href="http://lists.osgeo.org/pipermail/geos-devel/attachments/20090719/f83b16e1/attachment.html" target="_blank">http://lists.osgeo.org/pipermail/geos-devel/attachments/20090719/f83b16e1/attachment.html</a><br>
&gt; &gt;<br>
&gt; &gt; ------------------------------<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; geos-devel mailing list<br>
&gt; &gt; <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
&gt; &gt; <a href="http://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geos-devel</a><br>
&gt; &gt;<br>
&gt; &gt; End of geos-devel Digest, Vol 81, Issue 14<br>
&gt; &gt; ******************************************<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; &quot;#define QUESTION ((bb) || !(bb))&quot;  (Shakespeare)<br>
&gt; -------------- next part --------------<br>
&gt; An HTML attachment was scrubbed...<br>
&gt; URL:<br>
&gt; <a href="http://lists.osgeo.org/pipermail/geos-devel/attachments/20090719/d602a171/attachment.html" target="_blank">http://lists.osgeo.org/pipermail/geos-devel/attachments/20090719/d602a171/attachment.html</a><br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; geos-devel mailing list<br>
&gt; <a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
&gt; <a href="http://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geos-devel</a><br>
&gt;<br>
&gt; End of geos-devel Digest, Vol 81, Issue 15<br>
&gt; ******************************************<br>
&gt;<br>
<br>
<br>
<br>
--<br>
&quot;#define QUESTION ((bb) || !(bb))&quot;  (Shakespeare)<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <a href="http://lists.osgeo.org/pipermail/geos-devel/attachments/20090720/40ba7c0d/attachment.html" target="_blank">http://lists.osgeo.org/pipermail/geos-devel/attachments/20090720/40ba7c0d/attachment.html</a><br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
geos-devel mailing list<br>
<a href="mailto:geos-devel@lists.osgeo.org">geos-devel@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/geos-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geos-devel</a><br>
<br>
End of geos-devel Digest, Vol 81, Issue 17<br>
******************************************<br>
</blockquote></div><br><br clear="all"><br>-- <br>&quot;#define QUESTION ((bb) || !(bb))&quot;  (Shakespeare)<br><br>