mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 00:49:19 +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 ) );
|
::alListenerfv( AL_ORIENTATION, reinterpret_cast<ALfloat const *>( orientation ) );
|
||||||
// velocity
|
// velocity
|
||||||
if( Deltatime > 0 ) {
|
if( Deltatime > 0 ) {
|
||||||
auto cameramove { glm::dvec3{ cameraposition - cached_camerapos} };
|
auto cameramove { cameraposition - cached_camerapos };
|
||||||
cached_camerapos = cameraposition;
|
cached_camerapos = cameraposition;
|
||||||
// intercept sudden user-induced camera jumps...
|
// intercept sudden user-induced camera jumps...
|
||||||
// ...from free fly mode change
|
// ...from free fly mode change
|
||||||
|
|||||||
@@ -363,7 +363,7 @@ sound_source::play( int const Flags ) {
|
|||||||
|
|
||||||
if( m_range != -1 ) {
|
if( m_range != -1 ) {
|
||||||
auto const cutoffrange { std::abs( m_range * 5 ) };
|
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
|
// 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
|
// we act as if it was activated normally, meaning no need to include the opening bookend in subsequent calls
|
||||||
m_playbeginning = false;
|
m_playbeginning = false;
|
||||||
|
|||||||
@@ -29,11 +29,11 @@ std::list<std::weak_ptr<TAnimContainer>> TAnimModel::acAnimList;
|
|||||||
|
|
||||||
TAnimContainer::TAnimContainer()
|
TAnimContainer::TAnimContainer()
|
||||||
{
|
{
|
||||||
vRotateAngles = glm::dvec3(0.0f, 0.0f, 0.0f); // aktualne kąty obrotu
|
vRotateAngles = glm::vec3(0.0f, 0.0f, 0.0f); // aktualne kąty obrotu
|
||||||
vDesiredAngles = glm::dvec3(0.0f, 0.0f, 0.0f); // docelowe kąty obrotu
|
vDesiredAngles = glm::vec3(0.0f, 0.0f, 0.0f); // docelowe kąty obrotu
|
||||||
fRotateSpeed = 0.0;
|
fRotateSpeed = 0.0;
|
||||||
vTranslation = glm::dvec3(0.0f, 0.0f, 0.0f); // aktualne przesunięcie
|
vTranslation = glm::dvec3(0.0, 0.0, 0.0); // aktualne przesunięcie
|
||||||
vTranslateTo = glm::dvec3(0.0f, 0.0f, 0.0f); // docelowe przesunięcie
|
vTranslateTo = glm::dvec3(0.0, 0.0, 0.0); // docelowe przesunięcie
|
||||||
fTranslateSpeed = 0.0;
|
fTranslateSpeed = 0.0;
|
||||||
fAngleSpeed = 0.0;
|
fAngleSpeed = 0.0;
|
||||||
pSubModel = NULL;
|
pSubModel = NULL;
|
||||||
@@ -48,7 +48,7 @@ bool TAnimContainer::Init(TSubModel *pNewSubModel)
|
|||||||
return (pSubModel != NULL);
|
return (pSubModel != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TAnimContainer::SetRotateAnim(glm::dvec3 vNewRotateAngles, double fNewRotateSpeed)
|
void TAnimContainer::SetRotateAnim(glm::vec3 vNewRotateAngles, double fNewRotateSpeed)
|
||||||
{
|
{
|
||||||
vDesiredAngles = vNewRotateAngles;
|
vDesiredAngles = vNewRotateAngles;
|
||||||
fRotateSpeed = fNewRotateSpeed;
|
fRotateSpeed = fNewRotateSpeed;
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ class TAnimContainer : std::enable_shared_from_this<TAnimContainer>
|
|||||||
friend TAnimModel;
|
friend TAnimModel;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
glm::dvec3 vRotateAngles; // dla obrotów Eulera
|
glm::vec3 vRotateAngles; // dla obrotów Eulera
|
||||||
glm::dvec3 vDesiredAngles;
|
glm::vec3 vDesiredAngles;
|
||||||
double fRotateSpeed;
|
double fRotateSpeed;
|
||||||
glm::dvec3 vTranslation;
|
glm::dvec3 vTranslation;
|
||||||
glm::dvec3 vTranslateTo;
|
glm::dvec3 vTranslateTo;
|
||||||
@@ -81,7 +81,7 @@ class TAnimContainer : std::enable_shared_from_this<TAnimContainer>
|
|||||||
inline
|
inline
|
||||||
std::string NameGet() {
|
std::string NameGet() {
|
||||||
return (pSubModel ? pSubModel->pName : ""); };
|
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 SetTranslateAnim( glm::dvec3 vNewTranslate, double fNewSpeed);
|
||||||
void AnimSetVMD(double fNewSpeed);
|
void AnimSetVMD(double fNewSpeed);
|
||||||
void PrepareModel();
|
void PrepareModel();
|
||||||
|
|||||||
@@ -3106,17 +3106,16 @@ bool opengl33_renderer::Render(TModel3d *Model, material_data const *Material, f
|
|||||||
return true;
|
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();
|
::glPushMatrix();
|
||||||
::glTranslated(Position.x, Position.y, Position.z);
|
::glTranslated(Position.x, Position.y, Position.z);
|
||||||
if (Angle.y != 0.0)
|
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)
|
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)
|
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);
|
auto const result = Render(Model, Material, Squaredistance);
|
||||||
|
|
||||||
@@ -3981,17 +3980,16 @@ bool opengl33_renderer::Render_Alpha(TModel3d *Model, material_data const *Mater
|
|||||||
return true;
|
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();
|
::glPushMatrix();
|
||||||
::glTranslated(Position.x, Position.y, Position.z);
|
::glTranslated(Position.x, Position.y, Position.z);
|
||||||
if (Angle.y != 0.0)
|
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)
|
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)
|
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
|
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 };
|
camera.position() = Global.pCamera.Pos - glm::dvec3 { lightvector };
|
||||||
viewmatrix *= glm::lookAt(
|
viewmatrix *= glm::lookAt(
|
||||||
camera.position(),
|
camera.position(),
|
||||||
glm::dvec3 { Global.pCamera.Pos },
|
Global.pCamera.Pos,
|
||||||
glm::dvec3 { 0.f, 1.f, 0.f } );
|
glm::dvec3 { 0, 1, 0 } );
|
||||||
// projection
|
// projection
|
||||||
auto const maphalfsize { std::min( 10.f, Config.draw_range * 0.5f ) };
|
auto const maphalfsize { std::min( 10.f, Config.draw_range * 0.5f ) };
|
||||||
camera.projection() *=
|
camera.projection() *=
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ smoke_source::location() const {
|
|||||||
m_offset.x * m_owner.vehicle->VectorLeft()
|
m_offset.x * m_owner.vehicle->VectorLeft()
|
||||||
+ m_offset.y * m_owner.vehicle->VectorUp()
|
+ m_offset.y * m_owner.vehicle->VectorUp()
|
||||||
+ m_offset.z * m_owner.vehicle->VectorFront() };
|
+ m_offset.z * m_owner.vehicle->VectorFront() };
|
||||||
location += glm::dvec3{ m_owner.vehicle->GetPosition() };
|
location += m_owner.vehicle->GetPosition();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case owner_type::node: {
|
case owner_type::node: {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ struct global_settings {
|
|||||||
TCamera pCamera; // parametry kamery
|
TCamera pCamera; // parametry kamery
|
||||||
TCamera pDebugCamera;
|
TCamera pDebugCamera;
|
||||||
std::array<glm::dvec3, 10> FreeCameraInit; // pozycje kamery
|
std::array<glm::dvec3, 10> FreeCameraInit; // pozycje kamery
|
||||||
std::array<glm::dvec3, 10> FreeCameraInitAngle;
|
std::array<glm::vec3, 10> FreeCameraInitAngle;
|
||||||
int iCameraLast{ -1 };
|
int iCameraLast{ -1 };
|
||||||
int iSlowMotion{ 0 }; // info o malym FPS: 0-OK, 1-wyłączyć multisampling, 3-promień 1.5km, 7-1km
|
int iSlowMotion{ 0 }; // info o malym FPS: 0-OK, 1-wyłączyć multisampling, 3-promień 1.5km, 7-1km
|
||||||
basic_light DayLight;
|
basic_light DayLight;
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ void TCamera::Update()
|
|||||||
|| ( true == DebugCameraFlag ) ) {
|
|| ( true == DebugCameraFlag ) ) {
|
||||||
// free movement position update
|
// free movement position update
|
||||||
auto movement { Velocity };
|
auto movement { Velocity };
|
||||||
movement = RotateY(movement, Angle.y);
|
movement = RotateY(movement, (double)Angle.y);
|
||||||
Pos += movement * 5.0 * deltatime;
|
Pos += movement * 5.0 * deltatime;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -195,7 +195,7 @@ void TCamera::Update()
|
|||||||
movement.y = -movement.y;
|
movement.y = -movement.y;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
movement = RotateY(movement, Angle.y);
|
movement = RotateY(movement, (double)Angle.y);
|
||||||
|
|
||||||
m_owneroffset += movement * deltatime;
|
m_owneroffset += movement * deltatime;
|
||||||
}
|
}
|
||||||
@@ -203,19 +203,16 @@ void TCamera::Update()
|
|||||||
|
|
||||||
bool TCamera::SetMatrix( glm::dmat4 &Matrix ) {
|
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, -(double)Angle.x, glm::dvec3(1, 0, 0));
|
||||||
Matrix = glm::rotate( Matrix, -Angle.x, glm::dvec3( 1.0, 0.0, 0.0 ) );
|
Matrix = glm::rotate(Matrix, -(double)Angle.y, glm::dvec3(0, 1, 0)); // w zewnętrznym widoku: kierunek patrzenia
|
||||||
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.z, glm::dvec3(0, 0, 1)); // po wyłączeniu tego kręci się pojazd, a sceneria nie
|
||||||
|
|
||||||
if( ( m_owner != nullptr ) && ( false == DebugCameraFlag ) ) {
|
if( ( m_owner != nullptr ) && ( false == DebugCameraFlag ) ) {
|
||||||
|
|
||||||
Matrix *= glm::lookAt(
|
Matrix *= glm::lookAt(Pos, glm::dvec3{ LookAt }, glm::dvec3{ vUp } );
|
||||||
glm::dvec3{ Pos },
|
|
||||||
glm::dvec3{ LookAt },
|
|
||||||
glm::dvec3{ vUp } );
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Matrix = glm::translate( Matrix, glm::dvec3{ -Pos } ); // nie zmienia kierunku patrzenia
|
Matrix = glm::translate( Matrix, -Pos ); // nie zmienia kierunku patrzenia
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class TCamera {
|
|||||||
bool SetMatrix(glm::dmat4 &Matrix);
|
bool SetMatrix(glm::dmat4 &Matrix);
|
||||||
void RaLook();
|
void RaLook();
|
||||||
|
|
||||||
glm::dvec3 Angle; // pitch, yaw, roll
|
glm::vec3 Angle; // pitch, yaw, roll
|
||||||
glm::dvec3 Pos; // współrzędne obserwatora
|
glm::dvec3 Pos; // współrzędne obserwatora
|
||||||
glm::vec3 LookAt; // współrzędne punktu, na który ma patrzeć
|
glm::vec3 LookAt; // współrzędne punktu, na który ma patrzeć
|
||||||
glm::vec3 vUp;
|
glm::vec3 vUp;
|
||||||
@@ -36,7 +36,7 @@ class TCamera {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
glm::dvec3 m_moverate;
|
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]
|
// [rad]
|
||||||
// bogieRot[0].z=ABuAcos(Axle0.pPosition-Axle3.pPosition);
|
// bogieRot[0].z=ABuAcos(Axle0.pPosition-Axle3.pPosition);
|
||||||
bogieRot[0].z = Axle0.vAngles.z;
|
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]);
|
smBogie[0]->SetRotateXYZ(bogieRot[0]);
|
||||||
// bogieRot[1].z=ABuAcos(Axle2.pPosition-Axle1.pPosition);
|
// bogieRot[1].z=ABuAcos(Axle2.pPosition-Axle1.pPosition);
|
||||||
bogieRot[1].z = Axle1.vAngles.z;
|
bogieRot[1].z = Axle1.vAngles.z;
|
||||||
bogieRot[1] = RadToDeg(modelRot - bogieRot[1]);
|
bogieRot[1] = glm::degrees(modelRot - bogieRot[1]);
|
||||||
smBogie[1]->SetRotateXYZ(bogieRot[1]);
|
smBogie[1]->SetRotateXYZ(bogieRot[1]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -3220,7 +3220,7 @@ bool TDynamicObject::Update(double dt, double dt1)
|
|||||||
ErrorLog(
|
ErrorLog(
|
||||||
"Bad traction: " + MoverParameters->Name
|
"Bad traction: " + MoverParameters->Name
|
||||||
+ " lost power for " + to_string( NoVoltTime, 2 ) + " sec. at "
|
+ " 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;
|
glm::dvec3 old_pos = vPosition;
|
||||||
Move(dDOMoveLen);
|
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
|
if (!bEnabled) // usuwane pojazdy nie mają toru
|
||||||
{ // pojazd do usunięcia
|
{ // pojazd do usunięcia
|
||||||
@@ -8141,7 +8141,7 @@ TDynamicObject::update_shake( double const Timedelta ) {
|
|||||||
}
|
}
|
||||||
shake *= 0.85;
|
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:
|
// McZapkie:
|
||||||
ShakeState.offset += ShakeState.velocity * Timedelta;
|
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 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 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 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 ) {
|
for( int pantographindex = 0; pantographindex < Vehicle->iAnimType[ ANIM_PANTS ]; ++pantographindex ) {
|
||||||
// pętla po pantografach
|
// pętla po pantografach
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ public:
|
|||||||
TTrackFollower Axle1; // oś z tyłu (od sprzęgu 1)
|
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)
|
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
|
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 );
|
TDynamicObject * ABuFindNearestObject(glm::vec3 pos, TTrack *Track, TDynamicObject *MyPointer, int &CouplNr );
|
||||||
|
|
||||||
glm::dvec3 m_future_movement;
|
glm::dvec3 m_future_movement;
|
||||||
@@ -304,7 +304,7 @@ private:
|
|||||||
void toggle_lights(); // switch light levels for registered interior sections
|
void toggle_lights(); // switch light levels for registered interior sections
|
||||||
private: // Ra: ciąg dalszy animacji, dopiero do ogarnięcia
|
private: // Ra: ciąg dalszy animacji, dopiero do ogarnięcia
|
||||||
// ABuWozki 060504
|
// 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 *smBogie[2]; // Wyszukiwanie max 2 wozkow
|
||||||
TSubModel *smWahacze[4]; // wahacze (np. nogi, dźwignia w drezynie)
|
TSubModel *smWahacze[4]; // wahacze (np. nogi, dźwignia w drezynie)
|
||||||
TSubModel *smBrakeMode; // Ra 15-01: nastawa hamulca też
|
TSubModel *smBrakeMode; // Ra 15-01: nastawa hamulca też
|
||||||
@@ -834,8 +834,8 @@ public:
|
|||||||
std::pair<double, double> shake_angles() const;
|
std::pair<double, double> shake_angles() const;
|
||||||
// members
|
// members
|
||||||
struct baseshake_config {
|
struct baseshake_config {
|
||||||
glm::dvec3 angle_scale { 0.05, 0.0, 0.1 }; // roll, yaw, pitch
|
glm::vec3 angle_scale { 0.05, 0.0, 0.1 }; // roll, yaw, pitch
|
||||||
glm::dvec3 jolt_scale{0.2, 0.2, 0.1};
|
glm::vec3 jolt_scale{0.2, 0.2, 0.1};
|
||||||
double jolt_limit { 2.0f };
|
double jolt_limit { 2.0f };
|
||||||
} BaseShake;
|
} BaseShake;
|
||||||
struct engineshake_config {
|
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
|
// 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) {
|
if (bCurve) {
|
||||||
// można by wprowadzić uproszczony wzór dla okręgów płaskich
|
// 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)
|
auto const t = GetTFromS(fDistance); // aproksymacja dystansu na krzywej Beziera na parametr (t)
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ public:
|
|||||||
Math3D::vector3
|
Math3D::vector3
|
||||||
GetPoint(double const fDistance) const;
|
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;
|
glm::dvec3 FastGetPoint(double const t) const;
|
||||||
inline
|
inline
|
||||||
glm::dvec3
|
glm::dvec3
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public:
|
|||||||
// members
|
// members
|
||||||
double fOffsetH = 0.0; // Ra: odległość środka osi od osi toru (dla samochodów) - użyć do wężykowania
|
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 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:
|
private:
|
||||||
// methods
|
// methods
|
||||||
bool ComputatePosition(); // przeliczenie pozycji na torze
|
bool ComputatePosition(); // przeliczenie pozycji na torze
|
||||||
|
|||||||
Reference in New Issue
Block a user