mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-11-01 01:09:04 +01:00
feat(editor): the plan shows which curve is edited: each named W1, W2... as its vertex is in the view, with its km and "Show in the view", which flies the camera over it; the part of it whose field the mouse is over or which is being edited (the whole curve, an arc of a compound one, the transition in, out or between two arcs) lit up in the view and named there with its radius, cant or length. The points clicked when a line is laid are kept with its design in the scenery ("click" lines, moved with it): the plan shows them in the colours of their departure and, while "Keep to the points clicked" is on, fits the radii of a curve whose transitions or cants are changed again to them, its transitions and cants as set; "Transitions for these cants" makes the transitions as long as the norms ask for at the radii and the cants set, an arc of a compound curve with no cant lengthening the ones either side of it. Unit test: 50 m between the arcs become 85 m, the curve 4 cm off the points clicked instead of 58
This commit is contained in:
@@ -230,6 +230,9 @@ struct trace_fit
|
||||
// the radii of the curve of the vertex and their shares which follow the points traced along the track best; the tangents, the
|
||||
// transitions and the cant stay. Radii 0 takes the fewest radii, up to three, which follow the points about as well as more would
|
||||
trace_fit fit_trace(design const &Design, std::size_t const Vertex, std::vector<glm::dvec2> const &Points, int const Radii);
|
||||
// the radii of the curve of the vertex and their shares fitted again to the points, as many radii as it has; its transitions, the
|
||||
// ones between the arcs too, and its cants kept: a curve whose transitions were lengthened keeps to the points it was laid through
|
||||
trace_fit refit_radii(design const &Design, std::size_t const Vertex, std::vector<glm::dvec2> const &Points);
|
||||
|
||||
std::size_t minimum_pieces(result const &Result, design const &Design);
|
||||
// Breaks: ascending chainages at which pieces have to end. Counts: least number of the pieces between the consecutive breaks,
|
||||
@@ -333,8 +336,11 @@ struct lay_result
|
||||
|
||||
std::optional<lay_result> lay_on(lay_request const &Request);
|
||||
|
||||
// the transitions between the arcs of a compound curve which the norms ask for at the speed, the cant of the vertex on its sharpest arc
|
||||
// the transitions between the arcs of a compound curve which the norms ask for at the speed and at the cants of the arcs
|
||||
void recommend_between(vertex &Vertex, double const Speed, limits const &Limits);
|
||||
// all the transitions of the vertex as long as the norms ask for at its radii and its cants, the cants kept: a cant lowered
|
||||
// lengthens them, the acceleration across left changing more along them
|
||||
void norm_transitions(vertex &Vertex, double const Speed, limits const &Limits);
|
||||
|
||||
// the length of each of the two transition curves of a vertex with spirals, meeting at the curvature of the radius
|
||||
double spirals_length(transition_shape const Shape, double const Deflection, double const Radius);
|
||||
|
||||
Reference in New Issue
Block a user