17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-30 23:40:29 +01:00

fix(editor): a point taken out of a grade line leaves its neighbours with the radius of the limits, and paths meeting at a sharp break keep their own grades

The points of a grade line read from the tracks keep the radius measured there; once a point between them was taken out, the
breaks of its neighbours changed while their radii stayed, so a break without a curve read as 0.4 per mille became one of
9 per mille with no curve, and the tracks took it as a kink. The neighbours of the point taken out follow the limits now,
with the button, Del and the self-test alike (profile_remove_point).

Applying a line with a break without a curve gave the path which ends at the break the grade of the element after it, so
its Hermite heights bowed 0.12 m off the line over 100 m before the break; each path takes the grade on its own side now.

Self-test commands vprofilerun, vprofiledel and vprofileput.
This commit is contained in:
maj00r
2026-10-21 17:25:17 +02:00
parent d2d06817bc
commit e86a536a9d
4 changed files with 78 additions and 10 deletions

View File

@@ -2179,6 +2179,8 @@ class editor_mode : public application_mode, private editor_track::observer, pri
void profile_forget();
void profile_open_stored(std::size_t const Index);
void profile_edited();
// the radii of its neighbours were for the breaks of the grade it made, they follow the limits after it
void profile_remove_point(int const Index);
void render_profile_body();
void render_profile_strip();
void render_profile_header();