From b51c984d54fb7cc11ecf5b98a6550a0b146e2a4d Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Fri, 17 Jul 2015 17:16:43 +0200
Subject: [PATCH] [GL] Full include's path. Cleanup includes.

many are superfluous, some could be turned into
fwd decls, some wrongly documented.
---
 GeoLib/AnalyticalGeometry.cpp       | 15 +++------------
 GeoLib/AnalyticalGeometry.h         |  9 ++++++---
 GeoLib/CMakeLists.txt               |  2 --
 GeoLib/EarClippingTriangulation.cpp | 12 ++++--------
 GeoLib/EarClippingTriangulation.h   | 11 +++++------
 GeoLib/MinimalBoundingSphere.cpp    |  4 +++-
 GeoLib/PointVec.cpp                 | 10 ++--------
 GeoLib/Polygon.cpp                  | 15 +++------------
 GeoLib/Polygon.h                    |  4 ++--
 GeoLib/Polyline.cpp                 |  6 +-----
 GeoLib/SensorData.cpp               | 12 +++++-------
 GeoLib/Station.cpp                  | 13 +++----------
 GeoLib/Station.h                    |  2 --
 GeoLib/StationBorehole.cpp          | 12 ++++--------
 GeoLib/StationBorehole.h            |  2 ++
 GeoLib/Triangle.cpp                 |  8 ++------
 GeoLib/Triangle.h                   |  5 +++--
 17 files changed, 48 insertions(+), 94 deletions(-)

diff --git a/GeoLib/AnalyticalGeometry.cpp b/GeoLib/AnalyticalGeometry.cpp
index 158f5e697b1..0e1e4946127 100644
--- a/GeoLib/AnalyticalGeometry.cpp
+++ b/GeoLib/AnalyticalGeometry.cpp
@@ -16,23 +16,14 @@
 
 #include <algorithm>
 #include <cmath>
-#include <cstdlib> // for exit
-#include <fstream>
 #include <limits>
-#include <list>
 
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// BaseLib
-#include "quicksort.h"
-
-// GeoLib
 #include "Polyline.h"
-#include "Triangle.h"
+#include "PointVec.h"
 
-// MathLib
-#include "LinAlg/Solvers/GaussAlgorithm.h"
-#include "MathTools.h"
+#include "MathLib/LinAlg/Solvers/GaussAlgorithm.h"
 
 namespace GeoLib
 {
diff --git a/GeoLib/AnalyticalGeometry.h b/GeoLib/AnalyticalGeometry.h
index 8928e6cfb10..f8a80df8502 100644
--- a/GeoLib/AnalyticalGeometry.h
+++ b/GeoLib/AnalyticalGeometry.h
@@ -15,13 +15,16 @@
 #ifndef ANALYTICAL_GEOMETRY_H_
 #define ANALYTICAL_GEOMETRY_H_
 
-#include "MathLib/LinAlg/Dense/DenseMatrix.h"
 #include "MathLib/Vector3.h"
+#include "MathLib/LinAlg/Dense/DenseMatrix.h"
 
-#include "Triangle.h"
-#include "PointVec.h"
 #include "Polygon.h"
 
+namespace MathLib
+{
+    class PointVec;
+}
+
 namespace GeoLib
 {
 class Polyline;
diff --git a/GeoLib/CMakeLists.txt b/GeoLib/CMakeLists.txt
index 62182b21677..760b3d82c95 100644
--- a/GeoLib/CMakeLists.txt
+++ b/GeoLib/CMakeLists.txt
@@ -6,8 +6,6 @@ add_library(GeoLib STATIC ${SOURCES_GeoLib})
 
 include_directories(
 	.
-	${CMAKE_CURRENT_SOURCE_DIR}/../BaseLib
-	${CMAKE_CURRENT_SOURCE_DIR}/../MathLib
 )
 
 target_link_libraries(GeoLib
diff --git a/GeoLib/EarClippingTriangulation.cpp b/GeoLib/EarClippingTriangulation.cpp
index d46ccddfbae..cbf899f5601 100644
--- a/GeoLib/EarClippingTriangulation.cpp
+++ b/GeoLib/EarClippingTriangulation.cpp
@@ -12,17 +12,13 @@
  *
  */
 
-// GeoLib
 #include "EarClippingTriangulation.h"
 
-// STL
-#include <vector>
+#include "BaseLib/uniqueInsert.h"
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
-// BaseLib
-#include "uniqueInsert.h"
+#include "Polygon.h"
+#include "Triangle.h"
+#include "Point.h"
 
 namespace GeoLib
 {
diff --git a/GeoLib/EarClippingTriangulation.h b/GeoLib/EarClippingTriangulation.h
index a513af07ce5..251d1da9c72 100644
--- a/GeoLib/EarClippingTriangulation.h
+++ b/GeoLib/EarClippingTriangulation.h
@@ -15,18 +15,17 @@
 #ifndef EARCLIPPINGTRIANGULATION_H_
 #define EARCLIPPINGTRIANGULATION_H_
 
-// STL
 #include <list>
+#include <vector>
 
-// GeoLib
-#include "Polygon.h"
-#include "Triangle.h"
-
-// MathLib
 #include "AnalyticalGeometry.h"
 
 namespace GeoLib
 {
+
+class Polygon;
+class Triangle;
+
 class EarClippingTriangulation
 {
 public:
diff --git a/GeoLib/MinimalBoundingSphere.cpp b/GeoLib/MinimalBoundingSphere.cpp
index 881454f2a71..98165116fad 100644
--- a/GeoLib/MinimalBoundingSphere.cpp
+++ b/GeoLib/MinimalBoundingSphere.cpp
@@ -16,7 +16,9 @@
 
 #include <ctime>
 
-#include "MathTools.h"
+#include "MathLib/Point3d.h"
+#include "MathLib/Vector3.h"
+
 #include "AnalyticalGeometry.h"
 
 namespace GeoLib {
diff --git a/GeoLib/PointVec.cpp b/GeoLib/PointVec.cpp
index c66cd431e2f..3e18b712826 100644
--- a/GeoLib/PointVec.cpp
+++ b/GeoLib/PointVec.cpp
@@ -14,17 +14,11 @@
 
 #include <numeric>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// GeoLib
 #include "PointVec.h"
 
-// BaseLib
-#include "quicksort.h"
-
-// MathLib
-#include "MathTools.h"
+#include "MathLib/MathTools.h"
 
 namespace GeoLib
 {
diff --git a/GeoLib/Polygon.cpp b/GeoLib/Polygon.cpp
index 834f1ec3733..7c838dc8460 100644
--- a/GeoLib/Polygon.cpp
+++ b/GeoLib/Polygon.cpp
@@ -12,23 +12,14 @@
  *
  */
 
-#include <cmath>
-#include <cstdlib> // for exit
-
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include "Polygon.h"
 
+#include <logog/include/logog.hpp>
 #include <boost/math/constants/constants.hpp>
 
-#include "Polygon.h"
+#include "BaseLib/quicksort.h"
 
-// MathLib
 #include "AnalyticalGeometry.h"
-#include "MathTools.h"
-#include "Vector3.h"
-
-// BaseLib
-#include "quicksort.h"
 
 namespace GeoLib
 {
diff --git a/GeoLib/Polygon.h b/GeoLib/Polygon.h
index cb10f98beba..82ad848594f 100644
--- a/GeoLib/Polygon.h
+++ b/GeoLib/Polygon.h
@@ -15,11 +15,11 @@
 #ifndef POLYGON_H_
 #define POLYGON_H_
 
-// STL
 #include <list>
+#include <vector>
 
-// GeoLib
 #include "AABB.h"
+#include "Point.h"
 #include "Polyline.h"
 
 namespace GeoLib
diff --git a/GeoLib/Polyline.cpp b/GeoLib/Polyline.cpp
index 2143fd59efd..1d69345f072 100644
--- a/GeoLib/Polyline.cpp
+++ b/GeoLib/Polyline.cpp
@@ -15,13 +15,9 @@
 // STL
 #include <algorithm>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// GeoLib
 #include "Polyline.h"
-
-// MathLib
 #include "AnalyticalGeometry.h"
 
 namespace GeoLib
diff --git a/GeoLib/SensorData.cpp b/GeoLib/SensorData.cpp
index 47130763a7c..4b62c46f79c 100644
--- a/GeoLib/SensorData.cpp
+++ b/GeoLib/SensorData.cpp
@@ -12,17 +12,15 @@
  *
  */
 
+#include "SensorData.h"
+
 #include <cstdlib>
 #include <fstream>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
-#include "SensorData.h"
-
-#include "StringTools.h"
-#include "DateTools.h"
+#include <logog/include/logog.hpp>
 
+#include "BaseLib/StringTools.h"
+#include "BaseLib/DateTools.h"
 
 SensorData::SensorData(const std::string &file_name)
 : _start(0), _end(0), _step_size(0), _time_unit(TimeStepType::NONE)
diff --git a/GeoLib/Station.cpp b/GeoLib/Station.cpp
index e88c3229efa..47d4052bc4b 100644
--- a/GeoLib/Station.cpp
+++ b/GeoLib/Station.cpp
@@ -12,20 +12,13 @@
  *
  */
 
+#include "Station.h"
 
-#include <cmath>
 #include <cstdlib>
-#include <fstream>
-#include <iomanip>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// BaseLib
-#include "DateTools.h"
-#include "StringTools.h"
-// GeoLib
-#include "Station.h"
+#include "BaseLib/StringTools.h"
 
 namespace GeoLib
 {
diff --git a/GeoLib/Station.h b/GeoLib/Station.h
index 0293b2d45ad..cdcebf0bf0e 100644
--- a/GeoLib/Station.h
+++ b/GeoLib/Station.h
@@ -17,10 +17,8 @@
 #define GEO_STATION_H
 
 #include <string>
-#include <vector>
 
 #include "Point.h"
-#include "Polyline.h"
 #include "SensorData.h"
 
 namespace GeoLib
diff --git a/GeoLib/StationBorehole.cpp b/GeoLib/StationBorehole.cpp
index b2e8ff56745..ab896a82fec 100644
--- a/GeoLib/StationBorehole.cpp
+++ b/GeoLib/StationBorehole.cpp
@@ -12,20 +12,16 @@
  *
  */
 
+#include "StationBorehole.h"
 
 #include <cmath>
 #include <cstdlib>
 #include <fstream>
-#include <iomanip>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// BaseLib
-#include "StringTools.h"
-#include "DateTools.h"
-// GeoLib
-#include "StationBorehole.h"
+#include "BaseLib/StringTools.h"
+#include "BaseLib/DateTools.h"
 
 namespace GeoLib
 {
diff --git a/GeoLib/StationBorehole.h b/GeoLib/StationBorehole.h
index 99b13ab9bd9..0419cd50cc8 100644
--- a/GeoLib/StationBorehole.h
+++ b/GeoLib/StationBorehole.h
@@ -19,6 +19,8 @@
 #include "Station.h"
 
 #include <list>
+#include <string>
+#include <vector>
 
 namespace GeoLib
 {
diff --git a/GeoLib/Triangle.cpp b/GeoLib/Triangle.cpp
index ea713719152..3a96530feab 100644
--- a/GeoLib/Triangle.cpp
+++ b/GeoLib/Triangle.cpp
@@ -14,14 +14,10 @@
 
 #include "Triangle.h"
 
-// GeoLib
+#include "Point.h"
 #include "AnalyticalGeometry.h"
 
-// MathLib
-#include "LinAlg/Solvers/GaussAlgorithm.h"
-#include "MathTools.h"
-#include "LinAlg/Dense/DenseMatrix.h"
-#include "Vector3.h"
+#include "MathLib/LinAlg/Solvers/GaussAlgorithm.h"
 
 namespace GeoLib {
 
diff --git a/GeoLib/Triangle.h b/GeoLib/Triangle.h
index cbc22cc00e0..893c7b0db71 100644
--- a/GeoLib/Triangle.h
+++ b/GeoLib/Triangle.h
@@ -17,11 +17,12 @@
 
 #include <vector>
 
-// GeoLib
-#include "Point.h"
+#include "MathLib/Point3d.h"
 
 namespace GeoLib {
 
+class Point;
+
 /** \brief Class Triangle consists of a reference to a point vector and
  * a vector that stores the indices in the point vector.
  * A surface is composed by triangles. The class Surface stores the position
-- 
GitLab