]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
ICoCo - put things in the right order: abn/icoco
authorabn <adrien.bruneton@cea.fr>
Thu, 22 Aug 2019 10:06:25 +0000 (12:06 +0200)
committerabn <adrien.bruneton@cea.fr>
Fri, 23 Aug 2019 08:21:49 +0000 (10:21 +0200)
+ .h files are the official definitions of the interface
+ .hxx files are now also part of the official definition, and forward to the .h
+ rename getField() into getMCField() into MEDField class for clarity

13 files changed:
src/ICoCo/ICoCoField.cpp [new file with mode: 0644]
src/ICoCo/ICoCoField.cxx [deleted file]
src/ICoCo/ICoCoField.h [new file with mode: 0644]
src/ICoCo/ICoCoField.hxx
src/ICoCo/ICoCoMEDField.cxx
src/ICoCo/ICoCoMEDField.h [new file with mode: 0644]
src/ICoCo/ICoCoMEDField.hxx
src/ICoCo/Readme.txt
src/ICoCo/Swig/ICoCoMEDField.i
src/MEDCoupling/CMakeLists.txt
src/MEDCoupling_Swig/ICoCoMEDFieldTest.py
src/ParaMEDMEM/DisjointDEC.cxx
src/ParaMEDMEM/OverlapDEC.cxx

diff --git a/src/ICoCo/ICoCoField.cpp b/src/ICoCo/ICoCoField.cpp
new file mode 100644 (file)
index 0000000..92195af
--- /dev/null
@@ -0,0 +1,54 @@
+// 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
+// License as published by the Free Software Foundation; either
+// 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// WARNING: this file is part of the official ICoCo API and should not be modified.
+// The official version can be found in the TRUST repository:
+//
+//    https://sourceforge.net/projects/trust/
+
+// ICoCo file common to several codes
+// ICoCoField.cxx
+// version 1.2 10/05/2010
+
+#include "ICoCoField.hxx"
+
+#include <string>
+
+using namespace ICoCo;
+using std::string;
+
+Field::Field() {
+  _name=new string;
+}
+
+Field::~Field() {
+  delete _name;
+}
+
+void Field::setName(const string& name) {
+  *_name=name;
+}
+
+const string& Field::getName() const {
+  return *_name;
+}
+
+const char* Field::getCharName() const {
+  return _name->c_str();
+}
diff --git a/src/ICoCo/ICoCoField.cxx b/src/ICoCo/ICoCoField.cxx
deleted file mode 100644 (file)
index 645930d..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// 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
-// License as published by the Free Software Foundation; either
-// 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
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-
-// ICoCo file common to several codes
-// ICoCoField.cxx
-// version 1.2 10/05/2010
-
-#include "ICoCoField.hxx"
-
-#include <string>
-
-using namespace ICoCo;
-using std::string;
-
-Field::Field() {
-  _name=new string;
-}
-
-Field::~Field() {
-  delete _name;
-}
-
-void Field::setName(const string& name) {
-  *_name=name;
-}
-
-const string& Field::getName() const {
-  return *_name;
-}
-
-const char* Field::getCharName() const {
-  return _name->c_str();
-}
diff --git a/src/ICoCo/ICoCoField.h b/src/ICoCo/ICoCoField.h
new file mode 100644 (file)
index 0000000..9c819cf
--- /dev/null
@@ -0,0 +1,44 @@
+// 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
+// License as published by the Free Software Foundation; either
+// 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// WARNING: this file is part of the official ICoCo API and should not be modified.
+// The official version can be found in the TRUST repository:
+//
+//    https://sourceforge.net/projects/trust/
+
+#ifndef _ICoCoField_included_
+#define _ICoCoField_included_
+
+#include <string>
+
+namespace ICoCo {
+
+  class Field {
+  public:
+    Field();
+    virtual ~Field();
+    void setName(const std::string& name);
+    const std::string& getName() const;
+    const char* getCharName() const;
+
+  private:
+    std::string* _name;
+  };
+}
+#endif
index e094ddc7e9d654000af31b6424923d4f39f77bf9..7dbd498e7e8e283e137baa57ee199d5760ba115a 100644 (file)
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-// ICoCo file common to several codes
-// ICoCoField.h
-// version 1.2 10/05/2010
-
-#ifndef _ICoCoField_included_
-#define _ICoCoField_included_
-#include <string>
-
-
-namespace ICoCo {
+// WARNING: this file is part of the official ICoCo API and should not be modified.
+// The official version can be found in the TRUST repository:
+//
+//    https://sourceforge.net/projects/trust/
 
-  class Field {
-  public:
-    Field();
-    virtual ~Field();
-    void setName(const std::string& name);
-    const std::string& getName() const;
-    const char* getCharName() const;
-    
-  private:
-    std::string* _name;
-  };
-}
-#endif
+#include <ICoCoField.h>
index 965ed06c2f383f4db2094da806701c24a18a759f..77ec349777de767bae79d7c354b8240f8789723b 100644 (file)
@@ -23,6 +23,9 @@
 namespace ICoCo
 {
 
+  MEDField::MEDField() : _field(0) {}
+
+
   /*! Constructor directly attaching a MEDCouplingFieldDouble
     the object does not take the control the objects pointed by 
     \a field.
@@ -57,6 +60,11 @@ namespace ICoCo
     return *this;
   }
 
+  MEDCoupling::MEDCouplingFieldDouble *MEDField::getMCField() const
+  {
+    return _field;
+  }
+
   void MEDField::setMCField(MEDCoupling::MEDCouplingFieldDouble * f)
   {
     if(_field)
diff --git a/src/ICoCo/ICoCoMEDField.h b/src/ICoCo/ICoCoMEDField.h
new file mode 100644 (file)
index 0000000..a07443e
--- /dev/null
@@ -0,0 +1,53 @@
+// 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
+// License as published by the Free Software Foundation; either
+// 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// WARNING: this file is part of the official ICoCo API and should not be modified.
+// The official version can be found in the TRUST repository:
+//
+//    https://sourceforge.net/projects/trust/
+
+#ifndef _ICoCoMEDField_included_
+#define _ICoCoMEDField_included_
+
+#include "ICoCoField.h"
+
+namespace MEDCoupling
+{
+  class MEDCouplingFieldDouble;
+}
+
+namespace ICoCo
+{
+  class MEDField : public ICoCo::Field
+  {
+  public:
+    MEDField();
+    MEDField(MEDCoupling::MEDCouplingFieldDouble* field);
+    MEDField(const MEDField& field);
+    MEDField& operator=(const MEDField& field);
+    virtual ~MEDField();
+    MEDCoupling::MEDCouplingFieldDouble *getMCField() const;
+    void setMCField(MEDCoupling::MEDCouplingFieldDouble * f);
+
+  private:
+    MEDCoupling::MEDCouplingFieldDouble *_field;
+  };
+}
+
+#endif
index e460e85fafce95e20a4529227570babb7dee0aff..73149ce325dcb607ddd39fcfc057632f2973ce08 100644 (file)
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-#ifndef __ICOCOMEDFIELD_HXX__
-#define __ICOCOMEDFIELD_HXX__
-
-#include "MEDCouplingUMesh.hxx"
-#include "MEDCouplingFieldDouble.hxx"
-
-#include <vector>
-#include "ICoCoField.hxx"
-
-namespace ICoCo
-{
-  class MEDField : public ICoCo::Field
-  {
-  public:
-    MEDField():_field(0) { }
-    MEDField(MEDCoupling::MEDCouplingFieldDouble* field);
-    MEDField(const MEDField& field);
-    MEDField& operator=(const MEDField& field);
-    virtual ~MEDField();
-    MEDCoupling::MEDCouplingFieldDouble *getMCField() const  { return _field; }
-    void setMCField(MEDCoupling::MEDCouplingFieldDouble * f);
-
-  private:
-    MEDCoupling::MEDCouplingFieldDouble *_field;
-  };
-}
+// WARNING: this file is part of the official ICoCo API and should not be modified.
+// The official version can be found in the TRUST repository:
+//
+//    https://sourceforge.net/projects/trust/
 
-#endif
+#include <ICoCoMEDField.h>
index 5117faae394d6127d5f654671fd7020430fcad77..5e3f62e6b06c9333245a8641a5bea9f79f700dbf 100644 (file)
@@ -1 +1,10 @@
 Linked into target 'medcoupling' library. 
+
+The files below are part of the official ICoCo API and should NOT be modified:
+    - ICoCoField.h
+    - ICoCoField.cxx
+    - ICoCoMEDField.h
+
+Their official version can be found in the TRUST repository:
+
+    https://sourceforge.net/projects/trust/
index dad8b1ace4670e11df5e8d40440e45a7c623f1b1..3d50cb7ee88a76c22010ef0951e9b1b56e0aa6d4 100644 (file)
 //
 // Author : Adrien Bruneton (CEA)
 
-
 %{
-#include "ICoCoMEDField.hxx"
-
-using namespace MEDCoupling;
+#include "ICoCoMEDField.h"
 %}
 
-namespace ICoCo
-{
-  class MEDField
-  {
-  public:
-    MEDField();
-    MEDField(MEDCoupling::MEDCouplingFieldDouble* field);
-    MEDField(const MEDField& field);
-    MEDField& operator=(const MEDField& field);
-    MEDCoupling::MEDCouplingFieldDouble *getMCField() const;
-    void setMCField(MEDCoupling::MEDCouplingFieldDouble * f);
-  };
-}
-
-
+%include "std_string.i"
+%include "ICoCoField.h"
+%include "ICoCoMEDField.h"
index 42395cf21b7d89380ad8e604b61ea803e224ba9a..b8d9e5d1666869dba572df2fae2282d9605a46c2 100644 (file)
@@ -33,6 +33,7 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/Geometric2D
   ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/ExprEval
   ${CMAKE_CURRENT_SOURCE_DIR}/../INTERP_KERNEL/GaussPoints
+  ${CMAKE_CURRENT_SOURCE_DIR}/../ICoCo
   )
 
 SET(medcoupling_SOURCES
@@ -72,7 +73,7 @@ SET(medcoupling_SOURCES
   MEDCouplingPartDefinition.cxx
   MEDCouplingSkyLineArray.cxx
   MEDCouplingVoronoi.cxx
-  ../ICoCo/ICoCoField.cxx
+  ../ICoCo/ICoCoField.cpp      # [ABN] Yes, .cpp, this is imposed by ICoCo.
   ../ICoCo/ICoCoMEDField.cxx
   )
 
@@ -89,7 +90,9 @@ ADD_LIBRARY(medcouplingremapper ${medcouplingremapper_SOURCES})
 TARGET_LINK_LIBRARIES(medcouplingremapper medcouplingcpp)
 INSTALL(TARGETS medcouplingremapper EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${MEDCOUPLING_INSTALL_LIBS})
 
-FILE(GLOB medcoupling_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx" "${CMAKE_CURRENT_SOURCE_DIR}/../ICoCo/*.hxx")
+FILE(GLOB medcoupling_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx" 
+                                  "${CMAKE_CURRENT_SOURCE_DIR}/../ICoCo/*.hxx"
+                                  "${CMAKE_CURRENT_SOURCE_DIR}/../ICoCo/*.h")
 FILE(GLOB medcoupling_HEADERS_TXX "${CMAKE_CURRENT_SOURCE_DIR}/*.txx")
 FILE(GLOB icoco_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/../ICoCo/*.hxx")
 INSTALL(FILES ${medcoupling_HEADERS_HXX} ${medcoupling_HEADERS_TXX} ${icoco_HEADERS_HXX} MEDCouplingNatureOfFieldEnum DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
index 63210af2fbd7b8e2645e47adeb5f3ecf447cf7db..5dae2d4d107eeb22f4e1a490f339ad6e3efc9526 100755 (executable)
@@ -30,7 +30,7 @@ import unittest
 class ICoCoMEDFieldTest(unittest.TestCase):
   def generate_fields(self):
     ## Dummy MCFieldDouble
-    msh = MEDCouplingCMesh()
+    msh = MEDCouplingCMesh("toto")
     msh.setCoords(DataArrayDouble([0.,1.,2.]))
     msh = msh.buildUnstructured()
     f1 = MEDCouplingFieldDouble(ON_CELLS, ONE_TIME)
@@ -46,6 +46,8 @@ class ICoCoMEDFieldTest(unittest.TestCase):
   def test1(self):
     f1, f2 = self.generate_fields()
     mf = MEDField()
+    mf.setName("titi")
+    self.assertEqual(mf.getName(), "titi")
     mfd = mf.getMCField()
     self.assertTrue(mfd is None)
     mf.setMCField(f1)
index 28b4b1dcedcb70fb8785240f334ae56b1b9556ce..1a93f97797bc9099a07192f5405c0fc098b271e5 100644 (file)
@@ -307,7 +307,7 @@ namespace MEDCoupling
       return ;
     if(!field)
       throw INTERP_KERNEL::Exception("DisjointDEC::attachLocalField : ICoCo::MEDField pointer is NULL !");
-    attachLocalField(field->getField());
+    attachLocalField(field->getMCField());
   }
   
   /*!
index fe06c5290979b152e82f2d38142630ef78aa6f8f..7e62de26eb28e19a6b159d8b851306d835669bd6 100644 (file)
@@ -351,12 +351,12 @@ namespace MEDCoupling
 
   void OverlapDEC::attachSourceLocalField(ICoCo::MEDField *field)
   {
-    attachSourceLocalField(field->getField());
+    attachSourceLocalField(field->getMCField());
   }
 
   void OverlapDEC::attachTargetLocalField(ICoCo::MEDField *field)
   {
-    attachTargetLocalField(field->getField());
+    attachTargetLocalField(field->getMCField());
   }
 
   bool OverlapDEC::isInGroup() const