mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 05:29:18 +02:00
use glm instead of Math3D in vehicle
WARNING: Model rotation is broken
This commit is contained in:
@@ -569,7 +569,7 @@ void driver_mode::update_camera(double const Deltatime)
|
||||
Camera.Reset(); // likwidacja obrotów - patrzy horyzontalnie na południe
|
||||
if (Camera.m_owner == nullptr)
|
||||
{
|
||||
if (controlled && LengthSquared3(controlled->GetPosition() - Camera.Pos) < (1500 * 1500))
|
||||
if (controlled && glm::length(controlled->GetPosition() - Camera.Pos) < 1500)
|
||||
{
|
||||
// gdy bliżej niż 1.5km
|
||||
Camera.LookAt = controlled->GetPosition() + 0.4 * controlled->VectorUp() * controlled->MoverParameters->Dim.H;
|
||||
@@ -583,7 +583,7 @@ void driver_mode::update_camera(double const Deltatime)
|
||||
if (d && pDynamicNearest)
|
||||
{
|
||||
// jeśli jakiś jest znaleziony wcześniej
|
||||
if (100.0 * LengthSquared3(d->GetPosition() - Camera.Pos) > LengthSquared3(pDynamicNearest->GetPosition() - Camera.Pos))
|
||||
if (100.0 * glm::length(d->GetPosition() - Camera.Pos) > glm::length(pDynamicNearest->GetPosition() - Camera.Pos))
|
||||
{
|
||||
d = pDynamicNearest; // jeśli najbliższy nie jest 10 razy bliżej niż
|
||||
}
|
||||
@@ -692,12 +692,12 @@ void driver_mode::update_camera(double const Deltatime)
|
||||
else if (Global.shiftState)
|
||||
{
|
||||
// patrzenie w bok przez szybę
|
||||
Camera.LookAt = Camera.Pos - (lr ? -1 : 1) * controlled->VectorLeft() * simulation::Train->Occupied()->CabOccupied;
|
||||
Camera.LookAt = Camera.Pos - (lr ? -1.0 : 1.0) * controlled->VectorLeft() * (double)simulation::Train->Occupied()->CabOccupied;
|
||||
}
|
||||
else
|
||||
{ // patrzenie w kierunku osi pojazdu, z uwzględnieniem kabiny - jakby z lusterka,
|
||||
// ale bez odbicia
|
||||
Camera.LookAt = Camera.Pos - simulation::Train->GetDirection() * simulation::Train->Occupied()->CabOccupied; //-1 albo 1
|
||||
Camera.LookAt = Camera.Pos - simulation::Train->GetDirection() * (double)simulation::Train->Occupied()->CabOccupied; //-1 albo 1
|
||||
}
|
||||
auto const shakeangles{simulation::Train->Dynamic()->shake_angles()};
|
||||
Camera.Angle.x = 0.5 * shakeangles.second; // hustanie kamery przod tyl
|
||||
@@ -723,7 +723,7 @@ void driver_mode::update_camera(double const Deltatime)
|
||||
auto shakencamerapos{Camera.m_owneroffset +
|
||||
shakescale * glm::vec3(1.5 * Camera.m_owner->ShakeState.offset.x, 2.0 * Camera.m_owner->ShakeState.offset.y, 1.5 * Camera.m_owner->ShakeState.offset.z)};
|
||||
|
||||
Camera.Pos = (Camera.m_owner->GetWorldPosition(FreeFlyModeFlag ? Math3D::vector3(shakencamerapos) : // TODO: vehicle collision box for the external vehicle camera
|
||||
Camera.Pos = (Camera.m_owner->GetWorldPosition(FreeFlyModeFlag ? glm::dvec3(shakencamerapos) : // TODO: vehicle collision box for the external vehicle camera
|
||||
simulation::Train->clamp_inside(shakencamerapos)));
|
||||
|
||||
if (!Global.iPause)
|
||||
@@ -758,7 +758,7 @@ void driver_mode::update_camera(double const Deltatime)
|
||||
else
|
||||
{
|
||||
// patrzenie w kierunku osi pojazdu, z uwzględnieniem kabiny
|
||||
Camera.LookAt = Camera.m_owner->GetWorldPosition(Camera.m_owneroffset) + Camera.m_owner->VectorFront() * 5.0 * simulation::Train->Occupied()->CabOccupied; //-1 albo 1
|
||||
Camera.LookAt = Camera.m_owner->GetWorldPosition(Camera.m_owneroffset) + Camera.m_owner->VectorFront() * 5.0 * (double)simulation::Train->Occupied()->CabOccupied; //-1 albo 1
|
||||
}
|
||||
Camera.vUp = simulation::Train->GetUp();
|
||||
}
|
||||
@@ -1053,17 +1053,17 @@ void driver_mode::DistantView(bool const Near)
|
||||
}
|
||||
|
||||
auto const cab = (vehicle->MoverParameters->CabOccupied == 0 ? 1 : vehicle->MoverParameters->CabOccupied);
|
||||
auto const left = vehicle->VectorLeft() * cab;
|
||||
auto const left = vehicle->VectorLeft() * (double)cab;
|
||||
|
||||
if (true == Near)
|
||||
{
|
||||
|
||||
Camera.Pos = glm::vec3(Camera.Pos.x, vehicle->GetPosition().y, Camera.Pos.z) + left * vehicle->GetWidth() + glm::vec3(1.25 * left.x, 1.6, 1.25 * left.z);
|
||||
Camera.Pos = glm::dvec3(Camera.Pos.x, vehicle->GetPosition().y, Camera.Pos.z) + left * vehicle->GetWidth() + glm::dvec3(1.25 * left.x, 1.6, 1.25 * left.z);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Camera.Pos = vehicle->GetPosition() + vehicle->VectorFront() * vehicle->MoverParameters->CabOccupied * 50.0 + glm::vec3(-10.0 * left.x, 1.6, -10.0 * left.z);
|
||||
Camera.Pos = vehicle->GetPosition() + vehicle->VectorFront() * (double)vehicle->MoverParameters->CabOccupied * 50.0 + glm::dvec3(-10.0 * left.x, 1.6, -10.0 * left.z);
|
||||
}
|
||||
|
||||
Camera.m_owner = nullptr;
|
||||
@@ -1237,7 +1237,7 @@ void driver_mode::CabView()
|
||||
else
|
||||
{
|
||||
// patrz w strone wlasciwej kabiny
|
||||
Camera.LookAt = Camera.m_owner->GetWorldPosition(Camera.m_owneroffset) + Camera.m_owner->VectorFront() * 5.0 * Camera.m_owner->MoverParameters->CabOccupied;
|
||||
Camera.LookAt = Camera.m_owner->GetWorldPosition(Camera.m_owneroffset) + Camera.m_owner->VectorFront() * 5.0 * (double)Camera.m_owner->MoverParameters->CabOccupied;
|
||||
}
|
||||
train->pMechOffset = Camera.m_owneroffset;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user