Salome HOME
Updated copyright comment
[modules/hexablock.git] / src / HEXABLOCK / HexElements.hxx
old mode 100755 (executable)
new mode 100644 (file)
index 0f3aa21..6696c5d
@@ -1,12 +1,12 @@
 
 // Class : Gestion des tableaux d'hexaedres
 
-// Copyright (C) 2009-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2009-2024  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -23,7 +23,6 @@
 #ifndef __ELEMENTS_H
 #define __ELEMENTS_H
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 #include "HexMatrix.hxx"
 
@@ -31,7 +30,8 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Elements : public EltBase
+class Qpattern;
+class HexaExport Elements : public EltBase
 {
 public:
    virtual Hexa*   getHexa   (int nro);
@@ -113,13 +113,20 @@ public:
                            int nrad, int nang, int nhaut,
                            double &phi0, double &phi1);
 
-   int replaceHexas (Quads& pattern, Vertex* p1, Vertex* c1,
+   int replaceHexas (Quads& pattern, Vertex* p1, Vertex* c1, // To Delete
                      Vertex* p2, Vertex* c2,  Vertex* p3, Vertex* c3);
 
+   int replaceHexas (Quads& pattern, Quads& target, Vertex* p1, Vertex* c1,
+                     Vertex* p2, Vertex* c2);
+
    int replaceHexa  (int nh, Pattern* pat, Hexa* hexa);
    int replaceQuad  (int nh, Pattern* pat, Quad* quad, Vertex* tvert[]);
    int extrudeQuad  (Pattern* pat);
 
+   int replaceHexa  (int nh, Qpattern* pat);
+   int replaceQuad  (int nh, Qpattern* pat);
+   int extrudeQuad  (Qpattern* pat);
+
    void repVertex (int nh, int nro, Vertex* node);
    void repEdgeH  (int nh, int nro, Edge* node);
    void repEdgeV  (int nh, int nro, Edge* node);
@@ -195,6 +202,10 @@ public:
    void checkDisco  (Hexa* cell,    Quad*   element);
    void checkDisco  (Hexa* cell,    Edge*   element);
    void checkDisco  (Hexa* cell,    Vertex* element);
+   void checkContour (Quads& tquad, Vertex* v1, Vertex* v2, bool target, 
+                      Edges& tedge);
+   void checkContour (Quads& tquad, Vertex* v1, Vertex* v2, bool target, 
+                      Vertices& tvertex);
 
 protected :
                                         // Evols Hexa3