From f7aa3ebeb39d0343b730c0f6e06fb6c490c60d35 Mon Sep 17 00:00:00 2001
From: Karsten Rink <karsten.rink@ufz.de>
Date: Wed, 26 Mar 2014 16:30:47 +0100
Subject: [PATCH] added node ording test to validation method of element types

---
 MeshLib/Elements/TemplateHex-impl.h     | 1 +
 MeshLib/Elements/TemplatePrism-impl.h   | 1 +
 MeshLib/Elements/TemplatePyramid-impl.h | 3 +++
 MeshLib/Elements/TemplateQuad-impl.h    | 1 +
 MeshLib/Elements/TemplateTet-impl.h     | 1 +
 MeshLib/Elements/TemplateTri-impl.h     | 1 +
 6 files changed, 8 insertions(+)

diff --git a/MeshLib/Elements/TemplateHex-impl.h b/MeshLib/Elements/TemplateHex-impl.h
index 64bbb3c482d..3a495484b18 100644
--- a/MeshLib/Elements/TemplateHex-impl.h
+++ b/MeshLib/Elements/TemplateHex-impl.h
@@ -170,6 +170,7 @@ ElementErrorCode TemplateHex<NNODES,CELLHEXTYPE>::validate() const
 		error_code |= quad->validate();
 		delete quad;
 	}
+	error_code[ElementErrorFlag::NodeOrder]  = !this->testElementNodeOrder();
 	return error_code;
 }
 
diff --git a/MeshLib/Elements/TemplatePrism-impl.h b/MeshLib/Elements/TemplatePrism-impl.h
index 2decf3bcb57..2fc811a73d9 100644
--- a/MeshLib/Elements/TemplatePrism-impl.h
+++ b/MeshLib/Elements/TemplatePrism-impl.h
@@ -179,6 +179,7 @@ ElementErrorCode TemplatePrism<NNODES,CELLPRISMTYPE>::validate() const
 			error_code.set(ElementErrorFlag::NodeOrder);
 		delete quad;
 	}
+	error_code[ElementErrorFlag::NodeOrder] = !this->testElementNodeOrder();
 	return error_code;
 }
 
diff --git a/MeshLib/Elements/TemplatePyramid-impl.h b/MeshLib/Elements/TemplatePyramid-impl.h
index 4df80819c0e..31afb22c029 100644
--- a/MeshLib/Elements/TemplatePyramid-impl.h
+++ b/MeshLib/Elements/TemplatePyramid-impl.h
@@ -174,7 +174,10 @@ ElementErrorCode TemplatePyramid<NNODES,CELLPYRAMIDTYPE>::validate() const
 
 	const MeshLib::Quad* base (dynamic_cast<const MeshLib::Quad*>(this->getFace(4)));
 	if (base)
+	{
 		error_code |= base->validate();
+		error_code[ElementErrorFlag::NodeOrder] = !this->testElementNodeOrder();
+	}
 	else
 		error_code.set(ElementErrorFlag::NodeOrder);
 	delete base;
diff --git a/MeshLib/Elements/TemplateQuad-impl.h b/MeshLib/Elements/TemplateQuad-impl.h
index ab017977b14..75f4f97f0a2 100644
--- a/MeshLib/Elements/TemplateQuad-impl.h
+++ b/MeshLib/Elements/TemplateQuad-impl.h
@@ -129,6 +129,7 @@ ElementErrorCode TemplateQuad<NNODES,CELLQUADTYPE>::validate() const
 	if (!error_code[ElementErrorFlag::ZeroVolume]) 
 		error_code[ElementErrorFlag::NonConvex]   = (!(GeoLib::dividedByPlane(*_nodes[0], *_nodes[2], *_nodes[1], *_nodes[3]) &&
 			                                           GeoLib::dividedByPlane(*_nodes[1], *_nodes[3], *_nodes[0], *_nodes[2])));
+	error_code[ElementErrorFlag::NodeOrder]  = !this->testElementNodeOrder();
 	return error_code;
 }
 
diff --git a/MeshLib/Elements/TemplateTet-impl.h b/MeshLib/Elements/TemplateTet-impl.h
index 49370381650..ceb9ffcb372 100644
--- a/MeshLib/Elements/TemplateTet-impl.h
+++ b/MeshLib/Elements/TemplateTet-impl.h
@@ -149,6 +149,7 @@ ElementErrorCode TemplateTet<NNODES,CELLTETTYPE>::validate() const
 {
 	ElementErrorCode error_code;
 	error_code[ElementErrorFlag::ZeroVolume] = this->hasZeroVolume();
+	error_code[ElementErrorFlag::NodeOrder]  = !this->testElementNodeOrder();
 	return error_code;
 }
 
diff --git a/MeshLib/Elements/TemplateTri-impl.h b/MeshLib/Elements/TemplateTri-impl.h
index 5bae658eba7..736e8195a0e 100644
--- a/MeshLib/Elements/TemplateTri-impl.h
+++ b/MeshLib/Elements/TemplateTri-impl.h
@@ -85,6 +85,7 @@ ElementErrorCode TemplateTri<NNODES,CELLTRITYPE>::validate() const
 { 
 	ElementErrorCode error_code;
 	error_code[ElementErrorFlag::ZeroVolume] = this->hasZeroVolume();
+	error_code[ElementErrorFlag::NodeOrder]  = !this->testElementNodeOrder();
 	return error_code;
 }
 
-- 
GitLab