Salome HOME
Merge branch 'V9_2_2_BR'
[tools/medcoupling.git] / src / INTERP_KERNEL / GaussPoints / InterpKernelGaussCoords.hxx
index 12c706e821ff5a544cc54116e5cf65b51c910a6d..a263134e88bf711508376c51bc28bbed30b8631f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2019  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -47,24 +47,61 @@ namespace INTERP_KERNEL
 
     INTERPKERNEL_EXPORT int getGaussCoordDim() const;
     INTERPKERNEL_EXPORT int getReferenceCoordDim() const;
+    INTERPKERNEL_EXPORT DataVector getGaussCoords() const { return _my_gauss_coord; }
+    INTERPKERNEL_EXPORT DataVector getRefCoords() const { return _my_reference_coord; }
+    INTERPKERNEL_EXPORT NormalizedCellType getGeoType() const { return _my_geometry; }
 
     INTERPKERNEL_EXPORT int getNbGauss() const;
     INTERPKERNEL_EXPORT int getNbRef() const;
 
+    INTERPKERNEL_EXPORT GaussInfo convertToLinear() const;
+
     INTERPKERNEL_EXPORT const double* getFunctionValues( const int theGaussId ) const;
 
     INTERPKERNEL_EXPORT void initLocalInfo();
     
     INTERPKERNEL_EXPORT static std::vector<double> NormalizeCoordinatesIfNecessary(NormalizedCellType ct, int inputDim, const std::vector<double>& inputArray);
 
+  public:
+    static const double SEG2A_REF[2];
+    static const double SEG2B_REF[2];
+    static const double SEG3_REF[3];
+    static const double TRIA3A_REF[6];
+    static const double TRIA3B_REF[6];
+    static const double TRIA6A_REF[12];
+    static const double TRIA6B_REF[12];
+    static const double TRIA7A_REF[14];
+    static const double QUAD4A_REF[8];
+    static const double QUAD4B_REF[8];
+    static const double QUAD8A_REF[16];
+    static const double QUAD8B_REF[16];
+    static const double QUAD9A_REF[18];
+    static const double TETRA4A_REF[12];
+    static const double TETRA4B_REF[12];
+    static const double TETRA10A_REF[30];
+    static const double TETRA10B_REF[30];
+    static const double PYRA5A_REF[15];
+    static const double PYRA5B_REF[15];
+    static const double PYRA13A_REF[39];
+    static const double PYRA13B_REF[39];
+    static const double PENTA6A_REF[18];
+    static const double PENTA6B_REF[18];
+    static const double PENTA15A_REF[45];
+    static const double PENTA15B_REF[45];
+    static const double HEXA8A_REF[24];
+    static const double HEXA8B_REF[24];
+    static const double HEXA20A_REF[60];
+    static const double HEXA20B_REF[60];
+    static const double HEXA27A_REF[81];
   protected:
-
+    static bool IsSatisfy(const std::vector<double>& ref1, const std::vector<double>& ref2);
     bool isSatisfy();
     
     void point1Init();
     
     //1D
-    void seg2Init();
+    void seg2aInit();
+    void seg2bInit();
     void seg3Init();
 
     //2D