diff --git a/VirtualRobot/Visualization/TriMeshUtils.cpp b/VirtualRobot/Visualization/TriMeshUtils.cpp
index 77b5d986d630be150c40c365ddf3c7e71052f8ef..8226594f5494323262ef37862c752ade33b49cf7 100644
--- a/VirtualRobot/Visualization/TriMeshUtils.cpp
+++ b/VirtualRobot/Visualization/TriMeshUtils.cpp
@@ -24,6 +24,7 @@
 #include "TriMeshUtils.h"
 #include "../VirtualRobotException.h"
 #include <Eigen/Geometry>
+#include <cstddef>
 #include <numeric>
 
 namespace VirtualRobot {
@@ -167,8 +168,9 @@ Eigen::Vector3f TriMeshUtils::sampleSurfacePoint(const std::vector<float>& cumul
     }
 
     float r = static_cast<float>(uniformDeviate(rand()) * totalArea);
-    std::vector<float>::iterator low = std::lower_bound(cumulativeAreas->begin(), cumulativeAreas->end(), r);
-    auto f = tri.faces[low - cumulativeAreas->begin()];
+    const auto low = std::lower_bound(cumulativeAreas.begin(), cumulativeAreas.end(), r);
+    // const std::size_t idx = std::distance(cumulativeAreas.begin(), low);
+    auto f = tri.faces[low - cumulativeAreas.begin()];
 
     float r1 = static_cast<float>(uniformDeviate(rand()));
     float r2 = static_cast<float>(uniformDeviate(rand()));