[geos-devel] nasty ring bug
strk at refractions.net
strk at refractions.net
Wed Feb 21 04:28:39 EST 2007
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
--
() ASCII Ribbon Campaign
/\ Keep it simple!
More information about the geos-devel
mailing list