diff --git a/src/libslic3r/SLA/SLAAutoSupports.cpp b/src/libslic3r/SLA/SLAAutoSupports.cpp
index aca84dbd8..1f6dcc2b7 100644
--- a/src/libslic3r/SLA/SLAAutoSupports.cpp
+++ b/src/libslic3r/SLA/SLAAutoSupports.cpp
@@ -499,18 +499,6 @@ void SLAAutoSupports::uniformly_cover(const ExPolygons& islands, Structure& stru
     }
 }
 
-float SLAAutoSupports::Structure::overlap_area(const Structure &rhs) const
-{
-    double out = 0.;
-    if (this->bbox.overlap(rhs.bbox)) {
-         Polygons polys = intersection(to_polygons(*this->polygon), to_polygons(*rhs.polygon), false);
-         for (const Polygon &poly : polys)
-            out += poly.area();
-    }
-
-    return float(out);
-}
-
 #ifdef SLA_AUTOSUPPORTS_DEBUG
 void SLAAutoSupports::output_structures(const std::vector<Structure>& structures)
 {
diff --git a/src/libslic3r/SLA/SLAAutoSupports.hpp b/src/libslic3r/SLA/SLAAutoSupports.hpp
index 27f595a74..b552d1c0b 100644
--- a/src/libslic3r/SLA/SLAAutoSupports.hpp
+++ b/src/libslic3r/SLA/SLAAutoSupports.hpp
@@ -71,7 +71,15 @@ public:
         bool overlaps(const Structure &rhs) const { 
             return this->bbox.overlap(rhs.bbox) && (this->polygon->overlaps(*rhs.polygon) || rhs.polygon->overlaps(*this->polygon)); 
         }
-        float overlap_area(const Structure &rhs) const;
+        float overlap_area(const Structure &rhs) const { 
+            double out = 0.;
+            if (this->bbox.overlap(rhs.bbox)) {
+                 Polygons polys = intersection(to_polygons(*this->polygon), to_polygons(*rhs.polygon), false);
+                 for (const Polygon &poly : polys)
+                    out += poly.area();
+            }
+            return float(out);
+        }
         float area_below() const { 
             float area = 0.f; 
             for (const Link &below : this->islands_below)