Home » railML newsgroups » railML.infrastructure » internal connections
internal connections [message #129] Tue, 16 November 2004 16:24
Matthias Hengartner is currently offline  Matthias Hengartner
Messages: 57
Registered: August 2003
Member
Hello,

Daniel Hürlimann asked me about the possibility to split a track in a
visualisation:


begin of Track1 ||------------------------------------< [con1a1]
begin of Track2 ||------------------------------------< [con2a1]

[con1a2] >------------------------------------------< [con1b1]
[con2a2] >------------------------------------------< [con2b1]

[con1b2] >---------------------------------------|| end of Track1
[con2b2] >---------------------------------------|| end of Track2


In this outline, you can see a corridor (without any trackelements) of 2
tracks, which are each splitted into 3 parts.
The splitting is only for visualisation purposes (e.g. to show a corridor in
a compact way, or to disentangle visually a complicated topology) and has no
reference to reality.
[con1a1] is "connected" with [con1a2] etc. ("connected" means, that [con1a1]
has exactly the same position on Track1 as [con1a2], they have only
different visualisation coordinates).


After some first considerations, I see two different possibilities to
implement this (shortly outlined):

(1)
We use the existing schema with the <simpleConnection>-elements of
<trackBegin>/<trackEnd>. For Track1 in the example above, we have 3 tracks
(1A, 1B, 1C), and each of them have the same "trackID" (and the same for
Track2).
[con1a1] is the <trackEnd> of 1A and is connected to [con1a2], which is the
<trackBegin> of 1B (and so on).
Given the whole Track1 is e.g. 3 kilometers, and the 3 parts each are
equally long, we have [con1a1] AND [con1a2] at position 1.000 (kilometer),
and [con1b1] AND [con1b2] at position 2.000.

Here an extract of the appropriate sourcecode:

<tracks>
<track trackID="Track1">
<trackTopology>
<trackBegin>
<bufferStop pos="0.000"/>
</trackBegin>
<trackEnd>
<simpleConnection pos="1.000">
<connection connectionID="con1a1" branchIDRef="con1a2"/>
</simpleConnection>
</trackEnd>
</trackTopology>
</track>
<track trackID="Track1">
<trackTopology>
<trackBegin>
<simpleConnection pos="1.000">
<connection connectionID="con1a2" branchIDRef="con1a1"/>
</simpleConnection>
</trackBegin>
<trackEnd>
<simpleConnection pos="2.000">
<connection connectionID="con1b1" branchIDRef="con1b2"/>
</simpleConnection>
</trackEnd>
</trackTopology>
</track>
<track trackID="Track1">
<trackTopology>
<trackBegin>
<simpleConnection pos="2.000">
<connection connectionID="con1b2" branchIDRef="con1b1"/>
</simpleConnection>
</trackBegin>
<trackEnd>
<bufferStop pos="3.000"/>
</trackEnd>
</trackTopology>
</track>
</tracks>

[We propably should introduce an additional ID for each <track> (which
represents only a part of a track), which is unique (within the
line/infrastructure). In our case, we have 1A, 1B, 1C]


(2)
Another possibility is to introduce a new trackElement, e.g.
<internalConnection> or <trackSplitPoint> (or to allow <simpleConnection>
not only on the beginning and end of a track).

(2a) In this case, we have 4 <internalConnection>-elements. Each of them has
different visualisation coordinates. There are 2 pairs of them, which have
the same position on the track and refer to each other (this reference is
not absolutly necessary).

<track trackID="Track1">
<trackTopology>
<trackBegin>
<bufferStop pos="0.000"/>
</trackBegin>
<internalConnection pos="1.000" elementID="con1a1" IDRef="con1a2"/>
<internalConnection pos="1.000" elementID="con1a2" IDRef="con1a1"/>
<internalConnection pos="2.000" elementID="con1b1" IDRef="con1b2"/>
<internalConnection pos="2.000" elementID="con1b2" IDRef="con1b1"/>
<trackEnd>
<simpleConnection pos="3.000">
<connection connectionID="con1a1" branchIDRef="con1a2"/>
</simpleConnection>
</trackEnd>
</trackTopology>
</track>


(2b) In this case, we have only 2 <trackSplitPoints>. Each of them has 2
elementIDs. So in the visualisation part, we can refer twice to each
<trackSplitPoint> (and give them 2 visualisation points for each).

<track trackID="Track1">
<trackTopology>
<trackBegin>
<bufferStop pos="0.000"/>
</trackBegin>
<trackSplitPoint pos="1.000" elementID1="con1a1"
elementID2="con1a2"/>
<trackSplitPoint pos="2.000" elementID1="con1b1"
elementID2="con1b2"/>
<trackEnd>
<simpleConnection pos="3.000">
<connection connectionID="con1a1" branchIDRef="con1a2"/>
</simpleConnection>
</trackEnd>
</trackTopology>
</track>



What do you think about these ideas?

I'll tell you about another application of such internal connections in
another posting.

Please ask, critisize and discuss!


Best regartds
Matthias Hengartner


--
****************************
Matthias Hengartner
IVT ETH Zürich
hengartner(at)ivtbaugethzch
++ 41 1 633 68 16
****************************
Previous Topic: schema for Balises
Next Topic: crossings and internal connections
Goto Forum:
  


Current Time: Sat Apr 20 05:54:50 CEST 2024