mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-11-02 06:59:13 +01:00
feat(editor): the whole-scenery grade fit keeps the tracks a station shares at one height, lets the switches lie on the vertical curves the regulation allows, runs straight through the double slips and leaves the bridges out of the faults
A switch may lie on a concave vertical curve, and on a convex one no sharper than 2000 m (Dz.U. 2026 poz. 1225 § 58 ust. 16): the fit bends over the switches and their shared timbers where the ground does, a curve on a switch is a warning, and only a sharper convex one an error. A sharp crest of a hump keeps its curve off the switch zones. The zone of a crossing reaches only as far as the path crossed has rails, so the middle of a double slip keeps to itself. A line runs through a switch along its main path, and through the quarters of a double slip straight on, so the long lines go through the slips and the connections between them are fitted after. Rails of the lines fitted already nearer than a sleeper is long are taken at their height, as both lie on the same timbers. A short line between two lines whose end grades can't be joined within the norms keeps only the heights of its ends, and the grade breaks at the joints. The norms speed of a line is the one most of its length is laid for, so a few tracks set much faster don't stiffen the curves of all of it. The fault finder leaves out the places over the terrain model on a bridge or a viaduct, the ground falling away under them by the abutments. A formation modifier may be open at its start or end.
This commit is contained in:
@@ -377,6 +377,9 @@ class editor_track
|
||||
// continues both ways from the path, through switches along their path 0
|
||||
static route run_route(TTrack &Track, double const Maximum);
|
||||
static route route_of(chain const &Chain);
|
||||
// the speed most of the sampled route is laid for, by the length: a few tracks set faster or slower don't set the curves of
|
||||
// all of it. 100 where none is set
|
||||
static double route_speed(route const &Route);
|
||||
struct route_sample
|
||||
{
|
||||
double chainage{0.0};
|
||||
@@ -394,6 +397,14 @@ class editor_track
|
||||
// grade of the path which adjoins the end of the route, positive rising along the route
|
||||
// Adjoining, Path, Entered: the path met, and whether it's met at its start
|
||||
static bool adjoining_grade(route const &Route, bool const Atend, double &Grade, TTrack **Adjoining = nullptr, int *Path = nullptr, bool *Entered = nullptr);
|
||||
// the paths which go on from the end of the span the way it runs, both of a switch met at its start, with their grade there,
|
||||
// positive rising onward
|
||||
struct continuation
|
||||
{
|
||||
route_span span;
|
||||
double grade{0.0};
|
||||
};
|
||||
static std::vector<continuation> continuations(route_span const &Span);
|
||||
// path off the route whose end no longer met the adjoining path in height
|
||||
struct height_gap
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user