diff --git a/SimoxUtility/color/ColorMap.cpp b/SimoxUtility/color/ColorMap.cpp
index dc933f66c2b7ea18c81477384b25963c6aeaac70..bc12263c26c7bb95ab0d5b2644285e5343bb0b6c 100644
--- a/SimoxUtility/color/ColorMap.cpp
+++ b/SimoxUtility/color/ColorMap.cpp
@@ -47,6 +47,11 @@ namespace simox::color
 
 
     Color ColorMap::at(float value) const
+    {
+        return at(value, _vmin, _vmax);
+    }
+
+    Color ColorMap::at(float value, std::optional<float> vmin, std::optional<float> vmax) const
     {
         if (empty())
         {
@@ -58,12 +63,16 @@ namespace simox::color
             return keys.begin()->second;
         }
 
-        if (_vmin || _vmax)
+        if (vmin || vmax)
         {
             // Original: [1 .. 2]
             // Virtual:  [100 .. 200]
             // => Scale 150 to 1.5
-            value = simox::math::rescale(value, vmin(), vmax(), original_vmin(), original_vmax());
+            value = simox::math::rescale(value,
+                                         vmin.value_or(original_vmin()),
+                                         vmax.value_or(original_vmax()),
+                                         original_vmin(),
+                                         original_vmax());
         }
 
         // keys.size() >= 2
diff --git a/SimoxUtility/color/ColorMap.h b/SimoxUtility/color/ColorMap.h
index 27c1e2f7f86086fa435b45bed148771cd133937f..de992b442925bada153f42a8ad8916a0f9326bfe 100644
--- a/SimoxUtility/color/ColorMap.h
+++ b/SimoxUtility/color/ColorMap.h
@@ -56,6 +56,18 @@ namespace simox::color
          */
         Color at(float value) const;
 
+        /**
+         * @brief Get the color for the given scalar value.
+         *
+         * Empty color maps always return black.
+         *
+         * @param value The scalar value.
+         * @param vmin  Override for vmin().
+         * @param vmax  Override for vmax().
+         * @return
+         */
+        Color at(float value, std::optional<float> vmin, std::optional<float> vmax) const;
+
         /// @see `ColorMap::at()`
         Color operator()(float value) const { return this->at(value); }