Salome HOME
22752: [EDF] Provide explicit feedback on what has been done by Shape Processing...
[modules/geom.git] / src / GEOMImpl / GEOMImpl_Gen.cxx
index 4b91160ba33d4b899cd565a92a28ad9f29fd17b3..081bf21255d9beff033d080d1dcee6b5f2bc0e74 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // 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
@@ -20,7 +20,7 @@
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-#ifdef WNT
+#ifdef WIN32
 #pragma warning( disable:4786 )
 #endif
 
@@ -82,6 +82,7 @@
 #include <GEOMImpl_FillingDriver.hxx>
 #include <GEOMImpl_GlueDriver.hxx>
 #include <GEOMImpl_MeasureDriver.hxx>
+#include <GEOMImpl_FieldDriver.hxx>
 
 //=============================================================================
 /*!
@@ -163,6 +164,11 @@ GEOMImpl_Gen::GEOMImpl_Gen()
    // Measurements
    TFunction_DriverTable::Get()->AddDriver(GEOMImpl_MeasureDriver::GetID(), new GEOMImpl_MeasureDriver());
 
+   // Field
+   TFunction_DriverTable::Get()->AddDriver(GEOMImpl_FieldDriver::GetID(), new GEOMImpl_FieldDriver());
+
+   /*@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@*/
+
    SetEngine(this);
 }
 
@@ -223,6 +229,10 @@ GEOMImpl_Gen::~GEOMImpl_Gen()
   std::map<int, GEOMImpl_IGroupOperations*>::iterator aGroupIter = _mapOfGroupOperations.begin();
   for (; aGroupIter != _mapOfGroupOperations.end(); aGroupIter++)
     delete (*aGroupIter).second;
+
+  std::map<int, GEOMImpl_IFieldOperations*>::iterator aFieldIter = _mapOfFieldOperations.begin();
+  for (; aFieldIter != _mapOfFieldOperations.end(); aFieldIter++)
+    delete (*aFieldIter).second;
 }
 
 //=============================================================================
@@ -392,3 +402,17 @@ GEOMImpl_IGroupOperations* GEOMImpl_Gen::GetIGroupOperations(int theDocID)
 
   return _mapOfGroupOperations[theDocID];
 }
+
+//=============================================================================
+/*!
+ * GetIFieldOperations
+ */
+//=============================================================================
+GEOMImpl_IFieldOperations* GEOMImpl_Gen::GetIFieldOperations(int theDocID)
+{
+  if(_mapOfFieldOperations.find(theDocID) == _mapOfFieldOperations.end()) {
+    _mapOfFieldOperations[theDocID] = new GEOMImpl_IFieldOperations(this, theDocID);
+  }
+
+  return _mapOfFieldOperations[theDocID];
+}