maj00r
f1a3bde00f
refactor(editor): one declaration per statement (cpp:S1659) and no chained assignments (cpp:S1121) in the editor files of the branch; single statements under if/else/for that became two got braces
2026-10-11 22:28:35 +02:00
maj00r
c5ac698702
refactor(editor): split the track mode into its gizmo, kept records, switch drive, switch slide and track bed files; path geometry shared in editorGeometry instead of four copies of the reversed path, track shape rules (stretching, rolls at joints, middle, switch axis, drive spot) in editor_track, fitting the track to the ground in ground_follow with the terrain query passed in, the record layer and the switch classification in the stores; long gizmo, record watch and switch slide functions broken up, out-parameters replaced by optional results
2026-10-11 22:03:59 +02:00
maj00r
12f7fc879f
feat(editor): a switch on a straight slides along it: drag it with the mouse in the Switch or Path mode (snapping to the joints, km shown) or type the distance in its window; the straight paths on both sides get shorter or longer, the ones it runs over are cut, the next switch or the end of the straight stops it; Replace the geometry with the template does the same with the ends of a longer or shorter type instead of leaving the neighbour overlapping it; a straight neighbour following an end that neither moved off its line nor turned keeps its zero control vectors; self-test commands switchslide, switchreplace, pathsnear; Polish translation
2026-10-11 21:33:28 +02:00
maj00r
3b503ede0c
fix(editor): the route design keeps its whole fragment after Apply: the last path of the line is the one holding the last piece, not the original end path holding the first piece of its group, so a second Apply (e.g. after changing the share of a compound curve) no longer re-lays only the front part and leaves the old tail lying next to the new paths; the same for the curve laid with the straight tool
2026-10-11 21:33:28 +02:00
maj00r
11aa67378d
feat(editor): the drawn tracks kept in the scenery as //$h lines as they are drawn: laying, pulling out of a free end, joining two ends and the parallel track record the whole line they belong to, its straights, arcs and transition curves, with the radii from the chord and the turn of the arcs and the transitions from the turn they make, in the same undo step; the curves read in the route window and the Curve tab are what the paths are, no transitions or cant made up for them; a curve ends at the point of reverse; a parallel arc is concentric with its source; the paths laid in pieces of up to 90 degrees match the kept design within their own approximation; 'Keep the line as it lies' for lines drawn before; self-test commands digitize and parallel; Polish translation
2026-10-11 21:33:28 +02:00
maj00r
b466755a0f
feat(editor): single slip (Rkp 1:9 R190/R300) joining the pair of tracks on the side of the click, and crossing (Skrz 1:9, 1:12) of two straights, placed as the double slip is, at a crossing of two straights, and kept in the scenery as //$r records with their parts; the list of the slip switches and crossings; Polish translation
2026-10-11 21:33:27 +02:00
maj00r
0bfb8a4e7c
feat(editor): switches kept in the scenery as //$r lines: type (Rz, arc Rlj/Rld, slip Rkpd), rail, R, 1:n, side, a, b, R of the main track, the parts of a slip, km and number, catalogue or measured; recorded as they are placed on a straight, in a curve (one-sided when diverging to the side the curve turns to), as a double slip, and when their geometry is replaced or flipped; the switch panel shows the kept type and the R of the diverging track bent with the main one, with the number, rail and km to edit (km from the kept horizontal alignment); the speed check of a diverging track takes its R from the kept type; records follow renamed switches and go with removed ones on save; editor records stay out of the terrain files (.txtf), and those written there by hand go with them into .btf; the side of the diverging track shown as seen; self-test commands for placing switches, the kept switches and the .btf conversion; Polish translation
2026-10-11 21:33:27 +02:00
maj00r
572daeb274
feat(editor): the horizontal alignment designed in the route design kept in the scenery as //$h lines: its vertices and the elements they make (straight, transition, arc, with the radius at the start and the end and the cant), so the paths laid by it are known again without guessing from their curvature; a curve read from the paths takes the radius, the transitions, the cant and the compound arcs of the kept design when its paths lie on it within 2 cm, the other way round too; the whole line design taken back when the fragment has its ends; a curve redesigned alone taken into the line it belongs to; km of the start kept with the design and carried on to the vertical profile of the same paths; paths which no longer follow the kept design shown in the route window, with the kept design to take or to forget; self-test commands for the route design and the kept alignments; Polish translation
2026-10-11 21:33:27 +02:00
maj00r
c722e4e419
fix(editor): the gizmo keeps the diverging path of a switch on the surface of its main path
...
The diverging path p3-p4 takes its heights, grades at the ends and cant from the main path p1-p2 (the cone of
its cant) after every gizmo change: grade and cant rings, moving an end and editing a control vector. The tracks
joined to it follow its ends and grades. The grade ring measures along the main path and the gizmo stands in its
middle; the start vector of the diverging path slides along the main one and turns with it.
2026-10-11 21:33:27 +02:00
maj00r
a756beb34b
feat(editor): track gizmo rings along the track: direction, grade and cant
...
The rotate gizmo stands along the track. The cross ring changes the grade about the middle or the selected
end, the joined tracks take the grade at the joints; the ring along the track changes the cant of the track
or of the selected end, the joined tracks take it at the joints and ramp it. On a control vector the cross
ring tilts it up or down. Ctrl steps by 5 degrees, 1 per mille, 5 mm.
2026-10-11 21:33:27 +02:00
maj00r
89678ead3e
feat(editor): track gizmo turns, lengthens and edits the control vectors, joined tracks keep the tangent
...
W turns the track (about its middle or the selected end) and a selection of tracks, the joined tracks follow.
E lengthens the track at its free end: a straight stays straight, an arc keeps its radius, cant and grade.
The gizmo on a control point moves, turns or lengthens the vector; the control point of the track joined
there turns with it, at a switch the vector only slides along the switch. Straight neighbours dragged along
keep their tangents and become straight again when nothing bent them.
2026-10-11 21:33:27 +02:00
9935257783
Add nosonar tags
2026-10-09 18:40:31 +02:00
maj00r
a5ade3258f
fix(editor): a curve with a switch in it read as one curve through the main track of the switch, the switch placed into a curve on the part around the click; the diverging path of a switch placed into a canted curve lies on the conical surface of the cant along its whole length, not only at its ends; platforms by a switch keep the cant of the track for their height, the gauge of the other path only sets them back
2026-10-08 01:39:35 +02:00
maj00r
ca208b3ed1
fix(editor): a long arc of a larger radius kept as a part of a compound curve, only short arcs of growing radius taken for the transition curve of an old scenery
2026-10-08 00:51:29 +02:00
maj00r
24923dd472
feat(editor): track editor driven by what the cursor is over: the outline and a label show what a click or a drag does, snapping to free ends on the screen, handles and ends dragged directly, no rotation gizmo; laying from a free end the same in every mode, straight with Shift, the curve of a switch going on past its diverging end; height 0 where there's no terrain; placed switch leaves the switch mode, double slips listed apart, a drive of the switch placed with it by the //$e switch description of its template; compound curves of any number of radii; dragged end of a straight fits the curve beside it; name of a path, followed by the memory cells and the includes taking it; turntable placed from a template described as one, tracks led out of it and the tracks around fitted to it, its positions written to the include; infrastructure bound to the path whose events read its memory cell; terrain made where the route has none and shaped to the formation under the ballast; models along the track over the selected path and on along the joined ones while dragged, rarely used settings folded; vehicles and trainsets placed on any path, switches included, facing the way the arrow shows; joined paths spread into the selection; New scenery in the File menu starts the editor again with the wizard; ortho zoom towards the cursor; scripted self tests; Polish translation
2026-10-06 22:19:54 +02:00
maj00r
b07050fa52
feat(tracks): switches keep their neighbours joined on replacing, flipping and moving; events copied on splitting; circuits, overhead line, sleepers and events of the paths; curve design through the switches of a line; changes in files included more than once or with parameters reported instead of written; split of a straight at the point found, not a share of its length
2026-10-05 01:21:11 +02:00
012ffc7470
Merge branch 'feat/modern-editor' of https://github.com/MaSzyna-EU07/maszyna into feat/modern-editor
2026-10-04 21:58:19 +02:00
maj00r
9bd8226c51
Fix the GCC 13 and MSVC builds: no brace-initialised reference from reference_wrapper, no near/far names
2026-10-04 02:49:05 +02:00
maj00r
b0c363b586
feat: structure gauge along the line of the selected path in the OpenGL view
2026-10-04 01:27:41 +02:00
maj00r
9cd0f0b1a7
refactor(editor): shared writers of the path definitions
2026-10-04 00:39:30 +02:00
maj00r
c85a52d5b1
refactor(editor): track observer instead of the function hooks
2026-10-04 00:37:26 +02:00
maj00r
7b8d809078
refactor(editor): drop unused editor state and vertical leftovers of the route design
2026-10-04 00:35:40 +02:00
maj00r
e5c91d8a1a
refactor(editor): shared plan geometry and formatting helpers
2026-10-04 00:33:44 +02:00
maj00r
8778353b22
feat(editor): infrastructure bound to the paths follows their changes
2026-10-04 00:14:03 +02:00
maj00r
7371b18910
feat(editor): vertical profile editor, grade lines kept in the scenery
2026-10-04 00:14:03 +02:00
maj00r
cdd5c242d1
feat(editor): curves take over the adjoining straights
2026-10-04 00:14:03 +02:00
2f417fddcc
feat(roads): road node with generated lanes, surface and markings
2026-10-03 17:35:08 +02:00
maj00r
676bf39136
feat(editor): track editor saves changed paths to scenery
2026-10-03 02:41:35 +02:00
maj00r
7825b92190
feat(editor): add R500 double slip
2026-10-03 02:41:35 +02:00
maj00r
4d060f166e
feat(editor): add R300 double slip
2026-10-03 02:41:34 +02:00
maj00r
55fd0c74bd
feat(editor): insert double slip at crossing
2026-10-03 02:41:34 +02:00
maj00r
a9e63e9496
fix(editor): fix: zero-vector curves detection
2026-10-03 02:41:34 +02:00
maj00r
de5f2069f7
feat(editor): dragging straight refits neighbor curves
2026-10-03 02:41:34 +02:00
maj00r
bf24c3983a
feat(editor): no sub-metre straights, switches snap, K splits path
2026-10-03 02:41:34 +02:00
maj00r
8a50d352fb
feat(editor): shift with 4 points, single path curves, undo
2026-10-03 02:41:34 +02:00
maj00r
a5955f322e
feat(editor): context editor for geometry, paths behind switches, switch textures
2026-10-03 02:41:34 +02:00
maj00r
40422aec30
feat(editor): compound curves with dual radii and transition
2026-10-03 02:41:34 +02:00
maj00r
1985758a86
feat(editor): insert switches by dragging, paths from free ends
2026-10-03 02:41:34 +02:00
maj00r
32798a32bb
feat(editor): switch templates, auto distances with snapping
2026-10-03 02:41:34 +02:00
maj00r
a392364f06
feat(editor): curves over 180°, click to load curve
2026-10-03 02:41:34 +02:00
maj00r
b986cc8990
feat(editor): move straights keeping parallel
2026-10-03 02:41:34 +02:00
maj00r
9198840d0f
feat(editor): straights include switches, drag to edit
2026-10-03 02:41:34 +02:00
maj00r
b19f3de0d4
feat(editor): recognize collinear straights, measure
2026-10-03 02:41:34 +02:00
maj00r
7ede96df5f
chore(editor): cleanup comments
2026-10-03 02:41:34 +02:00
maj00r
8f2a34b3cf
feat(editor): route design with curves and transitions
2026-10-03 02:41:34 +02:00
maj00r
b93c5dde60
feat(editor): edit tracks loaded from the scenery
2026-10-03 02:41:34 +02:00