mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-11-02 09:19:12 +01:00
The library was a heap of half-built services - fitting, parallelism, niwelety, an SVG writer - that never met each other. In their place is one authored Document and one solver that lays it whole: tracks as element chains, turnouts placed on them, and a Solution that is rebuilt from scratch every time and never fed back into the document. What cannot be laid comes back as a diagnostic with the number in it rather than as silence or a fitted-away error. Turnouts are dimensioned the way the drawings dimension them. The blade follows Koc's rys. 5.9 - the curve is theoretically tangent to the opornica at PR, the blade starts at a with a planed nose of d, and A is where the rail stands u thick - and a + d derived that way lands on his tablica 5.1. Bending follows 5.3.6: it rotates the triangle OBC about the centre of the turnout, so the tangent t and the crossing angle stand and both radii follow from them. That is Koc's (5.7) and (5.8) without coding either, and it puts a symmetrically bent Rz 49E1-190-1:9 on the catalogue's Rlus 49E1-380,292-1:9. A rozjazd standing on a curve is bent onto it; one on a track drawn straight can carry a bend of its own. The szyny laczace take up the difference, because the switch and the frog are only bent, not re-cut. The plan panel draws all of it: the catalogue drawing of a type with its construction points, the theoretical arc dashed where no rail runs, and the blade nose as the straight it is cut as. Dragging a straight now stops where it would pull the track out from under a turnout. File format goes to m0s 6. Versions 3 to 5 still open.
36 lines
1.8 KiB
CMake
36 lines
1.8 KiB
CMake
add_executable(maj0sted_test_chain test_chain.cpp)
|
|
target_link_libraries(maj0sted_test_chain PRIVATE maj0sted::maj0sted)
|
|
target_include_directories(maj0sted_test_chain PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_test(NAME chain COMMAND maj0sted_test_chain)
|
|
|
|
add_executable(maj0sted_test_hold test_hold.cpp)
|
|
target_link_libraries(maj0sted_test_hold PRIVATE maj0sted::maj0sted)
|
|
target_include_directories(maj0sted_test_hold PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_test(NAME hold COMMAND maj0sted_test_hold)
|
|
|
|
add_executable(maj0sted_test_lines test_lines.cpp)
|
|
target_link_libraries(maj0sted_test_lines PRIVATE maj0sted::maj0sted)
|
|
target_include_directories(maj0sted_test_lines PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_test(NAME lines COMMAND maj0sted_test_lines)
|
|
|
|
add_executable(maj0sted_test_graph test_graph.cpp)
|
|
target_link_libraries(maj0sted_test_graph PRIVATE maj0sted::maj0sted)
|
|
target_include_directories(maj0sted_test_graph PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_test(NAME graph COMMAND maj0sted_test_graph)
|
|
|
|
add_executable(maj0sted_test_format test_format.cpp)
|
|
target_link_libraries(maj0sted_test_format PRIVATE maj0sted::maj0sted)
|
|
target_include_directories(maj0sted_test_format PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_test(NAME format COMMAND maj0sted_test_format)
|
|
|
|
add_executable(maj0sted_test_turnout test_turnout.cpp)
|
|
target_link_libraries(maj0sted_test_turnout PRIVATE maj0sted::maj0sted)
|
|
target_include_directories(maj0sted_test_turnout PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_test(NAME turnout COMMAND maj0sted_test_turnout)
|
|
|
|
add_executable(maj0sted_test_tile_cache test_tile_cache.cpp)
|
|
target_link_libraries(maj0sted_test_tile_cache PRIVATE maj0sted::maj0sted)
|
|
target_include_directories(maj0sted_test_tile_cache PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
add_test(NAME tile_cache COMMAND maj0sted_test_tile_cache)
|
|
|