mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-17 22:39:17 +02:00
Remove not needed casts, variables and switch from double precission to float precission for some angle vectors
This commit is contained in:
@@ -387,7 +387,7 @@ openal_renderer::update( double const Deltatime ) {
|
||||
::alListenerfv( AL_ORIENTATION, reinterpret_cast<ALfloat const *>( 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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -29,11 +29,11 @@ std::list<std::weak_ptr<TAnimContainer>> 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;
|
||||
|
||||
@@ -51,8 +51,8 @@ class TAnimContainer : std::enable_shared_from_this<TAnimContainer>
|
||||
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<TAnimContainer>
|
||||
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();
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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() *=
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -46,7 +46,7 @@ struct global_settings {
|
||||
TCamera pCamera; // parametry kamery
|
||||
TCamera pDebugCamera;
|
||||
std::array<glm::dvec3, 10> FreeCameraInit; // pozycje kamery
|
||||
std::array<glm::dvec3, 10> FreeCameraInitAngle;
|
||||
std::array<glm::vec3, 10> 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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<double, double> 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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user