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