[geos-devel] nasty ring bug

Carl Anderson carl.anderson at vadose.org
Wed Feb 21 07:12:59 EST 2007


strk,

you are free to uses these examples as you want.

hole_from shell.xml   is the example we hit in production use
hole_red.xml  is a reduced form of that

big_nasty.xml is a cut and paste from your email about a reduced form of 
the big bad nasty buffer

I want to run a few more tests in the production environment to see if 
any consequences of the patch pop up.
I'll let you know in a few hours.

C.

is the strk at refractions.net wrote:
> All tests i nGEOS testsuite still pass with this patch,
> and the badguy.xml testcase doesn't abort. Still, the result
> for badguy.xml doesn't seem completely fine. A couple of cirlcles
> are missing from the obtained result.
> Can you send me the bug_nasty.xml and hole_red.xml files to include
> in repository ?
> Can you find the badguy.xml testcase or should I send it to you ?
>
> --strk;
>
> On Wed, Feb 21, 2007 at 12:25:39AM -0500, Carl Anderson wrote:
>
>   
>> strk,
>>
>> This patch avoids the defective logic (that exists later, somewhere)
>> It makes a logic short circuit more robust instead of fixing the 
>> underlying logic defect.
>>
>> So be it.
>> It works for me..  for now.
>>
>> I'll let you know how further testing goes.
>>
>> bug_nasty.xml
>> and
>> hole_red.xml
>>
>> both pass testing with this patch.
>>
>>
>> --- source/operation/buffer/SubgraphDepthLocater.cpp    (revision 1972)
>> +++ source/operation/buffer/SubgraphDepthLocater.cpp    (working copy)
>> @@ -180,11 +180,16 @@
>>        {
>>                BufferSubgraph *bsg=(*subgraphs)[i];
>>
>> +#ifdef GEOS_DEBUG > 1
>> +       std::cerr << "findStabbedSegments envelope: " <<  
>> bsg->getEnvelope() << " RayLeftpt: " << stabbingRayLeftPt << std::endl;
>> +#endif
>>                // optimization - don't bother checking subgraphs
>>                // which the ray does not intersect
>>                Envelope *env = bsg->getEnvelope();
>>                if ( stabbingRayLeftPt.y < env->getMinY()
>> -                       || stabbingRayLeftPt.y > env->getMaxY() )
>> +                       || stabbingRayLeftPt.y > env->getMaxY()
>> +                       || stabbingRayLeftPt.x < env->getMinX()
>> +                       || stabbingRayLeftPt.x > env->getMaxX())
>>                                continue;
>>
>>                findStabbedSegments(stabbingRayLeftPt, 
>> bsg->getDirectedEdges(),
>>
>>
>> C.
>>
>>
>>
>> _______________________________________________
>> geos-devel mailing list
>> geos-devel at geos.refractions.net
>> http://geos.refractions.net/mailman/listinfo/geos-devel
>>     
>
>   

-------------- next part --------------
A non-text attachment was scrubbed...
Name: big_nasty.xml
Type: text/xml
Size: 4187 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/geos-devel/attachments/20070221/38f13ff7/big_nasty.xml
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hole_from_shell.xml
Type: text/xml
Size: 4565 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/geos-devel/attachments/20070221/38f13ff7/hole_from_shell.xml
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hole_red.xml
Type: text/xml
Size: 2926 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/geos-devel/attachments/20070221/38f13ff7/hole_red.xml


More information about the geos-devel mailing list