[postgis-users] Bug? Strange code in lwline_crossing_direction()

Kohei KaiGai kaigai at heterodb.com
Sun Apr 19 21:42:04 PDT 2020


Hello Darafei,

It looks to me the first_cross should be SEG_CROSS_RIGHT, not
SEG_CROSS_LEFT here.
If it is expected, L574 shall never become true. Right?

| at L526:
| if ( this_cross == SEG_CROSS_RIGHT )
| {
|     LWDEBUG(4,"this_cross == SEG_CROSS_RIGHT");
|     cross_right++;
|     if ( ! first_cross )
|         first_cross = SEG_CROSS_LEFT;
| }

Thanks,

2020年4月19日(日) 23:31 Darafei "Komяpa" Praliaskouski <me at komzpa.net>:
>
> Hi,
>
> the link you have is setting variable this_cross, and L526 sets
> first_cross from it if it was not set and there is LEFT or RIGHT cross
> (not no-cross and not COLLINEAR). Looks expected to me.
>
> On Sat, Apr 18, 2020 at 6:32 PM Kohei KaiGai <kaigai at heterodb.com> wrote:
> >
> > Hello,
> >
> > I noticed a strange code at liblwgeom/lwalgorithm.c
> > https://github.com/postgis/postgis/blob/master/liblwgeom/lwalgorithm.c#L509
> >
> > lwline_crossing_direction() is the main logic of ST_LineCrossingDirection.
> > It walks on all the edges of the supplied geometry (line), and calls
> > lw_segment_intersects to check intersections.
> >
> > It looks to me the local variable 'first_cross' is used to remember the first
> > result from the lw_segment_intersects, however, it saves different value
> > on the second if-block at L526.
> >
> > Is it expected? Or, just mistake by copy & paste?
> >
> > Best regards,
> > --
> > HeteroDB, Inc / The PG-Strom Project
> > KaiGai Kohei <kaigai at heterodb.com>
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users at lists.osgeo.org
> > https://lists.osgeo.org/mailman/listinfo/postgis-users
>
>
>
> --
> Darafei Praliaskouski
> Support me: http://patreon.com/komzpa
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users



-- 
HeteroDB, Inc / The PG-Strom Project
KaiGai Kohei <kaigai at heterodb.com>


More information about the postgis-users mailing list