X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHEXABLOCK%2FHexHexa.cxx;h=ededa53038f4a7e199a8ee34782b2bb8b0fed8e1;hb=5347e8abe119e8704d59c83638836f0fd94c732e;hp=c1d859d4e5307d835bb1cedf30c38db5538bb86e;hpb=81738b4db527ae6b71bf4ef7129fac5936c0b47c;p=modules%2Fhexablock.git diff --git a/src/HEXABLOCK/HexHexa.cxx b/src/HEXABLOCK/HexHexa.cxx index c1d859d..ededa53 100755 --- a/src/HEXABLOCK/HexHexa.cxx +++ b/src/HEXABLOCK/HexHexa.cxx @@ -1106,8 +1106,29 @@ Edge* Hexa::findEdge (Vertex* v1, Vertex* v2) return NULL; } -// ====================================================== getPerpendicularEdge -Edge* Hexa::getPerpendicularEdge (Quad* quad, Vertex* vertex) +// ====================================================== opposedVertex +Vertex* Hexa::opposedVertex (Quad* quad, Vertex* vertex) +{ + if (quad==NULL || vertex==NULL) + return NULL; + + int nv = quad->indexVertex (vertex); + int nq = findQuad (quad); + if (nv<0 || nq<0) + return NULL; + + for (int nro=0 ; nroindex (vertex); + if (nv>=0 && quad->indexEdge(edge) <0) + return edge->getVertex (1-nv); + } + + return NULL; +} +// ====================================================== perpendicularEdge +Edge* Hexa::perpendicularEdge (Quad* quad, Vertex* vertex) { if (quad==NULL || vertex==NULL) return NULL; @@ -1125,6 +1146,29 @@ Edge* Hexa::getPerpendicularEdge (Quad* quad, Vertex* vertex) return NULL; } +// ====================================================== perpendicularQuad +Quad* Hexa::perpendicularQuad (Quad* quad, Edge* edge) +{ + if (BadElement (quad) || BadElement (edge)) + return NULL; + + int qed = quad->indexEdge (edge); + int ned = findEdge (edge); + int nq = findQuad (quad); + if (qed <0 || ned<0 || nq<0) + return NULL; + + for (int nro=0 ; nroindexEdge (edge)>=0) + return face; + } + } + return NULL; +} // ============================================================ getQuad Quad* Hexa::getQuad (int nro) {