From 623c4f827e670f1a5b916cefaf326c22bc4efc29 Mon Sep 17 00:00:00 2001 From: docentYT <63965954+docentYT@users.noreply.github.com> Date: Tue, 28 Apr 2026 00:51:17 +0200 Subject: [PATCH] Remove not needed casts, variables and switch from double precission to float precission for some angle vectors --- audio/audiorenderer.cpp | 2 +- audio/sound.cpp | 2 +- model/AnimModel.cpp | 10 +++++----- model/AnimModel.h | 6 +++--- rendering/opengl33renderer.cpp | 18 ++++++++---------- rendering/openglrenderer.cpp | 4 ++-- rendering/particles.cpp | 2 +- utilities/Globals.h | 2 +- vehicle/Camera.cpp | 17 +++++++---------- vehicle/Camera.h | 4 ++-- vehicle/DynObj.cpp | 12 ++++++------ vehicle/DynObj.h | 8 ++++---- world/Segment.cpp | 2 +- world/Segment.h | 2 +- world/TrkFoll.h | 2 +- 15 files changed, 44 insertions(+), 49 deletions(-) diff --git a/audio/audiorenderer.cpp b/audio/audiorenderer.cpp index 6c60ebff..19ced6bb 100644 --- a/audio/audiorenderer.cpp +++ b/audio/audiorenderer.cpp @@ -387,7 +387,7 @@ openal_renderer::update( double const Deltatime ) { ::alListenerfv( AL_ORIENTATION, reinterpret_cast( orientation ) ); // velocity if( Deltatime > 0 ) { - auto cameramove { glm::dvec3{ cameraposition - cached_camerapos} }; + auto cameramove { cameraposition - cached_camerapos }; cached_camerapos = cameraposition; // intercept sudden user-induced camera jumps... // ...from free fly mode change diff --git a/audio/sound.cpp b/audio/sound.cpp index 715da729..98e25a20 100644 --- a/audio/sound.cpp +++ b/audio/sound.cpp @@ -363,7 +363,7 @@ sound_source::play( int const Flags ) { if( m_range != -1 ) { auto const cutoffrange { std::abs( m_range * 5 ) }; - if( glm::length2( location() - glm::dvec3 { Global.pCamera.Pos } ) > std::min( 2750.f * 2750.f, cutoffrange * cutoffrange ) ) { + if( glm::length2( location() - Global.pCamera.Pos ) > std::min( 2750.f * 2750.f, cutoffrange * cutoffrange ) ) { // while we drop sounds from beyond sensible and/or audible range // we act as if it was activated normally, meaning no need to include the opening bookend in subsequent calls m_playbeginning = false; diff --git a/model/AnimModel.cpp b/model/AnimModel.cpp index 78e2eda5..28f81ca9 100644 --- a/model/AnimModel.cpp +++ b/model/AnimModel.cpp @@ -29,11 +29,11 @@ std::list> TAnimModel::acAnimList; TAnimContainer::TAnimContainer() { - vRotateAngles = glm::dvec3(0.0f, 0.0f, 0.0f); // aktualne kąty obrotu - vDesiredAngles = glm::dvec3(0.0f, 0.0f, 0.0f); // docelowe kąty obrotu + vRotateAngles = glm::vec3(0.0f, 0.0f, 0.0f); // aktualne kąty obrotu + vDesiredAngles = glm::vec3(0.0f, 0.0f, 0.0f); // docelowe kąty obrotu fRotateSpeed = 0.0; - vTranslation = glm::dvec3(0.0f, 0.0f, 0.0f); // aktualne przesunięcie - vTranslateTo = glm::dvec3(0.0f, 0.0f, 0.0f); // docelowe przesunięcie + vTranslation = glm::dvec3(0.0, 0.0, 0.0); // aktualne przesunięcie + vTranslateTo = glm::dvec3(0.0, 0.0, 0.0); // docelowe przesunięcie fTranslateSpeed = 0.0; fAngleSpeed = 0.0; pSubModel = NULL; @@ -48,7 +48,7 @@ bool TAnimContainer::Init(TSubModel *pNewSubModel) return (pSubModel != NULL); } -void TAnimContainer::SetRotateAnim(glm::dvec3 vNewRotateAngles, double fNewRotateSpeed) +void TAnimContainer::SetRotateAnim(glm::vec3 vNewRotateAngles, double fNewRotateSpeed) { vDesiredAngles = vNewRotateAngles; fRotateSpeed = fNewRotateSpeed; diff --git a/model/AnimModel.h b/model/AnimModel.h index e708daa0..2d470e67 100644 --- a/model/AnimModel.h +++ b/model/AnimModel.h @@ -51,8 +51,8 @@ class TAnimContainer : std::enable_shared_from_this friend TAnimModel; private: - glm::dvec3 vRotateAngles; // dla obrotów Eulera - glm::dvec3 vDesiredAngles; + glm::vec3 vRotateAngles; // dla obrotów Eulera + glm::vec3 vDesiredAngles; double fRotateSpeed; glm::dvec3 vTranslation; glm::dvec3 vTranslateTo; @@ -81,7 +81,7 @@ class TAnimContainer : std::enable_shared_from_this inline std::string NameGet() { return (pSubModel ? pSubModel->pName : ""); }; - void SetRotateAnim( glm::dvec3 vNewRotateAngles, double fNewRotateSpeed); + void SetRotateAnim( glm::vec3 vNewRotateAngles, double fNewRotateSpeed); void SetTranslateAnim( glm::dvec3 vNewTranslate, double fNewSpeed); void AnimSetVMD(double fNewSpeed); void PrepareModel(); diff --git a/rendering/opengl33renderer.cpp b/rendering/opengl33renderer.cpp index be59d298..3ec1770d 100644 --- a/rendering/opengl33renderer.cpp +++ b/rendering/opengl33renderer.cpp @@ -3106,17 +3106,16 @@ bool opengl33_renderer::Render(TModel3d *Model, material_data const *Material, f return true; } -bool opengl33_renderer::Render(TModel3d *Model, material_data const *Material, float const Squaredistance, glm::dvec3 const &Position, glm::vec3 const &A) +bool opengl33_renderer::Render(TModel3d *Model, material_data const *Material, float const Squaredistance, glm::dvec3 const &Position, glm::vec3 const &Angle) { - glm::dvec3 Angle(A); // TODO: Why copy? ::glPushMatrix(); ::glTranslated(Position.x, Position.y, Position.z); if (Angle.y != 0.0) - ::glRotated(Angle.y, 0.0, 1.0, 0.0); + ::glRotated(Angle.y, 0.f, 1.f, 0.f); if (Angle.x != 0.0) - ::glRotated(Angle.x, 1.0, 0.0, 0.0); + ::glRotated(Angle.x, 1.f, 0.f, 0.f); if (Angle.z != 0.0) - ::glRotated(Angle.z, 0.0, 0.0, 1.0); + ::glRotated(Angle.z, 0.f, 0.f, 1.f); auto const result = Render(Model, Material, Squaredistance); @@ -3981,17 +3980,16 @@ bool opengl33_renderer::Render_Alpha(TModel3d *Model, material_data const *Mater return true; } -bool opengl33_renderer::Render_Alpha(TModel3d *Model, material_data const *Material, float const Squaredistance, glm::dvec3 const &Position, glm::vec3 const &A) +bool opengl33_renderer::Render_Alpha(TModel3d *Model, material_data const *Material, float const Squaredistance, glm::dvec3 const &Position, glm::vec3 const &Angle) { - glm::dvec3 Angle(A); // TODO: Why copy? ::glPushMatrix(); ::glTranslated(Position.x, Position.y, Position.z); if (Angle.y != 0.0) - ::glRotated(Angle.y, 0.0, 1.0, 0.0); + ::glRotated(Angle.y, 0.f, 1.f, 0.f); if (Angle.x != 0.0) - ::glRotated(Angle.x, 1.0, 0.0, 0.0); + ::glRotated(Angle.x, 1.f, 0.f, 0.f); if (Angle.z != 0.0) - ::glRotated(Angle.z, 0.0, 0.0, 1.0); + ::glRotated(Angle.z, 0.f, 0.f, 1.f); auto const result = Render_Alpha(Model, Material, Squaredistance); // position is effectively camera offset diff --git a/rendering/openglrenderer.cpp b/rendering/openglrenderer.cpp index 1919219a..b3c196e3 100644 --- a/rendering/openglrenderer.cpp +++ b/rendering/openglrenderer.cpp @@ -1041,8 +1041,8 @@ opengl_renderer::setup_pass( renderpass_config &Config, rendermode const Mode, f camera.position() = Global.pCamera.Pos - glm::dvec3 { lightvector }; viewmatrix *= glm::lookAt( camera.position(), - glm::dvec3 { Global.pCamera.Pos }, - glm::dvec3 { 0.f, 1.f, 0.f } ); + Global.pCamera.Pos, + glm::dvec3 { 0, 1, 0 } ); // projection auto const maphalfsize { std::min( 10.f, Config.draw_range * 0.5f ) }; camera.projection() *= diff --git a/rendering/particles.cpp b/rendering/particles.cpp index 9ec3839f..7155eab0 100644 --- a/rendering/particles.cpp +++ b/rendering/particles.cpp @@ -302,7 +302,7 @@ smoke_source::location() const { m_offset.x * m_owner.vehicle->VectorLeft() + m_offset.y * m_owner.vehicle->VectorUp() + m_offset.z * m_owner.vehicle->VectorFront() }; - location += glm::dvec3{ m_owner.vehicle->GetPosition() }; + location += m_owner.vehicle->GetPosition(); break; } case owner_type::node: { diff --git a/utilities/Globals.h b/utilities/Globals.h index f9513b45..6cef875a 100644 --- a/utilities/Globals.h +++ b/utilities/Globals.h @@ -46,7 +46,7 @@ struct global_settings { TCamera pCamera; // parametry kamery TCamera pDebugCamera; std::array FreeCameraInit; // pozycje kamery - std::array FreeCameraInitAngle; + std::array FreeCameraInitAngle; int iCameraLast{ -1 }; int iSlowMotion{ 0 }; // info o malym FPS: 0-OK, 1-wyłączyć multisampling, 3-promień 1.5km, 7-1km basic_light DayLight; diff --git a/vehicle/Camera.cpp b/vehicle/Camera.cpp index 4d2d630f..d5216930 100644 --- a/vehicle/Camera.cpp +++ b/vehicle/Camera.cpp @@ -172,7 +172,7 @@ void TCamera::Update() || ( true == DebugCameraFlag ) ) { // free movement position update auto movement { Velocity }; - movement = RotateY(movement, Angle.y); + movement = RotateY(movement, (double)Angle.y); Pos += movement * 5.0 * deltatime; } else { @@ -195,7 +195,7 @@ void TCamera::Update() movement.y = -movement.y; } */ - movement = RotateY(movement, Angle.y); + movement = RotateY(movement, (double)Angle.y); m_owneroffset += movement * deltatime; } @@ -203,19 +203,16 @@ void TCamera::Update() bool TCamera::SetMatrix( glm::dmat4 &Matrix ) { - Matrix = glm::rotate( Matrix, -Angle.z, glm::dvec3( 0.0, 0.0, 1.0 ) ); // po wyłączeniu tego kręci się pojazd, a sceneria nie - Matrix = glm::rotate( Matrix, -Angle.x, glm::dvec3( 1.0, 0.0, 0.0 ) ); - Matrix = glm::rotate( Matrix, -Angle.y, glm::dvec3( 0.0, 1.0, 0.0 ) ); // w zewnętrznym widoku: kierunek patrzenia + Matrix = glm::rotate(Matrix, -(double)Angle.x, glm::dvec3(1, 0, 0)); + Matrix = glm::rotate(Matrix, -(double)Angle.y, glm::dvec3(0, 1, 0)); // w zewnętrznym widoku: kierunek patrzenia + Matrix = glm::rotate(Matrix, -(double)Angle.z, glm::dvec3(0, 0, 1)); // po wyłączeniu tego kręci się pojazd, a sceneria nie if( ( m_owner != nullptr ) && ( false == DebugCameraFlag ) ) { - Matrix *= glm::lookAt( - glm::dvec3{ Pos }, - glm::dvec3{ LookAt }, - glm::dvec3{ vUp } ); + Matrix *= glm::lookAt(Pos, glm::dvec3{ LookAt }, glm::dvec3{ vUp } ); } else { - Matrix = glm::translate( Matrix, glm::dvec3{ -Pos } ); // nie zmienia kierunku patrzenia + Matrix = glm::translate( Matrix, -Pos ); // nie zmienia kierunku patrzenia } return true; diff --git a/vehicle/Camera.h b/vehicle/Camera.h index f0c72f92..9498c349 100644 --- a/vehicle/Camera.h +++ b/vehicle/Camera.h @@ -25,7 +25,7 @@ class TCamera { bool SetMatrix(glm::dmat4 &Matrix); void RaLook(); - glm::dvec3 Angle; // pitch, yaw, roll + glm::vec3 Angle; // pitch, yaw, roll glm::dvec3 Pos; // współrzędne obserwatora glm::vec3 LookAt; // współrzędne punktu, na który ma patrzeć glm::vec3 vUp; @@ -36,7 +36,7 @@ class TCamera { private: glm::dvec3 m_moverate; - glm::dvec3 m_rotationoffsets; // requested changes to pitch, yaw and roll + glm::vec3 m_rotationoffsets; // requested changes to pitch, yaw and roll }; diff --git a/vehicle/DynObj.cpp b/vehicle/DynObj.cpp index 0d27ebed..cca459d0 100644 --- a/vehicle/DynObj.cpp +++ b/vehicle/DynObj.cpp @@ -1511,11 +1511,11 @@ void TDynamicObject::ABuBogies() // [rad] // bogieRot[0].z=ABuAcos(Axle0.pPosition-Axle3.pPosition); bogieRot[0].z = Axle0.vAngles.z; - bogieRot[0] = RadToDeg(modelRot - bogieRot[0]); // mnożenie wektora przez stałą + bogieRot[0] = glm::degrees(modelRot - bogieRot[0]); // mnożenie wektora przez stałą smBogie[0]->SetRotateXYZ(bogieRot[0]); // bogieRot[1].z=ABuAcos(Axle2.pPosition-Axle1.pPosition); bogieRot[1].z = Axle1.vAngles.z; - bogieRot[1] = RadToDeg(modelRot - bogieRot[1]); + bogieRot[1] = glm::degrees(modelRot - bogieRot[1]); smBogie[1]->SetRotateXYZ(bogieRot[1]); } }; @@ -3220,7 +3220,7 @@ bool TDynamicObject::Update(double dt, double dt1) ErrorLog( "Bad traction: " + MoverParameters->Name + " lost power for " + to_string( NoVoltTime, 2 ) + " sec. at " - + to_string( glm::dvec3{ vPosition } ) ); + + to_string(vPosition) ); } } } @@ -3658,7 +3658,7 @@ bool TDynamicObject::Update(double dt, double dt1) glm::dvec3 old_pos = vPosition; Move(dDOMoveLen); - m_future_movement = (glm::dvec3(vPosition) - old_pos) / dt1 * Timer::GetDeltaRenderTime(); + m_future_movement = (vPosition - old_pos) / dt1 * Timer::GetDeltaRenderTime(); if (!bEnabled) // usuwane pojazdy nie mają toru { // pojazd do usunięcia @@ -8141,7 +8141,7 @@ TDynamicObject::update_shake( double const Timedelta ) { } shake *= 0.85; - ShakeState.velocity -= ( shake + ShakeState.velocity * 100.0 ) * ( BaseShake.jolt_scale.x + BaseShake.jolt_scale.y + BaseShake.jolt_scale.z ) / ( 200.0 ); + ShakeState.velocity -= ( shake + ShakeState.velocity * 100.0 ) * (double)( BaseShake.jolt_scale.x + BaseShake.jolt_scale.y + BaseShake.jolt_scale.z ) / ( 200.0 ); // McZapkie: ShakeState.offset += ShakeState.velocity * Timedelta; @@ -8748,7 +8748,7 @@ vehicle_table::update_traction( TDynamicObject *Vehicle ) { auto const vFront = glm::make_vec3( glm::value_ptr(Vehicle->VectorFront()) ); // wektor normalny dla płaszczyzny ruchu pantografu auto const vUp = glm::make_vec3( glm::value_ptr(Vehicle->VectorUp()) ); // wektor pionu pudła (pochylony od pionu na przechyłce) auto const vLeft = glm::make_vec3( glm::value_ptr(Vehicle->VectorLeft()) ); // wektor odległości w bok (odchylony od poziomu na przechyłce) - auto const position = glm::dvec3 { Vehicle->GetPosition() }; // współrzędne środka pojazdu + auto const position = Vehicle->GetPosition(); // współrzędne środka pojazdu for( int pantographindex = 0; pantographindex < Vehicle->iAnimType[ ANIM_PANTS ]; ++pantographindex ) { // pętla po pantografach diff --git a/vehicle/DynObj.h b/vehicle/DynObj.h index c495f578..aa509f1b 100644 --- a/vehicle/DynObj.h +++ b/vehicle/DynObj.h @@ -204,7 +204,7 @@ public: TTrackFollower Axle1; // oś z tyłu (od sprzęgu 1) int iAxleFirst; // numer pierwszej osi w kierunku ruchu (oś wiążąca pojazd z torem i wyzwalająca eventy) float fAxleDist; // rozstaw wózków albo osi do liczenia proporcji zacienienia - glm::dvec3 modelRot; // obrot pudła względem świata - do przeanalizowania, czy potrzebne!!! + glm::vec3 modelRot; // obrot pudła względem świata - do przeanalizowania, czy potrzebne!!! TDynamicObject * ABuFindNearestObject(glm::vec3 pos, TTrack *Track, TDynamicObject *MyPointer, int &CouplNr ); glm::dvec3 m_future_movement; @@ -304,7 +304,7 @@ private: void toggle_lights(); // switch light levels for registered interior sections private: // Ra: ciąg dalszy animacji, dopiero do ogarnięcia // ABuWozki 060504 - glm::dvec3 bogieRot[2]; // Obroty wozkow w/m korpusu + glm::vec3 bogieRot[2]; // Obroty wozkow w/m korpusu TSubModel *smBogie[2]; // Wyszukiwanie max 2 wozkow TSubModel *smWahacze[4]; // wahacze (np. nogi, dźwignia w drezynie) TSubModel *smBrakeMode; // Ra 15-01: nastawa hamulca też @@ -834,8 +834,8 @@ public: std::pair shake_angles() const; // members struct baseshake_config { - glm::dvec3 angle_scale { 0.05, 0.0, 0.1 }; // roll, yaw, pitch - glm::dvec3 jolt_scale{0.2, 0.2, 0.1}; + glm::vec3 angle_scale { 0.05, 0.0, 0.1 }; // roll, yaw, pitch + glm::vec3 jolt_scale{0.2, 0.2, 0.1}; double jolt_limit { 2.0f }; } BaseShake; struct engineshake_config { diff --git a/world/Segment.cpp b/world/Segment.cpp index 09d28be5..9ddccae4 100644 --- a/world/Segment.cpp +++ b/world/Segment.cpp @@ -338,7 +338,7 @@ Math3D::vector3 TSegment::GetPoint(double const fDistance) const }; */ // ustalenie pozycji osi na torze, przechyłki, pochylenia i kierunku jazdy -void TSegment::RaPositionGet(double const fDistance, glm::dvec3 &p, glm::dvec3 &a) const { +void TSegment::RaPositionGet(double const fDistance, glm::dvec3 &p, glm::vec3 &a) const { if (bCurve) { // można by wprowadzić uproszczony wzór dla okręgów płaskich auto const t = GetTFromS(fDistance); // aproksymacja dystansu na krzywej Beziera na parametr (t) diff --git a/world/Segment.h b/world/Segment.h index 9da9fcc5..24725d78 100644 --- a/world/Segment.h +++ b/world/Segment.h @@ -92,7 +92,7 @@ public: Math3D::vector3 GetPoint(double const fDistance) const; */ - void RaPositionGet(double const fDistance, glm::dvec3 &p, glm::dvec3 &a) const; + void RaPositionGet(double const fDistance, glm::dvec3 &p, glm::vec3 &a) const; glm::dvec3 FastGetPoint(double const t) const; inline glm::dvec3 diff --git a/world/TrkFoll.h b/world/TrkFoll.h index 7276fcd4..bba97681 100644 --- a/world/TrkFoll.h +++ b/world/TrkFoll.h @@ -45,7 +45,7 @@ public: // members double fOffsetH = 0.0; // Ra: odległość środka osi od osi toru (dla samochodów) - użyć do wężykowania glm::dvec3 pPosition; // współrzędne XYZ w układzie scenerii - glm::dvec3 vAngles; // x:przechyłka, y:pochylenie, z:kierunek w planie (w radianach) + glm::vec3 vAngles; // x:przechyłka, y:pochylenie, z:kierunek w planie (w radianach) private: // methods bool ComputatePosition(); // przeliczenie pozycji na torze