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 [EMAIL PROTECTED] 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@geos.refractions.net
http://geos.refractions.net/mailman/listinfo/geos-devel
<run>
<!--precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/-->
<precisionModel type="FLOATING"/>
<case>
<desc>
Extract from Big Bad Nasty buffer.
Note that buffer(0) on the two distinct elements in the MultiPoligon
work w/out problems. Also note that the two elements seems completely disjoint !
</desc>
<a>
MULTIPOLYGON(
((3135840.75
10098400,3135830.96130326 10098338.1966011,3135802.55339888
10098282.4429495,3135758.30705046 10098238.1966011,3135702.55339888
10098209.7886967,3135640.75 10098200,3135578.94660112
10098209.7886967,3135523.19294954 10098238.1966011,3135478.94660112
10098282.4429495,3135450.53869674 10098338.1966011,3135440.75
10098400,3135450.53869674 10098461.8033989,3135478.94660112
10098517.5570505,3135523.19294954 10098561.8033989,3135578.94660112
10098590.2113033,3135640.75 10098600,3135702.55339888
10098590.2113033,3135758.30705046 10098561.8033989,3135802.55339888
10098517.5570505,3135830.96130326 10098461.8033989,3135840.75
10098400))
,
((3129627.91469263 10098250.224858,3129626.69660112
10098251.4429495,3129598.28869674 10098307.1966011,3129588.5
10098369,3129598.28869674 10098430.8033989,3129626.69660112
10098486.5570505,3129670.94294954 10098530.8033989,3129726.69660112
10098559.2113033,3129788.5 10098569,3129810.4193904
10098565.5283096,3129801 10098625,3129810.78869674
10098686.8033989,3129839.19660112 10098742.5570505,3129883.44294954
10098786.8033989,3129919.80510414 10098805.330842,3129934.69660112
10098834.5570505,3129978.94294954 10098878.8033989,3130034.69660112
10098907.2113033,3130096.5 10098917,3130158.30339888
10098907.2113033,3130214.05705046 10098878.8033989,3130258.30339888
10098834.5570505,3130266.10886759 10098819.2379556,3130311.19660112
10098842.2113033,3130373 10098852,3130434.80339888
10098842.2113033,3130490.55705046 10098813.8033989,3130534.80339888
10098769.5570505,3130563.21130326 10098713.8033989,3130573
10098652,3130563.21130326 10098590.1966011,3130544.90273925
10098554.2640211,3130562.46130326 10098519.8033989,3130567.35775394
10098488.888426,3130580.59936041 10098482.1414905,3130624.84570883
10098437.8951421,3130653.25361321 10098382.1414905,3130663.04230996
10098320.3380916,3130653.25361321 10098258.5346927,3130624.84570883
10098202.7810411,3130580.59936041 10098158.5346927,3130524.84570883
10098130.1267883,3130463.04230996 10098120.3380916,3130401.23891108
10098130.1267883,3130390.18744187 10098135.7577932,3130393
10098118,3130383.21130326 10098056.1966011,3130354.80339888
10098000.4429495,3130344.48544933 10097990.125,3130369.05339888
10097965.5570505,3130397.46130326 10097909.8033989,3130407.25
10097848,3130398.37773376 10097791.9827156,3130424.80339888
10097765.5570505,3130453.21130326 10097709.8033989,3130463
10097648,3130453.21130326 10097586.1966011,3130424.80339888
10097530.4429495,3130380.55705046 10097486.1966011,3130324.80339888
10097457.7886967,3130263 10097448,3130201.19660112
10097457.7886967,3130145.44294954 10097486.1966011,3130101.19660112
10097530.4429495,3130072.78869674 10097586.1966011,3130069.4873263
10097607.0406337,3130055.44294954 10097614.1966011,3130011.19660112
10097658.4429495,3129982.78869674 10097714.1966011,3129973
10097776,3129982.78869674 10097837.8033989,3130000.7008544
10097872.9579877,3129962.94294954 10097892.1966011,3129918.69660112
10097936.4429495,3129890.28869674 10097992.1966011,3129887.47014519
10098009.9922353,3129867.44294954 10098020.1966011,3129831.00519077
10098056.6343599,3129827 10098056,3129765.19660112
10098065.7886967,3129709.44294954 10098094.1966011,3129665.19660112
10098138.4429495,3129636.78869674 10098194.1966011,3129627.91469263
10098250.224858)
, (3130240.39640351 10098310.4931472,3130210.44660112
10098340.4429495,3130206.75048368 10098347.6969885,3130170.44294954
10098366.1966011,3130160.73585624 10098375.9036944,3130136.55339888
10098328.4429495,3130127.23544933 10098319.125,3130137.19853339
10098309.1619159,3130193 10098318,3130240.39640351
10098310.4931472)
)
)
</a>
<test>
<!--op name="buffer" arg1="a" arg3="0.000000001"-->
<op name="buffer" arg1="a" arg3="0">
GEOMETRYCOLLECTION EMPTY
</op>
</test>
</case>
</run>
<run>
<precisionModel type="FLOATING"/>
<case>
<desc>GEOS 3.0.0_rc4 bufferReducedPrecision</desc>
<a>
MULTIPOLYGON (((2350000.0000000000000000 1488707.0969169281888753, 2349964.4004191001877189 1488636.0190692699979991, 2350000.0000000000000000 1488563.5240085718687624, 2350000.0000000000000000 1486139.5954903985839337, 2349862.9023056798614562 1486219.9886801000684500, 2349276.5575175802223384 1486686.9452663098927587, 2349189.6188003402203321 1486714.0890033100731671, 2349075.2651923401281238 1486839.4363198699429631, 2349177.6410056301392615 1487348.6899289600551128, 2349095.0335451299324632 1487322.3496956799644977, 2348966.6837510201148689 1487132.5463537599425763, 2348855.5631697699427605 1486958.4198595299385488, 2348746.1466918801888824 1487029.9212600900791585, 2348637.5355608197860420 1487162.9215295300818980, 2348675.8306268397718668 1487255.0497121699154377, 2349197.2302119499072433 1487757.7338257899973541, 2349432.8564184200949967 1487884.7684968400280923, 2349765.1257171598263085 1488676.7953792500775307, 2350000.0000000000000000 1489132.4801826500333846, 2350000.0000000000000000 1488707.0969169281888753)),
((2350001.0000000000000000 1489673.5379561646841466, 2349939.3882785998284817 1489622.4783083000220358, 2349744.2255139001645148 1489564.2840713199693710, 2349714.5727142500691116 1489555.4998093899339437, 2349656.1571633601561189 1489548.4856726101133972, 2349506.3355672401376069 1489530.0346219500061125, 2349451.7939001601189375 1489559.0524864098988473, 2349350.2853812701068819 1489613.4625319899059832, 2349462.3675328497774899 1489926.2343633500859141, 2349330.2864756002090871 1489979.5005766900721937, 2349260.1990413102321327 1489893.8673000501003116, 2349230.8788724797777832 1489867.6174024299252778, 2349166.9456986500881612 1489723.0448318300768733, 2349154.8086357498541474 1489739.3992036799900234, 2349131.1424813498742878 1489770.6534391599707305, 2349099.0351308397948742 1489781.1517036699224263, 2349004.9882596200332046 1489541.9173064299393445, 2348980.2695384998805821 1489479.6504641300998628, 2348907.8565663797780871 1489514.8251357700210065, 2349009.3763570399023592 1489810.8385419999249279, 2348931.2276480901055038 1489836.9062225199304521, 2348616.8570989957079291 1490000.0000000000000000, 2350000.0000000000000000 1490000.0000000000000000, 2350001.0000000000000000 1489673.5379561646841466)),
((2348513.9023286257870495 1490000.0000000000000000, 2348551.0426795501261950 1489629.9404302500188351, 2347950.9423539699055254 1488768.7056682100519538, 2347701.5905358898453414 1488337.4487687300425023, 2347624.7384369401261210 1488310.0302828899584711, 2347499.1729842298664153 1488265.0651581101119518, 2347502.5397046101279557 1488242.8735023899935186, 2347521.6533973598852754 1488218.1605436000972986, 2347569.8924814299680293 1488156.0150597000028938, 2347694.8907968699932098 1487994.6547907099593431, 2347653.5779449897818267 1487947.1325197399128228, 2348543.3460486000403762 1487182.0493400199338794, 2348013.1856879801489413 1486291.0932264500297606, 2347256.6836529830470681 1485000.0000000000000000, 2345000.0000000000000000 1485000.0000000000000000, 2345000.0000000000000000 1486224.2831608161795884, 2345083.9256702000275254 1486101.5096448599360883, 2345183.0970447300933301 1486188.2705280799418688, 2345331.7724219402298331 1486561.8534152100328356, 2345316.8952683401294053 1486588.3938146599102765, 2345200.3844798500649631 1486747.5935537801124156, 2345000.0000000000000000 1486303.9886013225186616, 2345000.0000000000000000 1490000.0000000000000000, 2348513.9023286257870495 1490000.0000000000000000),
(2347201.0095643401145935 1489535.2747832599561661, 2347264.5333871799521148 1489565.9454100900329649, 2347223.8374039400368929 1489645.2065054799895734, 2347153.6678731199353933 1489605.7917709499597549, 2347201.0095643401145935 1489535.2747832599561661)),
((2347572.7863241606391966 1485000.0000000000000000, 2348407.4356893599033356 1486442.4005138298962265, 2348538.4335729400627315 1486681.6946907700039446, 2348581.4885673602111638 1486644.2865022399928421, 2348497.7225665301084518 1486404.7074402100406587, 2348459.7195179299451411 1486318.0383337000384927, 2348448.2131743398495018 1485957.4058874400798231, 2348506.7706681001000106 1485883.9986570500768721, 2348472.0240390901453793 1485660.5130987700540572, 2348203.9518477302044630 1485187.3743550300132483, 2348081.8803086061961949 1485000.0000000000000000, 2347572.7863241606391966 1485000.0000000000000000)))
</a>
<test>
<op name="buffer" arg1="A" arg3=" 0.0">POINT(0 0)</op>
</test>
</case>
</run>
<run>
<precisionModel type="FLOATING"/>
<case>
<desc>GEOS 3.0.0_rc4 bufferReducedPrecision</desc>
<a>
MULTIPOLYGON (
((2350001.0000000000000000 1489673.5379561646841466, 2349939.3882785998284817 1489622.4783083000220358, 2349744.2255139001645148 1489564.2840713199693710, 2349714.5727142500691116 1489555.4998093899339437, 2349656.1571633601561189 1489548.4856726101133972, 2349506.3355672401376069 1489530.0346219500061125, 2349451.7939001601189375 1489559.0524864098988473, 2349350.2853812701068819 1489613.4625319899059832, 2349462.3675328497774899 1489926.2343633500859141, 2349330.2864756002090871 1489979.5005766900721937, 2349260.1990413102321327 1489893.8673000501003116, 2349230.8788724797777832 1489867.6174024299252778, 2349166.9456986500881612 1489723.0448318300768733, 2349154.8086357498541474 1489739.3992036799900234, 2349131.1424813498742878 1489770.6534391599707305, 2349099.0351308397948742 1489781.1517036699224263, 2349004.9882596200332046 1489541.9173064299393445, 2348980.2695384998805821 1489479.6504641300998628, 2348907.8565663797780871 1489514.8251357700210065, 2349009.3763570399023592 1489810.8385419999249279, 2348931.2276480901055038 1489836.9062225199304521, 2348616.8570989957079291 1490000.0000000000000000, 2350000.0000000000000000 1490000.0000000000000000, 2350001.0000000000000000 1489673.5379561646841466)),
((2348513.9023286257870495 1490000.0000000000000000, 2348551.0426795501261950 1489629.9404302500188351, 2347950.9423539699055254 1488768.7056682100519538, 2347701.5905358898453414 1488337.4487687300425023, 2347624.7384369401261210 1488310.0302828899584711, 2347499.1729842298664153 1488265.0651581101119518, 2347502.5397046101279557 1488242.8735023899935186, 2347521.6533973598852754 1488218.1605436000972986, 2347569.8924814299680293 1488156.0150597000028938, 2347694.8907968699932098 1487994.6547907099593431, 2347653.5779449897818267 1487947.1325197399128228, 2348543.3460486000403762 1487182.0493400199338794, 2348013.1856879801489413 1486291.0932264500297606, 2347256.6836529830470681 1485000.0000000000000000, 2345000.0000000000000000 1485000.0000000000000000, 2345000.0000000000000000 1486224.2831608161795884, 2345083.9256702000275254 1486101.5096448599360883, 2345183.0970447300933301 1486188.2705280799418688, 2345331.7724219402298331 1486561.8534152100328356, 2345316.8952683401294053 1486588.3938146599102765, 2345200.3844798500649631 1486747.5935537801124156, 2345000.0000000000000000 1486303.9886013225186616, 2345000.0000000000000000 1490000.0000000000000000, 2348513.9023286257870495 1490000.0000000000000000),
(2347201.0095643401145935 1489535.2747832599561661, 2347264.5333871799521148 1489565.9454100900329649, 2347223.8374039400368929 1489645.2065054799895734, 2347153.6678731199353933 1489605.7917709499597549, 2347201.0095643401145935 1489535.2747832599561661))
)
</a>
<test>
<op name="buffer" arg1="A" arg3=" 0.0">POINT(0 0)</op>
</test>
</case>
</run>
_______________________________________________
geos-devel mailing list
geos-devel@geos.refractions.net
http://geos.refractions.net/mailman/listinfo/geos-devel