prochitecture / blosm

GNU General Public License v3.0
11 stars 3 forks source link

[Question] Meaning of leftHead, leftTail, rightHead, rightTail #108

Closed vvoovv closed 2 months ago

vvoovv commented 2 months ago

All of them are set with some values. What is the meaning of them?

polarkernel commented 2 months ago

All of them are set with some values. What is the meaning of them?

These hold the linked lists of IntConnectors of an Intersection that has been transformed into a minor one (isMinor=True). The references to the tails make it easy to insert connectors at the ends of the lists. The lists can be iterated with the static method iterate_from() of Intersection:

        for connector in Intersection.iterate_from(item.leftHead):
            ...

See also this illustration:

vvoovv commented 2 months ago

I guess pred=mis1 for the Section s2.

vvoovv commented 2 months ago

Basically, leftHead, leftTail, rightHead, rightTail are needed for multiple minor Streets connected to a minor Intersection. Typically only one minor Street is connected either to the left or to the right.

Consider the case of multiple minor Streets connected both to the left and to the right. Which minor Street is the tail and which one is the head?

polarkernel commented 2 months ago

Consider the case of multiple minor Streets connected both to the left and to the right. Which minor Street is the tail and which one is the head?

The major street arrives at pred and leaves at succ. This gives its direction. The minor streets are arranged in counterclockwise order, the ones to the left of the major street in the list are given by leftHead and those to the right by rightHead. The terms head and tail are used only for the lists, e.g. leftHead is the start of the list containing the left side minor streets and leftTail is the end of this list.

It is in principle the same order as for Intersections, just split into two parts and the major streets excluded. I thought like this a similar algorithm can be used to construct these intersections, as for the normal ones.