diff --git a/betterRenderer/renderer/source/track_batching.cpp b/betterRenderer/renderer/source/track_batching.cpp index 4223ae31..cebb8669 100644 --- a/betterRenderer/renderer/source/track_batching.cpp +++ b/betterRenderer/renderer/source/track_batching.cpp @@ -583,7 +583,7 @@ void NvRenderer::RenderBatches(const RenderPass& pass) { glm::clamp(pass.m_origin, batch.m_origin - batch.m_extent, batch.m_origin + batch.m_extent) - pass.m_origin; - if (glm::dot(closest_point, closest_point) >= batch.m_sqr_distance_max) + if (glm::length2(closest_point) >= batch.m_sqr_distance_max) return; if (batch.m_transforms.size() > 0) { double min_dist = std::numeric_limits::max(); @@ -594,9 +594,9 @@ void NvRenderer::RenderBatches(const RenderPass& pass) { batch.m_instance_radius)) continue; glm::dvec3 offset = instance_transform[3].xyz - pass.m_origin; - double dist = glm::dot(offset, offset); - min_dist = glm::min(min_dist, dist); - max_dist = glm::max(max_dist, dist); + double dist2 = glm::length2(offset); + min_dist = glm::min(min_dist, dist2); + max_dist = glm::max(max_dist, dist2); } if (min_dist > max_dist) return; if (min_dist >= batch.m_sqr_distance_max || diff --git a/model/AnimModel.cpp b/model/AnimModel.cpp index be872a6f..78e2eda5 100644 --- a/model/AnimModel.cpp +++ b/model/AnimModel.cpp @@ -96,14 +96,14 @@ void TAnimContainer::UpdateModel() { if (fTranslateSpeed != 0.0) { auto dif = vTranslateTo - vTranslation; // wektor w kierunku docelowym - double l2 = glm::dot(dif, dif); // długość wektora potrzebnego przemieszczenia + double l2 = glm::length2(dif); // długość wektora potrzebnego przemieszczenia if (l2 >= 0.0001) { // jeśli do przemieszczenia jest ponad 1cm auto s = glm::normalize(dif); // jednostkowy wektor kierunku // Długość wektora nie jest równa 0, sprawdzane wcześniej więc wektor normalny będzie zawsze prawidłowy. s = s * (fTranslateSpeed * Timer::GetDeltaTime()); // przemieszczenie w podanym czasie z daną prędkością - if (glm::dot(s, s) < l2) //żeby nie jechało na drugą stronę + if (glm::length2(s) < l2) //żeby nie jechało na drugą stronę vTranslation += s; else vTranslation = vTranslateTo; // koniec animacji, "koniec animowania" uruchomi @@ -113,7 +113,7 @@ void TAnimContainer::UpdateModel() { { // koniec animowania vTranslation = vTranslateTo; fTranslateSpeed = 0.0; // wyłączenie przeliczania wektora - if (glm::dot(vTranslation, vTranslation) <= 0.0001) // jeśli jest w punkcie początkowym + if (glm::length2(vTranslation) <= 0.0001) // jeśli jest w punkcie początkowym iAnim &= ~2; // wyłączyć zmianę pozycji submodelu if( evDone ) { // wykonanie eventu informującego o zakończeniu diff --git a/vehicle/Driver.cpp b/vehicle/Driver.cpp index d506d624..0a3f6265 100644 --- a/vehicle/Driver.cpp +++ b/vehicle/Driver.cpp @@ -59,14 +59,12 @@ double GetDistanceToEvent(TTrack const *track, basic_event const *event, double double seg_len = scan_dir > 0 ? 0.0 : 1.0; double const dzielnik = 1.0 / segment->GetLength();// rozdzielczosc mniej wiecej 1m int krok = 0; // krok obliczeniowy do sprawdzania czy odwracamy - auto temp = pos_event - segment->FastGetPoint(seg_len); - len2 = glm::dot(temp, temp); + len2 = glm::length2(pos_event - segment->FastGetPoint(seg_len)); do { len1 = len2; seg_len += scan_dir > 0 ? dzielnik : -dzielnik; - temp = pos_event - segment->FastGetPoint(seg_len); - len2 = glm::dot(temp, temp); + len2 = glm::length2(pos_event - segment->FastGetPoint(seg_len)); ++krok; } while ((len1 > len2) && (seg_len >= dzielnik && (seg_len <= (1.0 - dzielnik)))); //trzeba sprawdzić czy seg_len nie osiągnął skrajnych wartości, bo wtedy diff --git a/world/Track.cpp b/world/Track.cpp index 60411db0..e688c79b 100644 --- a/world/Track.cpp +++ b/world/Track.cpp @@ -770,7 +770,7 @@ void TTrack::Load(cParser *parser, glm::dvec3 const &pOrigin) { // Ra 2014-07: dla skrzyżowań będą dodatkowe segmenty SwitchExtension->Segments[2]->Init(p2, cp2 + p2, cp4 + p4, p4, segsize, r2, r4); // z punktu 2 do 4 auto p1p3 = p3 - p1; - if (glm::dot(p1p3, p1p3) < 0.01) // gdy mniej niż 10cm, to mamy skrzyżowanie trzech dróg + if (glm::length2(p1p3) < 0.01) // gdy mniej niż 10cm, to mamy skrzyżowanie trzech dróg SwitchExtension->iRoads = 3; else // dla 4 dróg będą dodatkowe 3 segmenty {