diff --git a/MeshLib/Elements/TemplateQuad-impl.h b/MeshLib/Elements/TemplateQuad-impl.h
index afd624856b42bf684cc3ca4911314694970c72c8..fff572636170247c3932311c97c6387247f765fb 100644
--- a/MeshLib/Elements/TemplateQuad-impl.h
+++ b/MeshLib/Elements/TemplateQuad-impl.h
@@ -90,8 +90,8 @@ TemplateQuad<NNODES,CELLQUADTYPE>::~TemplateQuad()
 template <unsigned NNODES, CellType CELLQUADTYPE>
 double TemplateQuad<NNODES,CELLQUADTYPE>::computeVolume()
 {
-	return MathLib::calcTriangleArea(_nodes[0]->getCoords(), _nodes[1]->getCoords(), _nodes[2]->getCoords())
-         + MathLib::calcTriangleArea(_nodes[2]->getCoords(), _nodes[3]->getCoords(), _nodes[0]->getCoords());
+	return GeoLib::calcTriangleArea(*_nodes[0], *_nodes[1], *_nodes[2])
+         + GeoLib::calcTriangleArea(*_nodes[2], *_nodes[3], *_nodes[0]);
 }
 
 template <unsigned NNODES, CellType CELLQUADTYPE>
diff --git a/MeshLib/Elements/TemplateTri.h b/MeshLib/Elements/TemplateTri.h
index a0c05f27d38dd4ccb0cf4a630e3eb3d951b56cb4..c91290193e21420ee7fa232d2bc5aab822f78fa7 100644
--- a/MeshLib/Elements/TemplateTri.h
+++ b/MeshLib/Elements/TemplateTri.h
@@ -22,6 +22,7 @@
 #include "MeshEnums.h"
 
 #include "MathTools.h"
+#include "AnalyticalGeometry.h"
 
 
 namespace MeshLib {
@@ -121,7 +122,7 @@ protected:
 	/// Calculates the area of the triangle by returning half of the area of the corresponding parallelogram.
 	double computeVolume()
 	{
-		return MathLib::calcTriangleArea(_nodes[0]->getCoords(), _nodes[1]->getCoords(), _nodes[2]->getCoords());
+		return GeoLib::calcTriangleArea(*_nodes[0], *_nodes[1], *_nodes[2]);
 	}
 
 protected:
diff --git a/NumLib/Function/LinearInterpolationOnSurface.cpp b/NumLib/Function/LinearInterpolationOnSurface.cpp
index d71716a7b856ac5400e1ea1ccacd5f5b105e328d..18aa67f09ae1f3a19cf025b85722bd54756d1429 100644
--- a/NumLib/Function/LinearInterpolationOnSurface.cpp
+++ b/NumLib/Function/LinearInterpolationOnSurface.cpp
@@ -70,10 +70,10 @@ double LinearInterpolationOnSurface::interpolateInTri(const GeoLib::Triangle &tr
 	std::vector<GeoLib::Point*> p_pnts = {{&pnts[0], &pnts[1], &pnts[2]}};
 	GeoLib::rotatePointsToXY(p_pnts);
 
-	const double* v1 = pnts[0].getCoords();
-	const double* v2 = pnts[1].getCoords();
-	const double* v3 = pnts[2].getCoords();
-	const double area = MathLib::calcTriangleArea(v1, v2, v3);
+	GeoLib::Point const& v1(pnts[0]);
+	GeoLib::Point const& v2(pnts[1]);
+	GeoLib::Point const& v3(pnts[2]);
+	const double area = GeoLib::calcTriangleArea(v1, v2, v3);
 
 	if (area==.0) {
 		// take average if all points have the same coordinates