mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-11-09 02:50:59 +01:00
Sieć trakcyjna: kotwienia, kotwienie środkowe, parasole i wysięgniki rozstawione, konsole 4890/4690
Sam kod exe z gałęzi siec-trakcyjna od poprzedniego commita (bez testów, notatek i danych z tests/catenary). Dane (data/traction_*.txt) leżą poza repozytorium. - kotwienia ciężarowe i stałe (0404/0405, przewody zakotwione osobno, sieci bez własnych danych: network <symbol> as <kod>) - kotwienie środkowe 0406/0408/0418/0416: lina, V i zaciski na linie nośnej liczonej jak przęsło, obejma 4160 na teownikach - parasole i wysięgniki rozstawione na konsolach 4890, wysięgi pomocnicze 0167 na belkach 4690, trzeci wysięgnik w osi słupa, lina nośna z innego wysięgnika (messenger_from) - przęsła w nietypowych sytuacjach nie przechodzą na stary wygląd (bez Y, bez wieszaków, lina nad przewodem) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GfTogWDsfCE8RGFGvm2eyp
This commit is contained in:
@@ -140,6 +140,9 @@ TTraction::Load( cParser *parser, glm::dvec3 const &pOrigin ) {
|
||||
|
||||
std::string token { parser->getToken<std::string>() };
|
||||
std::string catenarytype;
|
||||
double catenarytension[ 2 ] { 0.0, 0.0 };
|
||||
glm::dvec3 catenaryrope2[ 2 ];
|
||||
bool catenaryrope2set[ 2 ] { false, false };
|
||||
while( false == token.empty()
|
||||
&& token != "endtraction" ) {
|
||||
|
||||
@@ -152,11 +155,24 @@ TTraction::Load( cParser *parser, glm::dvec3 const &pOrigin ) {
|
||||
// symbol typu sieci, np. YwsC120-2C; starsze wersje symulatora pomijają ten dopisek
|
||||
catenarytype = parser->getToken<std::string>( false );
|
||||
}
|
||||
else if( token == "rope2" ) {
|
||||
// koniec drugiej liny nośnej przy kotwieniu: "rope2 start|end x y z"
|
||||
auto const which { parser->getToken<std::string>() };
|
||||
auto const point { LoadPoint( *parser ) + pOrigin };
|
||||
auto const end { which == "end" ? 1 : 0 };
|
||||
catenaryrope2[ end ] = point;
|
||||
catenaryrope2set[ end ] = true;
|
||||
}
|
||||
else if( token == "tension" ) {
|
||||
// naciąg liny nośnej i przewodów jezdnych w daN inny niż w typie sieci (brakujące ciężary w kotwieniu)
|
||||
parser->getTokens( 2 );
|
||||
*parser >> catenarytension[ 0 ] >> catenarytension[ 1 ];
|
||||
}
|
||||
token = parser->getToken<std::string>();
|
||||
}
|
||||
|
||||
Init(); // przeliczenie parametrów
|
||||
catenary_span_assign( *this, catenarytype );
|
||||
catenary_span_assign( *this, catenarytype, catenarytension[ 0 ], catenarytension[ 1 ], catenaryrope2, catenaryrope2set );
|
||||
|
||||
// calculate traction location
|
||||
location( glm::mix( pPoint2, pPoint1, 0.5 ) );
|
||||
|
||||
Reference in New Issue
Block a user