]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Merge from V6_main BR_OPENCV
authorgdd <gdd>
Tue, 8 Nov 2011 13:24:03 +0000 (13:24 +0000)
committergdd <gdd>
Tue, 8 Nov 2011 13:24:03 +0000 (13:24 +0000)
63 files changed:
adm_local/unix/config_files/Makefile.am
configure.ac
doc/Makefile.am
doc/docutils/Makefile.am
resources/Makefile.am
resources/Plugin [deleted file]
resources/Plugin.in [new file with mode: 0644]
resources/SalomeApp.xml.in
src/EntityGUI/EntityGUI_SketcherDlg.cxx
src/GEOM/GEOM_DataMapOfAsciiStringTransient.hxx
src/GEOM/GEOM_Engine.cxx
src/GEOMAlgo/GEOMAlgo_BuilderTools.cxx
src/GEOMAlgo/GEOMAlgo_Builder_2.cxx
src/GEOMAlgo/GEOMAlgo_DataMapOfOrientedShapeShape.hxx
src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger.hxx
src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape.hxx
src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape.hxx
src/GEOMAlgo/GEOMAlgo_DataMapOfShapeMapOfShape.hxx
src/GEOMAlgo/GEOMAlgo_DataMapOfShapePnt.hxx
src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal.hxx
src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet.hxx
src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cxx
src/GEOMAlgo/GEOMAlgo_GetInPlace_1.cxx
src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape.hxx
src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx
src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx
src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox.hxx
src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx
src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState.hxx
src/GEOMGUI/GEOM_Displayer.cxx
src/GEOMGUI/GEOM_msg_fr.ts
src/GEOMGUI/GeometryGUI.cxx
src/GEOMImpl/GEOMImpl_ArchimedeDriver.cxx
src/GEOMImpl/GEOMImpl_BooleanDriver.cxx
src/GEOMImpl/GEOMImpl_BoxDriver.cxx
src/GEOMImpl/GEOMImpl_FillingDriver.cxx
src/GEOMImpl/GEOMImpl_IHealingOperations.cxx
src/GEOMImpl/GEOMImpl_IShapesOperations.cxx
src/GEOMImpl/GEOMImpl_PlaneDriver.cxx
src/GEOMImpl/GEOMImpl_ShapeDriver.cxx
src/GEOMImpl/GEOMImpl_Types.hxx
src/GEOMImpl/GEOMImpl_VectorDriver.cxx
src/GEOM_PY/geomtools.py
src/GEOM_SWIG/geompyDC.py
src/GroupGUI/GroupGUI_GroupDlg.cxx
src/IGESExport/IGESExport.cxx
src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger.hxx
src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx
src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape.hxx
src/NMTDS/NMTDS_IndexedDataMapOfShapeBndSphere.hxx
src/NMTDS/NMTDS_IndexedDataMapOfShapeBox.hxx
src/NMTTools/NMTTools_DataMapOfIntegerFaceInfo.hxx
src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock.hxx
src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx
src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx
src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock.hxx
src/NMTTools/NMTTools_PaveFiller.cdl
src/NMTTools/NMTTools_PaveFiller.hxx
src/NMTTools/NMTTools_PaveFiller_6.cxx
src/NMTTools/NMTTools_PaveFiller_8.cxx
src/STEPImport/STEPImport.cxx
src/ShHealOper/ShHealOper_ChangeOrientation.cxx
src/ShHealOper/ShHealOper_FillHoles.cxx

index 66230c1fe600ec6e41777ceadf34b30e8c8623be..b2687da746449a65352b513971680efbe12f00b0 100644 (file)
@@ -21,4 +21,5 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 dist_admlocalm4_DATA = \
 check_GEOM.m4 \
-check_GUI.m4
+check_GUI.m4 \
+check_OpenCV.m4
index 1adb80209366726f04ee49b8a1dd685a279b58cd..8849337c387421d0f8a65afdd6df5de29b8fdeea 100644 (file)
@@ -477,6 +477,7 @@ AC_OUTPUT([ \
   resources/Makefile \
   resources/GEOMCatalog.xml \
   resources/SalomeApp.xml \
+  resources/Plugin \
   idl/Makefile \
   Makefile \
 ])
index b2d61e363a93cb4fed17ec34fee15daefa08303a..f6dc56cf42f2503b9330cab76ff88c020dec6fe8 100644 (file)
@@ -23,6 +23,7 @@
 # Modified by : Alexander BORODIN (OCN) - autotools usage
 #
 SUBDIRS = salome docutils
+#SUBDIRS = salome
 
 usr_docs:
        (cd salome && $(MAKE) $(AM_MAKEFLAGS) usr_docs)
index 7e0f8bfc849dec270c4770a7450d84e02984f609..5d077ad627bb5bb3582f67cc159d3a7c17eb18ab 100644 (file)
@@ -38,9 +38,17 @@ SPHINXBUILD     = sphinx-build
 PAPEROPT_a4     = -D latex_paper_size=a4
 ALLSPHINXOPTS   = -d doctrees $(PAPEROPT_a4) $(SPHINXOPTS) $(SOURCEDIR)
 
+if GEOM_ENABLE_GUI
+SPHINX_PYTHONPATH = $(prefix)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(GUI_ROOT_DIR)/lib/salome:$(GUI_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(GUI_ROOT_DIR)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(KERNEL_ROOT_DIR)/bin/salome:$(KERNEL_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(KERNEL_ROOT_DIR)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages
+else !GEOM_ENABLE_GUI
 SPHINX_PYTHONPATH = $(prefix)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(prefix)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(KERNEL_ROOT_DIR)/bin/salome:$(KERNEL_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(KERNEL_ROOT_DIR)/lib64/python$(PYTHON_VERSION)/site-packages/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages
+endif
 
+if GEOM_ENABLE_GUI
+SPHINX_LD_LIBRARY_PATH = $(GUI_ROOT_DIR)/lib/salome:$(KERNEL_ROOT_DIR)/lib/salome:$(OMNIORB_ROOT)/lib
+else !GEOM_ENABLE_GUI
 SPHINX_LD_LIBRARY_PATH = $(KERNEL_ROOT_DIR)/lib/salome:$(OMNIORB_ROOT)/lib
+endif
 
 
 .PHONY: latex
index a5711e81072be0c6c020cd1ef49c41eb6026fad9..6313fd6c72459efb4d8c9a7dba5527ffc78343ef 100644 (file)
@@ -28,8 +28,6 @@ dist_salomeres_DATA =         \
 GEOM_en.xml                    \
 GEOM_fr.xml                    \
 GEOM.config                    \
-$(top_builddir)/resources/SalomeApp.xml                        \
-Plugin                         \
 GEOMDS_Resources               \
 ImportExport                   \
 ShHealing                      \
@@ -248,4 +246,4 @@ ADVANCED_RESOURCES += dlg_pipetshapefilletrf.png
 dist_salomeres_DATA += $(ADVANCED_RESOURCES)
 
 # VSR: little trick to avoid putting if GEOMCatalog.xml to the distribution archive
-nodist_salomeres_SCRIPTS = GEOMCatalog.xml
+nodist_salomeres_SCRIPTS = GEOMCatalog.xml SalomeApp.xml Plugin
diff --git a/resources/Plugin b/resources/Plugin
deleted file mode 100755 (executable)
index 895d655..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-! Description of available plugins
-! ********************************
-!
-a148e300-5740-11d1-a904-080036aaa103.Location: FWOSPlugin
-!
-! standard attribute drivers plugin
-!
-ad696000-5b34-11d1-b5ba-00a0c9064368.Location: StdPlugin
-ad696001-5b34-11d1-b5ba-00a0c9064368.Location: StdPlugin
-ad696002-5b34-11d1-b5ba-00a0c9064368.Location: StdPlugin
diff --git a/resources/Plugin.in b/resources/Plugin.in
new file mode 100644 (file)
index 0000000..3d4fad5
--- /dev/null
@@ -0,0 +1,10 @@
+! Description of available plugins
+! ********************************
+!
+a148e300-5740-11d1-a904-080036aaa103.Location: FWOSPlugin
+!
+! standard attribute drivers plugin
+!
+ad696000-5b34-11d1-b5ba-00a0c9064368.Location: @CAS_STDPLUGIN@
+ad696001-5b34-11d1-b5ba-00a0c9064368.Location: @CAS_STDPLUGIN@
+ad696002-5b34-11d1-b5ba-00a0c9064368.Location: @CAS_STDPLUGIN@
index ee739d075ef192cbd565d03c876f99f0c7c3f49d..dc59f51f562857e3e9e864f08008ad579c3a3722 100644 (file)
     <parameter name="name" value="Geometry"/>
     <parameter name="icon" value="ModuleGeom.png"/>
     <parameter name="documentation" value="geom_help"/>
-    <parameter name="GEOM_VERSION" value="@VERSION@"/>
+    <parameter name="version" value="@VERSION@"/>
   </section>
   <section name="geom_help" >
     <parameter name="sub_menu"          value="%1 module"/>
-    <parameter name="User's Guide"      value="${GEOM_ROOT_DIR}/share/doc/salome/gui/GEOM/index.html"/>
-    <parameter name="Developer's Guide" value="${GEOM_ROOT_DIR}/share/doc/salome/tui/GEOM/index.html"/>
+    <parameter name="User's Guide"      value="%GEOM_ROOT_DIR%/share/doc/salome/gui/GEOM/index.html"/>
+    <parameter name="Developer's Guide" value="%GEOM_ROOT_DIR%/share/doc/salome/tui/GEOM/index.html"/>
   </section>
   <section name="resources">
     <!-- Module resources -->
-    <parameter name="GEOM" value="${GEOM_ROOT_DIR}/share/salome/resources/geom"/>
+    <parameter name="GEOM" value="%GEOM_ROOT_DIR%/share/salome/resources/geom"/>
   </section>
   <section name="Geometry" >
     <!-- Other module preferences -->
index f3fa98bf22842786e3a6822afaf6657e7f039860..27604981e15383083916dec23ca9ecec26e23307 100644 (file)
@@ -91,7 +91,7 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent,
   topLayout->setMargin( 9 ); topLayout->setSpacing( 6 );
 
   MainWidget->buttonCancel->setText( tr( "GEOM_BUT_CANCEL" ) );
-  MainWidget->buttonEnd->setText( tr( "GEOM_BUT_END_SKETCH" ) );
+  MainWidget->buttonEnd->setText( tr( "GEOM_BUT_CLOSE" ) );
   MainWidget->buttonClose->setText( tr( "GEOM_BUT_CLOSE_SKETCH" ) );
   MainWidget->buttonHelp->setText( tr( "GEOM_BUT_HELP" ) );
 
@@ -978,7 +978,7 @@ void EntityGUI_SketcherDlg::ClickOnEnd()
       myCommand.append( ":WW" );
   }
   else {
-    // PAL16008 (Sketcher Validation should be equal to Apply&Close)
+    /*// PAL16008 (Sketcher Validation should be equal to Apply&Close)
     if ( ( Group1Spin->buttonApply->isEnabled() && Group1Spin->isVisible() ) ||
          ( Group2Spin->buttonApply->isEnabled() && Group2Spin->isVisible() ) ||
          ( Group3Spin->buttonApply->isEnabled() && Group3Spin->isVisible() ) ||
@@ -987,7 +987,7 @@ void EntityGUI_SketcherDlg::ClickOnEnd()
          ( Group2Sel->buttonApply->isEnabled()  && Group2Sel->isVisible()  ) ||
          ( Group1Sel1Spin->buttonApply->isEnabled() && Group1Sel1Spin->isVisible() ) )  {     
       ClickOnApply();
-    }
+    }*/
     myIsAllAdded = true;
   }
 
index 0ab59d32771ce9aff3d0dc799d371a849b6037d6..8f5472dd2045147bf8bdf248a83bf1fd8931e0ce 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOM_DataMapOfAsciiStringTransient_HeaderFile
 #define _GEOM_DataMapOfAsciiStringTransient_HeaderFile
@@ -38,6 +37,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class TCollection_AsciiString;
@@ -45,7 +45,6 @@ class Standard_Transient;
 class GEOM_DataMapNodeOfDataMapOfAsciiStringTransient;
 class GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -53,6 +52,8 @@ class GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
+
 class GEOM_DataMapOfAsciiStringTransient  : public TCollection_BasicMap {
 
 public:
@@ -69,6 +70,7 @@ public:
       { 
         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
       }
+
  // Methods PUBLIC
  // 
 Standard_EXPORT GEOM_DataMapOfAsciiStringTransient(const Standard_Integer NbBuckets = 1);
@@ -100,40 +102,18 @@ Standard_EXPORT   Handle_Standard_Transient& ChangeFind(const TCollection_AsciiS
   return ChangeFind(K);
 }
 
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const TCollection_AsciiString& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const TCollection_AsciiString& K);
+#endif
 
 private: 
-
  // Methods PRIVATE
  // 
 Standard_EXPORT GEOM_DataMapOfAsciiStringTransient(const GEOM_DataMapOfAsciiStringTransient& Other);
-
-
- // Fields PRIVATE
- //
-
-
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index 9bb45f6f357b52e7fc2862b8435dba2d1b96a8b4..53addff1f700071f7a4d62aa30f8d15990f3b169 100644 (file)
@@ -522,7 +522,11 @@ bool GEOM_Engine::Save(int theDocID, char* theFileName)
 bool GEOM_Engine::Load(int theDocID, char* theFileName)
 {
   Handle(TDocStd_Document) aDoc;
-  if(_OCAFApp->Open(theFileName, aDoc) != CDF_RS_OK) {
+#if OCC_VERSION_LARGE > 0x06050100 // For OCCT6.5.2 and higher
+  if (_OCAFApp->Open(theFileName, aDoc) != PCDM_RS_OK) {
+#else
+  if (_OCAFApp->Open(theFileName, aDoc) != CDF_RS_OK) {
+#endif
     return false;
   }
 
@@ -1254,6 +1258,12 @@ void ReplaceVariables(TCollection_AsciiString& theCommand,
             else
               aEndParamPos = aSection.Length() + 1;
 
+            if(MYDEBUG)
+              cout<<"aParamIndex: "<<aParamIndex<<" aStartParamPos: " <<aStartParamPos<<" aEndParamPos: "<<aEndParamPos<<endl;
+
+           if ( aStartParamPos == aEndParamPos)
+             continue;
+
             aParameter = aSection.SubString(aStartParamPos, aEndParamPos-1);
             if(MYDEBUG)
               cout<<"aParameter: "<<aParameter<<endl;
index 82cbf8c24b3e0250daf0827ea938941f8bc2a7f4..7c147907eb828c1ca71fdb7e1a5f49ea91294600 100755 (executable)
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 // File:        GEOMAlgo_BuilderTools.cxx
-// Created:     
 // Author:      Peter KURNEV
-//              <pkv@irinox>
-//
+
 #include <GEOMAlgo_BuilderTools.ixx>
 
+#include <Basics_OCCTVersion.hxx>
+
 #include <TColStd_Array1OfReal.hxx>
 
 #include <gp_Pnt2d.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopExp_Explorer.hxx>
 
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+#include <TopExp.hxx>
+#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
+#endif
+
 #include <BRep_Tool.hxx>
 #include <BRepBndLib.hxx>
 #include <BRepMesh_FastDiscret.hxx>
@@ -276,5 +280,12 @@ void BuildTriangulation(const TopoDS_Face& aF)
                                Standard_True,
                                Standard_False,
                                Standard_True);
+
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  TopTools_IndexedDataMapOfShapeListOfShape anAncestors;
+  TopExp::MapShapesAndAncestors(aF, TopAbs_EDGE, TopAbs_FACE, anAncestors);
+  aMesher.Add(aF, anAncestors);
+#else
   aMesher.Add(aF);
+#endif
 }
index dc0c5c228d42545cf6c7346bbe1d9341941df025..e0ded7c48c1d1951e5b0d955beb9d05a8f3236a9 100755 (executable)
 #include <TopTools_DataMapOfIntegerShape.hxx>
 #include <TColStd_ListOfInteger.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TopTools_DataMapOfShapeInteger.hxx>
 
 static
   void UpdateCandidates(const Standard_Integer ,
                         const Standard_Integer ,
                         NMTTools_IndexedDataMapOfIndexedMapOfInteger& );
 
+
 //=======================================================================
 //function : FillImagesFaces
 //purpose  :
@@ -153,6 +155,19 @@ static
     aLSpIn.Clear();
     //
     // 1. In Parts
+    //modified by NIZNHY-PKV Fri Oct 14 13:58:00 2011f 
+    BOPTools_ListOfPaveBlock aLPBIn;
+    //
+    pPF->RealSplitsInFace(nF, aLPBIn);
+    //
+    aItPB.Initialize(aLPBIn);
+    for (; aItPB.More(); aItPB.Next()) {
+      const BOPTools_PaveBlock& aPB1=aItPB.Value();
+      nSpIn=aPB1.Edge();
+      const TopoDS_Shape& aSpIn=aDS.Shape(nSpIn);
+      aLSpIn.Append(aSpIn);
+    }
+    /*
     for (j=1; j<=aNbCBP; ++j) {
       NMTTools_ListOfCommonBlock& aLCB=aCBP(j);
       aItCB.Initialize(aLCB);
@@ -168,6 +183,8 @@ static
         }
       }
     }
+    */
+    //modified by NIZNHY-PKV Fri Oct 14 13:58:08 2011t
     //
     // 2. Section Parts
     for (j=1; j<=aNbFFs; ++j) {
@@ -584,19 +601,73 @@ static
   // 2. Find Chains
   NMTTools_IndexedDataMapOfShapeIndexedMapOfShape aMC;
   //
-  NMTTools_Tools::FindChains(aLCS, aMC);
+  NMTTools_Tools::FindChains(aLCS, aMC); 
+  //
+  //modified by NIZNHY-PKV Wed Oct 12 13:33:59 2011f
+  Standard_Boolean bIsImage;
+  Standard_Integer aIx, aIxMin, aNbMSDF, k, aNbMFj;
+  TopoDS_Shape aFOld, aFSDmin;
+  TopTools_IndexedMapOfShape aMFj;
+  TopTools_DataMapOfShapeInteger aDMSI;
+  //
+  aItF1.Initialize(myShapes);
+  for (j=1; aItF1.More(); aItF1.Next(), ++j) {
+    const TopoDS_Shape& aSj=aItF1.Value();
+    aMFj.Clear();
+    TopExp::MapShapes(aSj, TopAbs_FACE, aMFj);
+    aNbMFj=aMFj.Extent();
+    for (k=1; k<=aNbMFj; ++k) {
+      const TopoDS_Shape& aFk=aMFj(k);
+      if (!aDMSI.IsBound(aFk)) {
+       aDMSI.Bind(aFk, j);
+      }
+    }
+  }
+  //
+  //modified by NIZNHY-PKV Wed Oct 12 13:34:01 2011t
   //
   // 3. Fill the map of SDF mySameDomainFaces
   aNbC=aMC.Extent();
   for (i=1; i<=aNbC; ++i) {
-    const TopoDS_Shape& aF=aMC.FindKey(i);
+   // const TopoDS_Shape& aF=aMC.FindKey(i);
     const TopTools_IndexedMapOfShape& aMSDF=aMC(i);
     //
+    //modified by NIZNHY-PKV Wed Oct 12 13:25:16 2011f
+    aNbMSDF=aMSDF.Extent();
+    for (j=1; j<=aNbMSDF; ++j) {
+      const TopoDS_Shape& aFSD=aMSDF(j);
+      bIsImage=mySplitFaces.IsImage(aFSD);
+      aFOld=aFSD;
+      if (bIsImage) {
+       aFOld=mySplitFaces.ImageFrom(aFSD);
+      }
+      //
+      aIx=aDMSI.Find(aFOld);
+      if (j==1) {
+       aIxMin=aIx;
+       aFSDmin=aFSD;
+       continue;
+      }
+      else {
+       if (aIx<aIxMin) {
+         aIxMin=aIx;
+         aFSDmin=aFSD;
+       }
+      }
+    }
+    //
+    for (j=1; j<=aNbMSDF; ++j) {
+      const TopoDS_Shape& aFSD=aMSDF(j);
+      mySameDomainShapes.Add(aFSD, aFSDmin);
+    }
+    /*
     aNbFF=aMSDF.Extent();
     for (j=1; j<=aNbFF; ++j) {
       const TopoDS_Shape& aFSD=aMSDF(j);
       mySameDomainShapes.Add(aFSD, aF);
     }
+    */
+    //modified by NIZNHY-PKV Wed Oct 12 13:25:18 2011t
   }
   //
 }
index 6cbc3a56a98412ffd81c35de1d1a54f5725f9448..bb222b10d051ad41bd0d50369e1f7e4d1e747bf0 100644 (file)
@@ -15,7 +15,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_DataMapOfOrientedShapeShape_HeaderFile
 #define _GEOMAlgo_DataMapOfOrientedShapeShape_HeaderFile
@@ -32,6 +31,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class TopoDS_Shape;
@@ -39,7 +39,6 @@ class TopTools_OrientedShapeMapHasher;
 class GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape;
 class GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -47,108 +46,74 @@ class GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
-class GEOMAlgo_DataMapOfOrientedShapeShape  : public TCollection_BasicMap {
-
+class GEOMAlgo_DataMapOfOrientedShapeShape  : public TCollection_BasicMap
+{
 public:
 
-    void* operator new(size_t,void* anAddress) 
-      {
-        return anAddress;
-      }
-    void* operator new(size_t size) 
-      { 
-        return Standard::Allocate(size); 
-      }
-    void  operator delete(void *anAddress) 
-      { 
-        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
-      }
- // Methods PUBLIC
- // 
-
-
-Standard_EXPORT GEOMAlgo_DataMapOfOrientedShapeShape(const Standard_Integer NbBuckets = 1);
-
-
-Standard_EXPORT   GEOMAlgo_DataMapOfOrientedShapeShape& Assign(const GEOMAlgo_DataMapOfOrientedShapeShape& Other) ;
+  void* operator new(size_t,void* anAddress) 
+  {
+    return anAddress;
+  }
+  void* operator new(size_t size) 
+  { 
+    return Standard::Allocate(size); 
+  }
+  void  operator delete(void *anAddress) 
+  { 
+    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+  }
+
+  // Methods PUBLIC
+  // 
+
+  Standard_EXPORT GEOMAlgo_DataMapOfOrientedShapeShape(const Standard_Integer NbBuckets = 1);
+
+  Standard_EXPORT   GEOMAlgo_DataMapOfOrientedShapeShape& Assign(const GEOMAlgo_DataMapOfOrientedShapeShape& Other) ;
   GEOMAlgo_DataMapOfOrientedShapeShape& operator =(const GEOMAlgo_DataMapOfOrientedShapeShape& Other) 
-{
-  return Assign(Other);
-}
-
+  {
+    return Assign(Other);
+  }
 
+  Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
 
-Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
+  Standard_EXPORT   void Clear() ;
+  ~GEOMAlgo_DataMapOfOrientedShapeShape()
+  {
+    Clear();
+  }
 
+  Standard_EXPORT   Standard_Boolean Bind(const TopoDS_Shape& K,const TopoDS_Shape& I) ;
+  Standard_EXPORT   Standard_Boolean IsBound(const TopoDS_Shape& K) const;
+  Standard_EXPORT   Standard_Boolean UnBind(const TopoDS_Shape& K) ;
 
-Standard_EXPORT   void Clear() ;
-~GEOMAlgo_DataMapOfOrientedShapeShape()
-{
-  Clear();
-}
-
-
-
-Standard_EXPORT   Standard_Boolean Bind(const TopoDS_Shape& K,const TopoDS_Shape& I) ;
-
-
-Standard_EXPORT   Standard_Boolean IsBound(const TopoDS_Shape& K) const;
-
-
-Standard_EXPORT   Standard_Boolean UnBind(const TopoDS_Shape& K) ;
-
-
-Standard_EXPORT  const TopoDS_Shape& Find(const TopoDS_Shape& K) const;
- const TopoDS_Shape& operator()(const TopoDS_Shape& K) const
-{
-  return Find(K);
-}
-
+  Standard_EXPORT  const TopoDS_Shape& Find(const TopoDS_Shape& K) const;
+  const TopoDS_Shape& operator()(const TopoDS_Shape& K) const
+  {
+    return Find(K);
+  }
 
-
-Standard_EXPORT   TopoDS_Shape& ChangeFind(const TopoDS_Shape& K) ;
+  Standard_EXPORT   TopoDS_Shape& ChangeFind(const TopoDS_Shape& K) ;
   TopoDS_Shape& operator()(const TopoDS_Shape& K) 
-{
-  return ChangeFind(K);
-}
-
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
+  {
+    return ChangeFind(K);
+  }
 
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const TopoDS_Shape& K);
+#endif
 
 private: 
 
  // Methods PRIVATE
  // 
-
-
 Standard_EXPORT GEOMAlgo_DataMapOfOrientedShapeShape(const GEOMAlgo_DataMapOfOrientedShapeShape& Other);
 
-
- // Fields PRIVATE
- //
-
-
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index 28b15ece2c0d04d5c58becf75b08e8de7e21fe0e..228cbfa64403c27ce5a9a0cbba9bcdd0c5bbea6c 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_DataMapOfPassKeyInteger_HeaderFile
 #define _GEOMAlgo_DataMapOfPassKeyInteger_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class GEOMAlgo_PassKey;
@@ -42,7 +42,6 @@ class GEOMAlgo_PassKeyMapHasher;
 class GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger;
 class GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -50,6 +49,7 @@ class GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_DataMapOfPassKeyInteger  : public TCollection_BasicMap {
 
@@ -67,91 +67,56 @@ public:
       { 
         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
       }
+
  // Methods PUBLIC
  // 
 
-
 Standard_EXPORT GEOMAlgo_DataMapOfPassKeyInteger(const Standard_Integer NbBuckets = 1);
 
-
 Standard_EXPORT   GEOMAlgo_DataMapOfPassKeyInteger& Assign(const GEOMAlgo_DataMapOfPassKeyInteger& Other) ;
   GEOMAlgo_DataMapOfPassKeyInteger& operator =(const GEOMAlgo_DataMapOfPassKeyInteger& Other) 
 {
   return Assign(Other);
 }
 
-
-
 Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
 
-
 Standard_EXPORT   void Clear() ;
 ~GEOMAlgo_DataMapOfPassKeyInteger()
 {
   Clear();
 }
 
-
-
 Standard_EXPORT   Standard_Boolean Bind(const GEOMAlgo_PassKey& K,const Standard_Integer& I) ;
-
-
 Standard_EXPORT   Standard_Boolean IsBound(const GEOMAlgo_PassKey& K) const;
-
-
 Standard_EXPORT   Standard_Boolean UnBind(const GEOMAlgo_PassKey& K) ;
 
-
 Standard_EXPORT  const Standard_Integer& Find(const GEOMAlgo_PassKey& K) const;
  const Standard_Integer& operator()(const GEOMAlgo_PassKey& K) const
 {
   return Find(K);
 }
 
-
-
 Standard_EXPORT   Standard_Integer& ChangeFind(const GEOMAlgo_PassKey& K) ;
   Standard_Integer& operator()(const GEOMAlgo_PassKey& K) 
 {
   return ChangeFind(K);
 }
 
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const GEOMAlgo_PassKey& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const GEOMAlgo_PassKey& K);
+#endif
 
 private: 
 
  // Methods PRIVATE
  // 
-
-
 Standard_EXPORT GEOMAlgo_DataMapOfPassKeyInteger(const GEOMAlgo_DataMapOfPassKeyInteger& Other);
 
-
- // Fields PRIVATE
- //
-
-
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index 649c8e44ca316462094b7618811d4c3a14eb21aa..651f1c7ee19c7526f794632e2234056799947ce4 100644 (file)
@@ -15,7 +15,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile
 #define _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile
@@ -32,6 +31,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class GEOMAlgo_PassKeyShape;
@@ -40,7 +40,6 @@ class GEOMAlgo_PassKeyShapeMapHasher;
 class GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape;
 class GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -48,6 +47,7 @@ class GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_DataMapOfPassKeyShapeShape  : public TCollection_BasicMap {
 
@@ -65,91 +65,56 @@ public:
       { 
         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
       }
+
  // Methods PUBLIC
  // 
 
-
 Standard_EXPORT GEOMAlgo_DataMapOfPassKeyShapeShape(const Standard_Integer NbBuckets = 1);
 
-
 Standard_EXPORT   GEOMAlgo_DataMapOfPassKeyShapeShape& Assign(const GEOMAlgo_DataMapOfPassKeyShapeShape& Other) ;
   GEOMAlgo_DataMapOfPassKeyShapeShape& operator =(const GEOMAlgo_DataMapOfPassKeyShapeShape& Other) 
 {
   return Assign(Other);
 }
 
-
-
 Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
 
-
 Standard_EXPORT   void Clear() ;
 ~GEOMAlgo_DataMapOfPassKeyShapeShape()
 {
   Clear();
 }
 
-
-
 Standard_EXPORT   Standard_Boolean Bind(const GEOMAlgo_PassKeyShape& K,const TopoDS_Shape& I) ;
-
-
 Standard_EXPORT   Standard_Boolean IsBound(const GEOMAlgo_PassKeyShape& K) const;
-
-
 Standard_EXPORT   Standard_Boolean UnBind(const GEOMAlgo_PassKeyShape& K) ;
 
-
 Standard_EXPORT  const TopoDS_Shape& Find(const GEOMAlgo_PassKeyShape& K) const;
  const TopoDS_Shape& operator()(const GEOMAlgo_PassKeyShape& K) const
 {
   return Find(K);
 }
 
-
-
 Standard_EXPORT   TopoDS_Shape& ChangeFind(const GEOMAlgo_PassKeyShape& K) ;
   TopoDS_Shape& operator()(const GEOMAlgo_PassKeyShape& K) 
 {
   return ChangeFind(K);
 }
 
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const GEOMAlgo_PassKeyShape& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const GEOMAlgo_PassKeyShape& K);
+#endif
 
 private: 
 
  // Methods PRIVATE
- // 
-
-
-Standard_EXPORT GEOMAlgo_DataMapOfPassKeyShapeShape(const GEOMAlgo_DataMapOfPassKeyShapeShape& Other);
-
-
- // Fields PRIVATE
  //
-
+Standard_EXPORT GEOMAlgo_DataMapOfPassKeyShapeShape(const GEOMAlgo_DataMapOfPassKeyShapeShape& Other);
 
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index d29a977146fd99fcaa9f293cd434e2cf53fe6d7a..2c539bf80308f979be24184b695f6c7614d2c3d7 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_DataMapOfRealListOfShape_HeaderFile
 #define _GEOMAlgo_DataMapOfRealListOfShape_HeaderFile
@@ -38,6 +37,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class TopTools_ListOfShape;
@@ -45,7 +45,6 @@ class TColStd_MapRealHasher;
 class GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape;
 class GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -53,6 +52,7 @@ class GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_DataMapOfRealListOfShape  : public TCollection_BasicMap {
 
@@ -83,8 +83,6 @@ Standard_EXPORT   GEOMAlgo_DataMapOfRealListOfShape& Assign(const GEOMAlgo_DataM
   return Assign(Other);
 }
 
-
-
 Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
 
 
@@ -94,67 +92,36 @@ Standard_EXPORT   void Clear() ;
   Clear();
 }
 
-
-
 Standard_EXPORT   Standard_Boolean Bind(const Standard_Real& K,const TopTools_ListOfShape& I) ;
-
-
 Standard_EXPORT   Standard_Boolean IsBound(const Standard_Real& K) const;
-
-
 Standard_EXPORT   Standard_Boolean UnBind(const Standard_Real& K) ;
 
-
 Standard_EXPORT  const TopTools_ListOfShape& Find(const Standard_Real& K) const;
  const TopTools_ListOfShape& operator()(const Standard_Real& K) const
 {
   return Find(K);
 }
 
-
-
 Standard_EXPORT   TopTools_ListOfShape& ChangeFind(const Standard_Real& K) ;
   TopTools_ListOfShape& operator()(const Standard_Real& K) 
 {
   return ChangeFind(K);
 }
 
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const Standard_Real& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const Standard_Real& K);
+#endif
 
 private: 
 
  // Methods PRIVATE
  // 
-
-
 Standard_EXPORT GEOMAlgo_DataMapOfRealListOfShape(const GEOMAlgo_DataMapOfRealListOfShape& Other);
 
-
- // Fields PRIVATE
- //
-
-
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index f1e56991cf0dfdefc4875da609c6b26a0625ab24..228278e5e8b2e60b9b8eca7c6748931823fa1fca 100644 (file)
@@ -41,6 +41,7 @@
 #ifndef _Standard_Boolean_HeaderFile\r
 #include <Standard_Boolean.hxx>\r
 #endif\r
+\r
 class Standard_DomainError;\r
 class Standard_NoSuchObject;\r
 class TopoDS_Shape;\r
@@ -49,7 +50,7 @@ class TopTools_ShapeMapHasher;
 class GEOMAlgo_DataMapNodeOfDataMapOfShapeMapOfShape;\r
 class GEOMAlgo_DataMapIteratorOfDataMapOfShapeMapOfShape;\r
 \r
-\r
+#include <Basics_OCCTVersion.hxx>\r
 \r
 class GEOMAlgo_DataMapOfShapeMapOfShape  : public TCollection_BasicMap {\r
 public:\r
@@ -102,31 +103,17 @@ public:
   return ChangeFind(K);\r
 }\r
 \r
-\r
-\r
-\r
-\r
-protected:\r
-\r
-\r
-\r
-\r
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version\r
+  Standard_EXPORT Standard_Address Find1 (const TopoDS_Shape& K) const;\r
+  Standard_EXPORT Standard_Address ChangeFind1 (const TopoDS_Shape& K);\r
+#endif\r
 \r
 private:\r
-\r
   \r
   Standard_EXPORT   GEOMAlgo_DataMapOfShapeMapOfShape(const GEOMAlgo_DataMapOfShapeMapOfShape& Other);\r
 \r
-\r
-\r
-\r
 };\r
 \r
-\r
-\r
-\r
-\r
 // other Inline functions and methods (like "C++: function call" methods)\r
 \r
-\r
 #endif\r
index 23cb455c6c49202fe4a8fa663283956c29010b59..aca9d89e2539534293efaf73c3e93156a0d6d06a 100644 (file)
@@ -41,6 +41,7 @@
 #ifndef _Standard_Boolean_HeaderFile\r
 #include <Standard_Boolean.hxx>\r
 #endif\r
+\r
 class Standard_DomainError;\r
 class Standard_NoSuchObject;\r
 class TopoDS_Shape;\r
@@ -49,7 +50,7 @@ class TopTools_ShapeMapHasher;
 class GEOMAlgo_DataMapNodeOfDataMapOfShapePnt;\r
 class GEOMAlgo_DataMapIteratorOfDataMapOfShapePnt;\r
 \r
-\r
+#include <Basics_OCCTVersion.hxx>\r
 \r
 class GEOMAlgo_DataMapOfShapePnt  : public TCollection_BasicMap {\r
 public:\r
@@ -102,31 +103,17 @@ public:
   return ChangeFind(K);\r
 }\r
 \r
-\r
-\r
-\r
-\r
-protected:\r
-\r
-\r
-\r
-\r
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version\r
+  Standard_EXPORT Standard_Address Find1 (const TopoDS_Shape& K) const;\r
+  Standard_EXPORT Standard_Address ChangeFind1 (const TopoDS_Shape& K);\r
+#endif\r
 \r
 private:\r
-\r
   \r
   Standard_EXPORT   GEOMAlgo_DataMapOfShapePnt(const GEOMAlgo_DataMapOfShapePnt& Other);\r
 \r
-\r
-\r
-\r
 };\r
 \r
-\r
-\r
-\r
-\r
 // other Inline functions and methods (like "C++: function call" methods)\r
 \r
-\r
 #endif\r
index d3e387c2029431e09932967b6ee649bb5e99bf44..fa8ebbf95fbbc5e9a514b1c044b505a9cdf964fc 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_DataMapOfShapeReal_HeaderFile
 #define _GEOMAlgo_DataMapOfShapeReal_HeaderFile
@@ -38,6 +37,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class TopoDS_Shape;
@@ -45,7 +45,6 @@ class TopTools_ShapeMapHasher;
 class GEOMAlgo_DataMapNodeOfDataMapOfShapeReal;
 class GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -53,6 +52,7 @@ class GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_DataMapOfShapeReal  : public TCollection_BasicMap {
 
@@ -119,20 +119,10 @@ Standard_EXPORT   Standard_Real& ChangeFind(const TopoDS_Shape& K) ;
   return ChangeFind(K);
 }
 
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const TopoDS_Shape& K);
+#endif
 
 private: 
 
@@ -149,10 +139,6 @@ Standard_EXPORT GEOMAlgo_DataMapOfShapeReal(const GEOMAlgo_DataMapOfShapeReal& O
 
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
index 3eb0a24b76e2b4a949ed740e2c9cf82d9d1a5e65..dd9e6aff6f819dd448cff16bd46999ceb39d6855 100644 (file)
@@ -50,6 +50,8 @@ class GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
+
 class GEOMAlgo_DataMapOfShapeShapeSet  : public TCollection_BasicMap {
 
 public:
@@ -102,6 +104,11 @@ public:
     return ChangeFind(K);
   }
 
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const TopoDS_Shape& K);
+#endif
+
 private: 
   Standard_EXPORT GEOMAlgo_DataMapOfShapeShapeSet(const GEOMAlgo_DataMapOfShapeShapeSet& Other);
 };
index 066e6a006b33db40073d5b848f356f96f082a93e..c0f0ac7119bce14fc273e86f6ff78f0c6ce721de 100644 (file)
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 // File:        GEOMAlgo_FinderShapeOn.cxx
 // Created:     Tue Jan 11 14:44:31 2005
 // Author:      Peter KURNEV
-//              <pkv@irinox>
-//
+
 #include <GEOMAlgo_FinderShapeOn.ixx>
 
+#include <Basics_OCCTVersion.hxx>
+
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+#include <Precision.hxx>
+#endif
+
 #include <gp_Pnt.hxx>
 
 #include <TopAbs_ShapeEnum.hxx>
@@ -383,7 +387,11 @@ void GEOMAlgo_FinderShapeOn::MakeArgument1()
   //
   // Argument 1
   if (!myIsAnalytic) {
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+    aMF.Init(mySurface, Standard_True, Precision::Confusion());
+#else
     aMF.Init(mySurface, Standard_True);
+#endif
     aFErr=aMF.Error();
     if (aFErr!=BRepLib_FaceDone) {
       myErrorStatus=20; // can not build the face
index 9220a21b3ff879579d688eaa1a5190b69dfddd87..014a452af273c34b0ab326e774614f16d90d21f6 100644 (file)
@@ -18,9 +18,8 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
+
 // File:       GEOMAlgo_GetInPlace_1.cxx
-// Created:    
 // Author:     Peter KURNEV
 
 #include <GEOMAlgo_GetInPlace.hxx>
@@ -91,9 +90,9 @@ static
 Standard_Boolean GEOMAlgo_GetInPlace::CheckCoincidence(const TopoDS_Shape& aS1,
                                                       const TopoDS_Shape& aS2)
 {
-  Standard_Boolean bOk, bIsDone;
+  Standard_Boolean bOk;
   Standard_Integer iErr;
-  Standard_Real aTol2, aD2;
+  Standard_Real aTol2;
   TopAbs_ShapeEnum aType1, aType2;
   TopAbs_State aState;
   gp_Pnt aP1, aP2;
index 1f28cc809ff62c29d7de1033ef9e42ffa8fdcc17..9c50281a6dc68ef7dc3ac785742b8c1d46872188 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_IndexedDataMapOfIntegerShape_HeaderFile
 #define _GEOMAlgo_IndexedDataMapOfIntegerShape_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_OutOfRange;
 class Standard_NoSuchObject;
@@ -42,7 +42,6 @@ class TopoDS_Shape;
 class TColStd_MapIntegerHasher;
 class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -50,6 +49,7 @@ class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_IndexedDataMapOfIntegerShape  : public TCollection_BasicMap {
 
@@ -67,106 +67,65 @@ public:
       { 
         if (anAddress) Standard::Free((Standard_Address&)anAddress); 
       }
+
  // Methods PUBLIC
  // 
 
-
 Standard_EXPORT GEOMAlgo_IndexedDataMapOfIntegerShape(const Standard_Integer NbBuckets = 1);
 
-
 Standard_EXPORT   GEOMAlgo_IndexedDataMapOfIntegerShape& Assign(const GEOMAlgo_IndexedDataMapOfIntegerShape& Other) ;
   GEOMAlgo_IndexedDataMapOfIntegerShape& operator =(const GEOMAlgo_IndexedDataMapOfIntegerShape& Other) 
 {
   return Assign(Other);
 }
 
-
-
 Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
 
-
 Standard_EXPORT   void Clear() ;
 ~GEOMAlgo_IndexedDataMapOfIntegerShape()
 {
   Clear();
 }
 
-
-
 Standard_EXPORT   Standard_Integer Add(const Standard_Integer& K,const TopoDS_Shape& I) ;
 
-
 Standard_EXPORT   void Substitute(const Standard_Integer I,const Standard_Integer& K,const TopoDS_Shape& T) ;
 
-
 Standard_EXPORT   void RemoveLast() ;
 
-
 Standard_EXPORT   Standard_Boolean Contains(const Standard_Integer& K) const;
 
-
 Standard_EXPORT  const Standard_Integer& FindKey(const Standard_Integer I) const;
 
-
 Standard_EXPORT  const TopoDS_Shape& FindFromIndex(const Standard_Integer I) const;
  const TopoDS_Shape& operator ()(const Standard_Integer I) const
 {
   return FindFromIndex(I);
 }
 
-
-
 Standard_EXPORT   TopoDS_Shape& ChangeFromIndex(const Standard_Integer I) ;
   TopoDS_Shape& operator ()(const Standard_Integer I) 
 {
   return ChangeFromIndex(I);
 }
 
-
-
 Standard_EXPORT   Standard_Integer FindIndex(const Standard_Integer& K) const;
 
-
 Standard_EXPORT  const TopoDS_Shape& FindFromKey(const Standard_Integer& K) const;
-
-
 Standard_EXPORT   TopoDS_Shape& ChangeFromKey(const Standard_Integer& K) ;
 
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const Standard_Integer& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const Standard_Integer& K);
+#endif
 
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
-
-private: 
-
+private:
  // Methods PRIVATE
- // 
-
-
-Standard_EXPORT GEOMAlgo_IndexedDataMapOfIntegerShape(const GEOMAlgo_IndexedDataMapOfIntegerShape& Other);
-
-
- // Fields PRIVATE
  //
-
-
+Standard_EXPORT GEOMAlgo_IndexedDataMapOfIntegerShape(const GEOMAlgo_IndexedDataMapOfIntegerShape& Other);
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index f6931ace7fb4e53171d1f030de1abc35afacb8c9..38ebe7c49db8bc0625dc0774c5eb542cc2e459e8 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_HeaderFile
 #define _GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_HeaderFile
@@ -51,6 +50,8 @@ class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
+
 class GEOMAlgo_IndexedDataMapOfPassKeyListOfShape  : public TCollection_BasicMap {
 
 public:
@@ -104,6 +105,10 @@ Standard_EXPORT   Standard_Integer FindIndex(const GEOMAlgo_PassKey& K) const;
 Standard_EXPORT  const TopTools_ListOfShape& FindFromKey(const GEOMAlgo_PassKey& K) const;
 Standard_EXPORT   TopTools_ListOfShape& ChangeFromKey(const GEOMAlgo_PassKey& K) ;
 
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const GEOMAlgo_PassKey& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const GEOMAlgo_PassKey& K);
+#endif
 
 
 
index abc59d33a0d7a64995a5f14a51550c2825c803a5..63a1816860f6953e4a5a748e412eca7bf97bef51 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_HeaderFile
 #define _GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_HeaderFile
@@ -51,6 +50,7 @@ class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape  : public TCollection_BasicMap {
 
@@ -133,9 +133,10 @@ Standard_EXPORT  const TopTools_ListOfShape& FindFromKey(const GEOMAlgo_PassKeyS
 
 Standard_EXPORT   TopTools_ListOfShape& ChangeFromKey(const GEOMAlgo_PassKeyShape& K) ;
 
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const GEOMAlgo_PassKeyShape& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const GEOMAlgo_PassKeyShape& K);
+#endif
 
 protected:
 
index d2e9de147a2f3d1fa46fb257f37a1413f51c03e5..2b4f692b2a4d98be7c8f031d8f5f9373135fa8ef 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_IndexedDataMapOfShapeBox_HeaderFile
 #define _GEOMAlgo_IndexedDataMapOfShapeBox_HeaderFile
@@ -51,6 +50,7 @@ class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_IndexedDataMapOfShapeBox  : public TCollection_BasicMap {
 
@@ -129,13 +129,12 @@ Standard_EXPORT   Standard_Integer FindIndex(const TopoDS_Shape& K) const;
 
 
 Standard_EXPORT  const Bnd_Box& FindFromKey(const TopoDS_Shape& K) const;
-
-
 Standard_EXPORT   Bnd_Box& ChangeFromKey(const TopoDS_Shape& K) ;
 
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const TopoDS_Shape& K);
+#endif
 
 protected:
 
index 37bd9a0545bc277471aec205920431a30c00e71b..25aa6f52752cf4f8f10ddffee72e0a7ea2826626 100644 (file)
@@ -15,7 +15,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_IndexedDataMapOfShapeShapeInfo_HeaderFile
 #define _GEOMAlgo_IndexedDataMapOfShapeShapeInfo_HeaderFile
@@ -48,6 +47,7 @@ class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_IndexedDataMapOfShapeShapeInfo  : public TCollection_BasicMap {
 
@@ -130,9 +130,10 @@ Standard_EXPORT  const GEOMAlgo_ShapeInfo& FindFromKey(const TopoDS_Shape& K) co
 
 Standard_EXPORT   GEOMAlgo_ShapeInfo& ChangeFromKey(const TopoDS_Shape& K) ;
 
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const TopoDS_Shape& K);
+#endif
 
 protected:
 
index bf2405e26478f0319cab7b7213d62013553a8dc5..a8dde9077d30b70afa8b4f2de83497fd91cf3d08 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _GEOMAlgo_IndexedDataMapOfShapeState_HeaderFile
 #define _GEOMAlgo_IndexedDataMapOfShapeState_HeaderFile
@@ -53,6 +52,7 @@ class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class GEOMAlgo_IndexedDataMapOfShapeState  : public TCollection_BasicMap {
 
@@ -131,13 +131,12 @@ Standard_EXPORT   Standard_Integer FindIndex(const TopoDS_Shape& K) const;
 
 
 Standard_EXPORT  const TopAbs_State& FindFromKey(const TopoDS_Shape& K) const;
-
-
 Standard_EXPORT   TopAbs_State& ChangeFromKey(const TopoDS_Shape& K) ;
 
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const TopoDS_Shape& K);
+#endif
 
 protected:
 
index 8f3ef0cd971fbd1b25ddf4be3fbe491faaedf14a..ca2b6c92fd692ee49c4110058d09be298d2be490 100644 (file)
@@ -90,6 +90,8 @@
 
 #include <Prs3d_ShadingAspect.hxx>
 
+#include <BRepMesh_IncrementalMesh.hxx>
+
 // VTK Includes
 #include <vtkActorCollection.h>
 #include <vtkProperty.h>
@@ -322,6 +324,17 @@ GEOM_Displayer::GEOM_Displayer( SalomeApp_Study* st )
 
   myToActivate = true;
   // This parameter is used for activisation/deactivisation of objects to be displayed
+  
+  #if OCC_VERSION_LARGE > 0x06050100 // Functionnality available only in OCCT 6.5.2
+  // Activate parallel vizualisation only for testing purpose  
+  // and if the corresponding env variable is set to 1 
+  char* parallel_visu = getenv("PARALLEL_VISU");
+  if (parallel_visu && atoi(parallel_visu))
+  {
+    MESSAGE("Parallel visualisation on");
+    BRepMesh_IncrementalMesh::SetParallelDefault(Standard_True);
+  }
+  #endif
 
   myViewFrame = 0;
 }
index 5342658ac4f3339a41762b87d690b75074e6d678..efe2dd7e59e0ceec0e803ddabdf6b38ae208b715 100644 (file)
@@ -2375,7 +2375,7 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
     </message>
     <message>
         <source>MEN_GROUP_CREATE</source>
-        <translation>Créer une groupe</translation>
+        <translation>Créer un groupe</translation>
     </message>
     <message>
         <source>MEN_GROUP_EDIT</source>
index 0cb7c95c21d3b65515148a7c003fbd569e96e895..d15bec532bc641ca2dd37bbc3ea5a027d712fffd 100644 (file)
@@ -109,7 +109,7 @@ extern "C" {
   }
 
   Standard_EXPORT char* getModuleVersion() {
-    return GEOM_VERSION_STR;
+    return (char*)GEOM_VERSION_STR;
   }
 }
 
index 4646927a06c4a4b7195f201dbf8e59bf7a48634b..3be550a49703f604cd0086ce2d0ebc525db05372 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #include "GEOMImpl_ArchimedeDriver.hxx"
 #include "GEOMImpl_IArchimede.hxx"
@@ -26,6 +25,8 @@
 
 #include "Archimede_VolumeSection.hxx"
 
+#include <Basics_OCCTVersion.hxx>
+
 #include <stdio.h>
 
 #include <BRepBuilderAPI_MakeFace.hxx>
@@ -128,7 +129,11 @@ Standard_Integer GEOMImpl_ArchimedeDriver::Execute(TFunction_Logbook& log) const
 
   Standard_Real u1,u2,v1,v2;
   SurfaceTrimmee->Bounds(u1,u2,v1,v2);
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  TopoDS_Face tirant = BRepBuilderAPI_MakeFace(SurfaceTrimmee, u1, u2, v1, v2, Precision::Confusion());
+#else
   TopoDS_Face tirant = BRepBuilderAPI_MakeFace(SurfaceTrimmee, u1, u2, v1, v2);
+#endif
 
   if (tirant.IsNull()) {
     StdFail_NotDone::Raise("Failed to build secant face");
@@ -182,7 +187,5 @@ const Handle(GEOMImpl_ArchimedeDriver) Handle(GEOMImpl_ArchimedeDriver)::DownCas
      }
   }
 
-  return _anOtherObject ;
+  return _anOtherObject;
 }
-
-
index 1c025ce3365aac60eb7a9d9e79979d55037b249c..5c2c96882eb412d7dfc76f1bd1a2468a5d5f736b 100644 (file)
@@ -373,6 +373,11 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute (TFunction_Logbook& log) const
           // we obtain BSpline curve of degree 1 (C0), which is slowly
           // processed by some algorithms (Partition for example).
           BO.Approximation(Standard_True);
+         //modified by NIZNHY-PKV Tue Oct 18 14:34:16 2011f
+         BO.ComputePCurveOn1(Standard_True);
+         BO.ComputePCurveOn2(Standard_True);
+         //modified by NIZNHY-PKV Tue Oct 18 14:34:18 2011t
+         
           BO.Build();
           if (!BO.IsDone()) {
             StdFail_NotDone::Raise("Section operation can not be performed on the given shapes");
index 9db586cb080434610c19679019a1e2881db74f03..d150a3e858847767154b231264fb9ba3cc361e5d 100644 (file)
 
 #include <StdFail_NotDone.hxx>
 
+#include <Precision.hxx>
+
+#include<cmath>
+
 //=======================================================================
 //function : GetID
 //purpose  :
@@ -89,8 +93,10 @@ Standard_Integer GEOMImpl_BoxDriver::Execute(TFunction_Logbook& log) const
       gp_Pnt P1 = BRep_Tool::Pnt(TopoDS::Vertex(aShape1));
       gp_Pnt P2 = BRep_Tool::Pnt(TopoDS::Vertex(aShape2));
 
-      if (P1.X() == P2.X() || P1.Y() == P2.Y() || P1.Z() == P2.Z()) {
-        StdFail_NotDone::Raise("Box can not be created, the points belong to the same plane");
+      if (std::abs(P1.X() - P2.X()) < Precision::Confusion() || 
+          std::abs(P1.Y() - P2.Y()) < Precision::Confusion() || 
+          std::abs(P1.Z() - P2.Z()) < Precision::Confusion() ) {
+        StdFail_NotDone::Raise("Box can not be created, the points belong both to one of the OXY, OYZ or OZX planes");
         return 0;
       }
 
index 8d601ccc9f8e9a848b7a2f81de90233503b18ddd..b06c44ae7acc1b09237193cc0aa65b2bae7a0c47 100644 (file)
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #include <Standard_Stream.hxx>
 
 #include <GEOMImpl_FillingDriver.hxx>
-#include <GEOM_Function.hxx>
 #include <GEOMImpl_IFilling.hxx>
 #include <GEOMImpl_Types.hxx>
 
+#include <GEOM_Function.hxx>
+
+#include <Basics_OCCTVersion.hxx>
+
+#include <ShapeFix_Face.hxx>
+
 #include <BRep_Tool.hxx>
 #include <BRepAlgo.hxx>
-#include <BRepBuilderAPI_MakeFace.hxx>
 #include <BRep_Builder.hxx>
+#include <BRepBuilderAPI_MakeFace.hxx>
 #include <BRepBuilderAPI_Copy.hxx>
 
 #include <TopAbs.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopoDS.hxx>
-#include <TopoDS_Shape.hxx>
 #include <TopoDS_Compound.hxx>
 #include <TopoDS_Edge.hxx>
+#include <TopoDS_Shape.hxx>
 #include <TopoDS_Vertex.hxx>
-#include <TopExp_Explorer.hxx>
 
 #include <Geom_Curve.hxx>
 #include <Geom_Surface.hxx>
 #include <Geom_Circle.hxx>
 #include <Geom_Ellipse.hxx>
 #include <Geom_BezierCurve.hxx>
+#include <Geom_BSplineCurve.hxx>
 #include <Geom_BSplineSurface.hxx>
 #include <GeomFill_Line.hxx>
 #include <GeomFill_AppSurf.hxx>
 #include <GeomFill_SectionGenerator.hxx>
-
-#include <Precision.hxx>
-#include <Standard_ConstructionError.hxx>
-
-#include <TColGeom_SequenceOfCurve.hxx>
-#include <ShapeFix_Face.hxx>
 #include <GeomAPI_PointsToBSplineSurface.hxx>
-#include <Geom_BSplineCurve.hxx>
 #include <GeomAPI_PointsToBSpline.hxx>
 
+#include <TColGeom_SequenceOfCurve.hxx>
+
 #include <TColgp_SequenceOfPnt.hxx>
 #include <TColgp_Array1OfPnt.hxx>
 
-//#include <BRepTools.hxx>
+#include <Precision.hxx>
 
+#include <Standard_ConstructionError.hxx>
 
 //=======================================================================
 //function : GetID
@@ -78,7 +79,6 @@ const Standard_GUID& GEOMImpl_FillingDriver::GetID()
   return aFillingDriver;
 }
 
-
 //=======================================================================
 //function : GEOMImpl_FillingDriver
 //purpose  :
@@ -290,7 +290,11 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const
        App.SurfUMults(), App.SurfVMults(), App.UDegree(), App.VDegree());
 
     if (GBS.IsNull()) return 0;
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+    aShape = BRepBuilderAPI_MakeFace(GBS, Precision::Confusion());
+#else
     aShape = BRepBuilderAPI_MakeFace(GBS);
+#endif
   }
   else {
     // implemented by skl 20.03.2008 for bug 16568
@@ -349,7 +353,11 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const
     }
     GeomAPI_PointsToBSplineSurface PTB(Points,mindeg,maxdeg,GeomAbs_C2,tol3d);
     Handle(Geom_BSplineSurface) BS = PTB.Surface();
-    BRepBuilderAPI_MakeFace BB(BS);
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+    BRepBuilderAPI_MakeFace BB (BS, Precision::Confusion());
+#else
+    BRepBuilderAPI_MakeFace BB (BS);
+#endif
     TopoDS_Face NewF = BB.Face();
     Handle(ShapeFix_Face) sff = new ShapeFix_Face(NewF);
     sff->Perform();
index 0cbce375b05026f191cf7c383950c7cd39548204..265a35f6cf926ae57200f367ea257eda1dbd1ad8 100644 (file)
@@ -33,6 +33,8 @@
 #include <GEOMImpl_HealingDriver.hxx>
 #include <GEOMImpl_Types.hxx>
 #include <GEOMImpl_IHealing.hxx>
+#include <GEOMImpl_IVector.hxx>
+#include <GEOMImpl_VectorDriver.hxx>
 #include <GEOMImpl_CopyDriver.hxx>
 
 #include <Basics_OCCTVersion.hxx>
@@ -819,18 +821,30 @@ Handle(GEOM_Object) GEOMImpl_IHealingOperations::ChangeOrientation (Handle(GEOM_
   if (aLastFunction.IsNull())
     return NULL; //There is no function which creates an object to be processed
 
-  //Add the function
-  aFunction = theObject->AddFunction(GEOMImpl_HealingDriver::GetID(), CHANGE_ORIENTATION);
+  if (theObject->GetType() == GEOM_VECTOR) { // Mantis issue 21066
+    //Add the function
+    aFunction = theObject->AddFunction(GEOMImpl_VectorDriver::GetID(), VECTOR_REVERSE);
 
-  if (aFunction.IsNull())
-    return NULL;
+    //Check if the function is set correctly
+    if (aFunction.IsNull()) return NULL;
+    if (aFunction->GetDriverGUID() != GEOMImpl_VectorDriver::GetID()) return NULL;
 
-  //Check if the function is set correctly
-  if (aFunction->GetDriverGUID() != GEOMImpl_HealingDriver::GetID()) return NULL;
+    // prepare "data container" class IVector
+    GEOMImpl_IVector aVI (aFunction);
+    aVI.SetCurve(aLastFunction);
+  }
+  else {
+    //Add the function
+    aFunction = theObject->AddFunction(GEOMImpl_HealingDriver::GetID(), CHANGE_ORIENTATION);
 
-  // prepare "data container" class IHealing
-  GEOMImpl_IHealing HI(aFunction);
-  HI.SetOriginal( aLastFunction );
+    //Check if the function is set correctly
+    if (aFunction.IsNull()) return NULL;
+    if (aFunction->GetDriverGUID() != GEOMImpl_HealingDriver::GetID()) return NULL;
+
+    // prepare "data container" class IHealing
+    GEOMImpl_IHealing HI (aFunction);
+    HI.SetOriginal(aLastFunction);
+  }
 
   //Compute the translation
   try {
@@ -874,22 +888,34 @@ Handle(GEOM_Object) GEOMImpl_IHealingOperations::ChangeOrientationCopy (Handle(G
     return NULL; //There is no function which creates an object to be processed
 
   // Add a new object
-  Handle(GEOM_Object) aNewObject = GetEngine()->AddObject( GetDocID(), theObject->GetType() );
+  Handle(GEOM_Object) aNewObject = GetEngine()->AddObject(GetDocID(), theObject->GetType());
 
-  //Add the function
-  aFunction = aNewObject->AddFunction(GEOMImpl_HealingDriver::GetID(), CHANGE_ORIENTATION);
+  if (theObject->GetType() == GEOM_VECTOR) { // Mantis issue 21066
+    //Add the function
+    aFunction = aNewObject->AddFunction(GEOMImpl_VectorDriver::GetID(), VECTOR_REVERSE);
 
-  if (aFunction.IsNull())
-    return NULL;
+    //Check if the function is set correctly
+    if (aFunction.IsNull()) return NULL;
+    if (aFunction->GetDriverGUID() != GEOMImpl_VectorDriver::GetID()) return NULL;
 
-  //Check if the function is set correctly
-  if (aFunction->GetDriverGUID() != GEOMImpl_HealingDriver::GetID()) return NULL;
+    // prepare "data container" class IVector
+    GEOMImpl_IVector aVI (aFunction);
+    aVI.SetCurve(aLastFunction);
+  }
+  else {
+    //Add the function
+    aFunction = aNewObject->AddFunction(GEOMImpl_HealingDriver::GetID(), CHANGE_ORIENTATION);
 
-  // prepare "data container" class IHealing
-  GEOMImpl_IHealing HI(aFunction);
-  HI.SetOriginal( aLastFunction );
+    //Check if the function is set correctly
+    if (aFunction.IsNull()) return NULL;
+    if (aFunction->GetDriverGUID() != GEOMImpl_HealingDriver::GetID()) return NULL;
 
-  //Compute the translation
+    // prepare "data container" class IHealing
+    GEOMImpl_IHealing aHI (aFunction);
+    aHI.SetOriginal(aLastFunction);
+  }
+
+  // Compute the result
   try {
 #if OCC_VERSION_LARGE > 0x06010000
     OCC_CATCH_SIGNALS;
index 5ca5029fb3ee5031309cc5f5dcc666f34af0282f..f74e646e41f71cc4a540eb8cec4143bdc861f986 100644 (file)
@@ -40,6 +40,9 @@
 #include "GEOMImpl_IGlue.hxx"
 
 #include "GEOMImpl_Block6Explorer.hxx"
+#include "GEOMImpl_IHealingOperations.hxx"
+
+#include <GEOMImpl_Gen.hxx>
 
 #include "GEOM_Function.hxx"
 #include "GEOM_ISubShape.hxx"
@@ -1774,6 +1777,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::ReverseShape(Handle(GEOM_Object)
 
   if (theShape.IsNull()) return NULL;
 
+  /*
   //Add a new reversed object
   Handle(GEOM_Object) aReversed = GetEngine()->AddObject(GetDocID(), theShape->GetType());
 
@@ -1813,6 +1817,21 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::ReverseShape(Handle(GEOM_Object)
     << " = geompy.ChangeOrientation(" << theShape << ")";
 
   SetErrorCode(OK);
+  */
+
+  Handle(GEOM_Object) aReversed;
+
+  GEOM_Engine* anEngine = GetEngine();
+  //GEOMImpl_Gen* aGen = dynamic_cast<GEOMImpl_Gen*>(anEngine);
+  GEOMImpl_Gen* aGen = (GEOMImpl_Gen*)anEngine;
+
+  if (aGen) {
+    GEOMImpl_IHealingOperations* anIHealingOperations =
+      aGen->GetIHealingOperations(GetDocID());
+    aReversed = anIHealingOperations->ChangeOrientationCopy(theShape);
+    SetErrorCode(anIHealingOperations->GetErrorCode());
+  }
+
   return aReversed;
 }
 
index cc4a07a85aa39a21b59de95c8579a8a6ebc5bc90..6549eb316f8231a2533dca0b6638f87b4932f18c 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #include <Standard_Stream.hxx>
 
@@ -29,6 +28,8 @@
 
 #include <GEOMImpl_IMeasureOperations.hxx>
 
+#include <Basics_OCCTVersion.hxx>
+
 // OCCT Includes
 #include <BRepBuilderAPI_MakeFace.hxx>
 #include <BRep_Tool.hxx>
@@ -125,7 +126,12 @@ Standard_Integer GEOMImpl_PlaneDriver::Execute(TFunction_Logbook& log) const
     if (gp_Vec(aP1, aP2).IsParallel(gp_Vec(aP1, aP3), Precision::Angular()))
       Standard_ConstructionError::Raise("Plane creation aborted: points lay on one line");
     GC_MakePlane aMakePlane (aP1, aP2, aP3);
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+    aShape = BRepBuilderAPI_MakeFace(aMakePlane, -aSize, +aSize, -aSize, +aSize,
+                                     Precision::Confusion()).Shape();
+#else
     aShape = BRepBuilderAPI_MakeFace(aMakePlane, -aSize, +aSize, -aSize, +aSize).Shape();
+#endif
   } else if (aType == PLANE_FACE) {
     Handle(GEOM_Function) aRef = aPI.GetFace();
     TopoDS_Shape aRefShape = aRef->GetValue();
index f254c2a0c6ef8e5940923bd97e27fc262cc64b96..332d117690809fd8c11ff49dca06dc27bf01abe7 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #include <GEOMImpl_ShapeDriver.hxx>
 
@@ -449,6 +448,7 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
     aShape = C;
 
   }
+  /*
   else if (aType == REVERSE_ORIENTATION) {
     Handle(GEOM_Function) aRefShape = aCI.GetBase();
     TopoDS_Shape aShape_i = aRefShape->GetValue();
@@ -471,6 +471,7 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
       aShape = tds;
     }
   }
+  */
   else if (aType == EDGE_WIRE) {
     Handle(GEOM_Function) aRefBase = aCI.GetBase();
     TopoDS_Shape aWire = aRefBase->GetValue();
index 66b6f53723e06d2ebc907834cf49424e65441cc4..9359db7a35dc738ee2659d86418fcd9c85a8483a 100755 (executable)
@@ -18,9 +18,9 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
-//GEOM_Object types
+
+// GEOM_Object types
 
 #define GEOM_COPY    0
 #define GEOM_IMPORT  1
 #define POINT_SURFACE_COORD      7
 #define POINT_CURVE_LENGTH       8 
 
+// Vector
 #define VECTOR_TWO_PNT  1
 #define VECTOR_DX_DY_DZ 2
 #define VECTOR_TANGENT_CURVE_PAR 3
-#define VECTOR_FACE_NORMALE 4
-#define VERTEX_BY_INDEX 5
+#define VECTOR_REVERSE 4
 
 #define PLANE_PNT_VEC      1
 #define PLANE_FACE         2
 
 #define POLYLINE_POINTS 1
 
+#define SPLINE_BEZIER        1
+#define SPLINE_INTERPOLATION 2
+
 #define CIRCLE_THREE_PNT 1
 #define CIRCLE_PNT_VEC_R 2
 #define CIRCLE_CENTER_TWO_PNT 3
 
-#define SPLINE_BEZIER        1
-#define SPLINE_INTERPOLATION 2
-
 #define ELLIPSE_PNT_VEC_RR 1
 
+// Arc
 #define CIRC_ARC_THREE_PNT         1
 #define CIRC_ARC_CENTER            2
 #define ELLIPSE_ARC_CENTER_TWO_PNT 3
 #define CHAMFER_SHAPE_FACES_AD 6
 #define CHAMFER_SHAPE_EDGES_AD 7
 
+// Shape creation
 #define WIRE_EDGES          1
 #define FACE_WIRE           2
 #define SHELL_FACES         3
 #define SUBSHAPE_SORTED     7
 #define SUBSHAPE_NOT_SORTED 8
 #define FACE_WIRES          9
-#define REVERSE_ORIENTATION 10
+//#define REVERSE_ORIENTATION 10
 #define EDGE_WIRE           11
 #define EDGE_CURVE_LENGTH   12
 
 #define SKETCHER_NINE_DOUBLS 1
 #define SKETCHER_PLANE 2
 
+// Measures
 #define CDG_MEASURE 1
+#define VECTOR_FACE_NORMALE 4
+#define VERTEX_BY_INDEX 5
 
 #define GROUP_FUNCTION 1
 
 #define SHAPES_ON_SHAPE 1
 
-//Curve constructor type
+// Curve constructor type
 #define POINT_CONSTRUCTOR 0
 #define COORD_CONSTRUCTOR 1
 
index 8df2928f007d1d5db28eb12345fdfe1d48b42a95..df75e42419235d2fb8fa14410c0e3e4dce0eedc4 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #include <Standard_Stream.hxx>
 
@@ -31,7 +30,9 @@
 #include <BRepBuilderAPI_MakeEdge.hxx>
 
 #include <TopAbs.hxx>
+#include <TopExp.hxx>
 #include <TopoDS.hxx>
+#include <TopoDS_Edge.hxx>
 #include <TopoDS_Shape.hxx>
 #include <TopoDS_Vertex.hxx>
 
@@ -72,7 +73,8 @@ Standard_Integer GEOMImpl_VectorDriver::Execute(TFunction_Logbook& log) const
 
   GEOMImpl_IVector aPI (aFunction);
   Standard_Integer aType = aFunction->GetType();
-  if (aType != VECTOR_DX_DY_DZ && aType != VECTOR_TWO_PNT && aType != VECTOR_TANGENT_CURVE_PAR) return 0;
+  if (aType != VECTOR_DX_DY_DZ && aType != VECTOR_TWO_PNT &&
+      aType != VECTOR_TANGENT_CURVE_PAR && aType != VECTOR_REVERSE) return 0;
 
   TopoDS_Shape aShape;
 
@@ -85,7 +87,8 @@ Standard_Integer GEOMImpl_VectorDriver::Execute(TFunction_Logbook& log) const
       Standard_ConstructionError::Raise(aMsg.ToCString());
     }
     aShape = BRepBuilderAPI_MakeEdge(P1, P2).Shape();
-  } else if (aType == VECTOR_TWO_PNT) {
+  }
+  else if (aType == VECTOR_TWO_PNT) {
     Handle(GEOM_Function) aRefPnt1 = aPI.GetPoint1();
     Handle(GEOM_Function) aRefPnt2 = aPI.GetPoint2();
     TopoDS_Shape aShape1 = aRefPnt1->GetValue();
@@ -104,7 +107,7 @@ Standard_Integer GEOMImpl_VectorDriver::Execute(TFunction_Logbook& log) const
     }
     aShape = BRepBuilderAPI_MakeEdge(V1, V2).Shape();
   } 
-  else if(aType == VECTOR_TANGENT_CURVE_PAR) {
+  else if (aType == VECTOR_TANGENT_CURVE_PAR) {
     Handle(GEOM_Function) aRefCurve = aPI.GetCurve();
     TopoDS_Shape aRefShape = aRefCurve->GetValue();
     if (aRefShape.ShapeType() != TopAbs_EDGE) {
@@ -130,6 +133,18 @@ Standard_Integer GEOMImpl_VectorDriver::Execute(TFunction_Logbook& log) const
     if(aBuilder.IsDone())
       aShape = aBuilder.Shape();
   }
+  else if (aType == VECTOR_REVERSE) {
+    Handle(GEOM_Function) aRefVec = aPI.GetCurve();
+    TopoDS_Shape aRefShape = aRefVec->GetValue();
+    if (aRefShape.ShapeType() != TopAbs_EDGE) {
+      Standard_TypeMismatch::Raise
+        ("Reversed vector creation aborted : vector shape is not an edge");
+    }
+    TopoDS_Edge anE = TopoDS::Edge(aRefShape);
+    TopoDS_Vertex V1, V2;
+    TopExp::Vertices(anE, V1, V2, Standard_True);
+    aShape = BRepBuilderAPI_MakeEdge(V2, V1).Shape();
+  }
 
   if (aShape.IsNull()) return 0;
 
@@ -181,5 +196,5 @@ const Handle(GEOMImpl_VectorDriver) Handle(GEOMImpl_VectorDriver)::DownCast
      }
   }
 
-  return _anOtherObject ;
+  return _anOtherObject;
 }
index 23642ced0db629b4d8e7fd9acd04773740f600b7..27fc960e53284799ea894663a68ac654ad9679d3 100644 (file)
@@ -31,6 +31,11 @@ from salome.kernel import termcolor
 logger = Logger("salome.geom.geomtools", color = termcolor.RED)
 
 from salome.kernel.studyedit import getActiveStudyId, getStudyEditor
+from salome.kernel.services import IDToObject
+try:
+    from salome.gui import helper
+except ImportError:
+    pass
 
 _geompys = {}
 
@@ -61,6 +66,10 @@ def getGeompy(studyId = None):
     return _geompys[studyId]
 
 
+ModeWireFrame = 0
+ModeShading = 1
+DisplayMode=ModeShading
+
 class GeomStudyTools:
     """
     This class provides several methods to manipulate geom objects in Salome
@@ -82,7 +91,7 @@ class GeomStudyTools:
         if GEOM is None:
             GEOM = __import__("GEOM")
         if studyEditor is None:
-            studyEditor = getStudyEditor()
+            studyEditor = helper.getStudyEditor()
         self.editor = studyEditor
 
     def displayShapeByName(self, shapeName, color = None):
@@ -108,8 +117,60 @@ class GeomStudyTools:
                 if shape:                
                     geomgui = salome.ImportComponentGUI("GEOM")            
                     geomgui.createAndDisplayGO(entry)
-                    geomgui.setDisplayMode(entry, 1)
+                    geomgui.setDisplayMode(entry, DisplayMode)
                     if color is not None:
                         geomgui.setColor(entry, color[0], color[1], color[2])
                     return True
         return False
+
+    def getGeomObjectSelected(self):
+        '''
+        Returns the GEOM object currently selected in the objects browser.
+        '''
+        sobject, entry = helper.getSObjectSelected()
+        geomObject = self.getGeomObjectFromEntry(entry)
+        return geomObject
+
+    def getGeomObjectFromEntry(self,entry):
+        '''
+        Returns the GEOM object associated to the specified entry,
+        (the entry is the identifier of an item in the active study)
+        '''
+        if entry is None:
+            return None
+        geomObject=IDToObject(entry, self.editor.study)
+        return geomObject._narrow(GEOM.GEOM_Object)
+
+#
+# ==================================================================
+# Use cases and demo functions
+# ==================================================================
+#
+
+# How to test?
+# 1. Run a SALOME application including GEOM, and create a new study
+# 2. In the console, enter:
+#    >>> from salome.geom import geomtools
+#    >>> geomtools.TEST_createBox()
+# 3. Select the object named "box" in the browser
+# 4. In the console, enter:
+#    >>> geomtools.TEST_getGeomObjectSelected()
+
+def TEST_createBox():
+    geompy = getGeompy()
+    box = geompy.MakeBoxDXDYDZ(200, 200, 200)
+    geompy.addToStudy( box, 'box' )    
+    if salome.sg.hasDesktop():
+        salome.sg.updateObjBrowser(1)
+
+
+def TEST_getGeomObjectSelected():
+    tool = GeomStudyTools()
+    myGeomObject = tool.getGeomObjectSelected()
+    print myGeomObject
+
+if __name__ == "__main__":
+    TEST_getGeomObjectSelected()
+
+
+    
index b9601a857778fa184202af7190f6a0ef5818b3cc..9837739056a8346dbd7e0528427a5675988c4c3c 100644 (file)
@@ -3683,7 +3683,7 @@ class geompyDC(GEOM._objref_GEOM_Gen):
 
         ## Get a vertex subshape by index depended with orientation.
         #  @param theShape Shape to find subshape.
-        #  @param theIndex Index to find vertex by this index.
+        #  @param theIndex Index to find vertex by this index (starting from zero)
         #  @return New GEOM_Object, containing the created vertex.
         #
         #  @ref tui_measurement_tools_page "Example"
index 2fdb36e9f24ed2ea634ab56be473d286c49d95ef..4cc1e2cb56413d17893bd1ecad393fa6c2449448 100644 (file)
@@ -617,11 +617,14 @@ void GroupGUI_GroupDlg::showOnlySelected()
   GEOM_Displayer* aDisplayer = getDisplayer();
 
   if (send == myHideSelBtn) {
-    aDisplayer->Erase(aSelList, false, true);
+    aDisplayer->Erase(aSelList, /*forced=*/false, /*updateViewer=*/true);
   }
   else {
-    aDisplayer->EraseAll();
+    aDisplayer->EraseAll(/*forced = false, updateViewer = true*/);
     aDisplayer->Display(aSelList, true);
+
+    // for the case when selected ids were not displayed in the viewer: Mantis issue 0021367
+    highlightSubShapes();
   }
 }
 
@@ -851,6 +854,7 @@ void GroupGUI_GroupDlg::activateSelection()
         SALOME_Prs* aPrs = aDisplayer->buildSubshapePresentation(aSubShape, anEntry, aView);
         if (aPrs) {
           displayPreview(aPrs, true, false); // append, do not update
+          // TODO: map or delete Prs
         }
       }
     }
@@ -959,16 +963,17 @@ void GroupGUI_GroupDlg::highlightSubShapes()
   SALOME_View* aView = dynamic_cast<SALOME_View*>(aViewModel);
   if (aView == 0) return;
 
-  // TODO: use here GEOMBase_Helper::myPreview instead of ic->DisplayedObjects()
+  // TODO??: use here GEOMBase_Helper::myPreview instead of ic->DisplayedObjects()
 
   OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)aViewManager)->getOCCViewer();
   Handle(AIS_InteractiveContext) ic = v3d->getAISContext();
   AIS_ListOfInteractive List;
-  ic->DisplayedObjects(List);
+  //ic->DisplayedObjects(List);
+  ic->ObjectsInside(List); // Mantis issue 0021367
 
   SALOME_ListIO aSelList;
 
-  // To highlight the selected subshape in Object Browser, if it's already pudlished under the main shape
+  // To highlight the selected subshape in Object Browser, if it's already published under the main shape
   GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations(getStudyId());
   QMap<int, QString> childsMap;
   SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>(app->activeStudy());
index 897a1eedc54ec7f1c946f666e76d5059cf312f4c..12cf1e1a880736569ceae4020927280f371ebc9e 100644 (file)
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 // File:        IGESExport.cxx
 // Created:     Wed May 19 14:49:45 2004
 // Author:      Pavel TELKOV
-//              <ptv@mutex.nnov.opencascade.com>
-//
+
 #include "utilities.h"
 
 #include <Basics_Utils.hxx>
@@ -68,7 +66,9 @@ IGESEXPORT_EXPORT
               const TCollection_AsciiString& theFormatName )
   {
     MESSAGE("Export IGES into file " << theFileName.ToCString());
-    try
+    // commented for 0021350: Please don't catch exceptions silently and send an
+    // inappropriate error message instead, it is disturbing for the user and for us
+    //try
     {
       // define, whether to write only faces (5.1 IGES format)
       // or shells and solids also (5.3 IGES format)
@@ -94,15 +94,15 @@ IGESEXPORT_EXPORT
       ICW.AddShape( theShape );
       ICW.ComputeModel();
       bool ok = ICW.Write( theFileName.ToCString() );
-      
+
       // Return previous locale
       if ( ok )
         return 1;
     }
-    catch(Standard_Failure)
-    {
-      //THROW_SALOME_CORBA_EXCEPTION("Exception catched in IGESExport", SALOME::BAD_PARAM);
-    }
+    //catch(Standard_Failure)
+    //{
+    //  //THROW_SALOME_CORBA_EXCEPTION("Exception catched in IGESExport", SALOME::BAD_PARAM);
+    //}
     return 0;
   }
 }
index 6fbb8a7ebff108cb3d62e57eed9956ac63ee9c3b..06494e1a3169bb6f1a6b64372737a46041d7747d 100644 (file)
@@ -15,7 +15,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTDS_DataMapOfIntegerMapOfInteger_HeaderFile
 #define _NMTDS_DataMapOfIntegerMapOfInteger_HeaderFile
@@ -32,6 +31,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class TColStd_MapOfInteger;
@@ -39,7 +39,6 @@ class TColStd_MapIntegerHasher;
 class NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger;
 class NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -47,108 +46,69 @@ class NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
-class NMTDS_DataMapOfIntegerMapOfInteger  : public TCollection_BasicMap {
-
-public:
-
-    void* operator new(size_t,void* anAddress) 
-      {
-        return anAddress;
-      }
-    void* operator new(size_t size) 
-      { 
-        return Standard::Allocate(size); 
-      }
-    void  operator delete(void *anAddress) 
-      { 
-        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
-      }
- // Methods PUBLIC
- // 
-
-
-Standard_EXPORT NMTDS_DataMapOfIntegerMapOfInteger(const Standard_Integer NbBuckets = 1);
-
-
-Standard_EXPORT   NMTDS_DataMapOfIntegerMapOfInteger& Assign(const NMTDS_DataMapOfIntegerMapOfInteger& Other) ;
-  NMTDS_DataMapOfIntegerMapOfInteger& operator =(const NMTDS_DataMapOfIntegerMapOfInteger& Other) 
-{
-  return Assign(Other);
-}
-
-
-
-Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
-
-
-Standard_EXPORT   void Clear() ;
-~NMTDS_DataMapOfIntegerMapOfInteger()
-{
-  Clear();
-}
-
-
-
-Standard_EXPORT   Standard_Boolean Bind(const Standard_Integer& K,const TColStd_MapOfInteger& I) ;
-
-
-Standard_EXPORT   Standard_Boolean IsBound(const Standard_Integer& K) const;
-
-
-Standard_EXPORT   Standard_Boolean UnBind(const Standard_Integer& K) ;
-
-
-Standard_EXPORT  const TColStd_MapOfInteger& Find(const Standard_Integer& K) const;
- const TColStd_MapOfInteger& operator()(const Standard_Integer& K) const
+class NMTDS_DataMapOfIntegerMapOfInteger : public TCollection_BasicMap
 {
-  return Find(K);
-}
-
-
-
-Standard_EXPORT   TColStd_MapOfInteger& ChangeFind(const Standard_Integer& K) ;
-  TColStd_MapOfInteger& operator()(const Standard_Integer& K) 
-{
-  return ChangeFind(K);
-}
-
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
+public:
 
+  void* operator new(size_t,void* anAddress)
+  { return anAddress; }
+  void* operator new(size_t size)
+  { return Standard::Allocate(size); }
+  void  operator delete(void *anAddress)
+  { if (anAddress) Standard::Free((Standard_Address&)anAddress); }
+
+  // Methods PUBLIC
+  //
+
+  Standard_EXPORT NMTDS_DataMapOfIntegerMapOfInteger(const Standard_Integer NbBuckets = 1);
+
+  Standard_EXPORT NMTDS_DataMapOfIntegerMapOfInteger& Assign(const NMTDS_DataMapOfIntegerMapOfInteger& Other);
+  NMTDS_DataMapOfIntegerMapOfInteger& operator =(const NMTDS_DataMapOfIntegerMapOfInteger& Other)
+  {
+    return Assign(Other);
+  }
+
+  Standard_EXPORT void ReSize(const Standard_Integer NbBuckets);
+
+  Standard_EXPORT void Clear();
+  ~NMTDS_DataMapOfIntegerMapOfInteger()
+  {
+    Clear();
+  }
+
+  Standard_EXPORT Standard_Boolean Bind (const Standard_Integer& K,const TColStd_MapOfInteger& I);
+  Standard_EXPORT Standard_Boolean IsBound (const Standard_Integer& K) const;
+  Standard_EXPORT Standard_Boolean UnBind (const Standard_Integer& K);
+
+  Standard_EXPORT const TColStd_MapOfInteger& Find (const Standard_Integer& K) const;
+  const TColStd_MapOfInteger& operator()(const Standard_Integer& K) const
+  {
+    return Find(K);
+  }
+
+  Standard_EXPORT TColStd_MapOfInteger& ChangeFind(const Standard_Integer& K);
+  TColStd_MapOfInteger& operator()(const Standard_Integer& K)
+  {
+    return ChangeFind(K);
+  }
+
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const Standard_Integer& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const Standard_Integer& K);
+#endif
 
-private: 
+private:
 
  // Methods PRIVATE
- // 
-
-
-Standard_EXPORT NMTDS_DataMapOfIntegerMapOfInteger(const NMTDS_DataMapOfIntegerMapOfInteger& Other);
-
-
- // Fields PRIVATE
  //
 
+  Standard_EXPORT NMTDS_DataMapOfIntegerMapOfInteger(const NMTDS_DataMapOfIntegerMapOfInteger& Other);
 
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index 923025604e3a25d82075a2fe275986fad664dfe1..6a25d077020ec60ef43a3fdf7f6bf786c1eebfdb 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile
 #define _NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_OutOfRange;
 class Standard_NoSuchObject;
@@ -42,7 +42,6 @@ class BooleanOperations_IndexedDataMapOfShapeInteger;
 class TColStd_MapIntegerHasher;
 class NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -50,6 +49,7 @@ class NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInte
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger  : public TCollection_BasicMap {
 
@@ -132,41 +132,21 @@ Standard_EXPORT  const BooleanOperations_IndexedDataMapOfShapeInteger& FindFromK
 
 Standard_EXPORT   BooleanOperations_IndexedDataMapOfShapeInteger& ChangeFromKey(const Standard_Integer& K) ;
 
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const Standard_Integer& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const Standard_Integer& K);
+#endif
 
 private: 
 
  // Methods PRIVATE
  // 
 
-
 Standard_EXPORT NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger(const NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger& Other);
 
-
- // Fields PRIVATE
- //
-
-
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index 27eb2e88c6633ce9eb50b328112b219765880fb9..f4405a21508ff5d0baa6bdfdae4dcd6ce6b22def 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTDS_IndexedDataMapOfIntegerShape_HeaderFile
 #define _NMTDS_IndexedDataMapOfIntegerShape_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_OutOfRange;
 class Standard_NoSuchObject;
@@ -42,7 +42,6 @@ class TopoDS_Shape;
 class TColStd_MapIntegerHasher;
 class NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -50,6 +49,7 @@ class NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTDS_IndexedDataMapOfIntegerShape  : public TCollection_BasicMap {
 
@@ -132,19 +132,10 @@ Standard_EXPORT  const TopoDS_Shape& FindFromKey(const Standard_Integer& K) cons
 
 Standard_EXPORT   TopoDS_Shape& ChangeFromKey(const Standard_Integer& K) ;
 
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const Standard_Integer& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const Standard_Integer& K);
+#endif
 
 private: 
 
index f3fc1bc43c433828738c3014b051dce2c0ac37ed..db75c3a34890120aaa7500dd554765024a3f746d 100644 (file)
@@ -15,7 +15,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTDS_IndexedDataMapOfShapeBndSphere_HeaderFile
 #define _NMTDS_IndexedDataMapOfShapeBndSphere_HeaderFile
@@ -32,6 +31,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_OutOfRange;
 class Standard_NoSuchObject;
@@ -40,7 +40,6 @@ class NMTDS_BndSphere;
 class TopTools_ShapeMapHasher;
 class NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBndSphere;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -48,6 +47,7 @@ class NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBndSphere;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTDS_IndexedDataMapOfShapeBndSphere  : public TCollection_BasicMap {
 
@@ -130,41 +130,21 @@ Standard_EXPORT  const NMTDS_BndSphere& FindFromKey(const TopoDS_Shape& K) const
 
 Standard_EXPORT   NMTDS_BndSphere& ChangeFromKey(const TopoDS_Shape& K) ;
 
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const TopoDS_Shape& K);
+#endif
 
 private: 
 
  // Methods PRIVATE
  // 
 
-
 Standard_EXPORT NMTDS_IndexedDataMapOfShapeBndSphere(const NMTDS_IndexedDataMapOfShapeBndSphere& Other);
 
-
- // Fields PRIVATE
- //
-
-
 };
 
-
-
-
-
 // other Inline functions and methods (like "C++: function call" methods)
 //
 
-
 #endif
index 5b884ccffc06aba5314cbdb57628a06681b39810..2492f25afd6d5b161050f13ca6bd1d687f959534 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTDS_IndexedDataMapOfShapeBox_HeaderFile
 #define _NMTDS_IndexedDataMapOfShapeBox_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_OutOfRange;
 class Standard_NoSuchObject;
@@ -43,7 +43,6 @@ class Bnd_Box;
 class TopTools_ShapeMapHasher;
 class NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -51,6 +50,7 @@ class NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTDS_IndexedDataMapOfShapeBox  : public TCollection_BasicMap {
 
@@ -133,9 +133,10 @@ Standard_EXPORT  const Bnd_Box& FindFromKey(const TopoDS_Shape& K) const;
 
 Standard_EXPORT   Bnd_Box& ChangeFromKey(const TopoDS_Shape& K) ;
 
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const TopoDS_Shape& K);
+#endif
 
 protected:
 
index 5f80f8bb3c26195d9f6171c41a6fdf38d601aa21..508c28f1b7d1203270a1a463e814b46b7f5d0f0c 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTTools_DataMapOfIntegerFaceInfo_HeaderFile
 #define _NMTTools_DataMapOfIntegerFaceInfo_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class NMTTools_FaceInfo;
@@ -42,7 +42,6 @@ class TColStd_MapIntegerHasher;
 class NMTTools_DataMapNodeOfDataMapOfIntegerFaceInfo;
 class NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -50,6 +49,7 @@ class NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTTools_DataMapOfIntegerFaceInfo  : public TCollection_BasicMap {
 
@@ -116,10 +116,10 @@ Standard_EXPORT   NMTTools_FaceInfo& ChangeFind(const Standard_Integer& K) ;
   return ChangeFind(K);
 }
 
-
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const Standard_Integer& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const Standard_Integer& K);
+#endif
 
 protected:
 
index 66fdda3edc88cfe19bd2f184542f30ecdc9c35f4..0cc6bde585118ab2150c06a72a41d1fd3c3f8f43 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTTools_DataMapOfIntegerListOfPaveBlock_HeaderFile
 #define _NMTTools_DataMapOfIntegerListOfPaveBlock_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_NoSuchObject;
 class BOPTools_ListOfPaveBlock;
@@ -42,7 +42,6 @@ class TColStd_MapIntegerHasher;
 class NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock;
 class NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -50,6 +49,7 @@ class NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTTools_DataMapOfIntegerListOfPaveBlock  : public TCollection_BasicMap {
 
@@ -116,20 +116,10 @@ Standard_EXPORT   BOPTools_ListOfPaveBlock& ChangeFind(const Standard_Integer& K
   return ChangeFind(K);
 }
 
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address Find1 (const Standard_Integer& K) const;
+  Standard_EXPORT Standard_Address ChangeFind1 (const Standard_Integer& K);
+#endif
 
 private: 
 
index 87dc16a651307a5219cd1c93018d406ecc52e65e..0618f69cc107fee0f83dc6d8a06f515b0925bcce 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTTools_IndexedDataMapOfIndexedMapOfInteger_HeaderFile
 #define _NMTTools_IndexedDataMapOfIndexedMapOfInteger_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_OutOfRange;
 class Standard_NoSuchObject;
@@ -42,7 +42,6 @@ class TColStd_IndexedMapOfInteger;
 class TColStd_MapIntegerHasher;
 class NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -50,6 +49,7 @@ class NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTTools_IndexedDataMapOfIndexedMapOfInteger  : public TCollection_BasicMap {
 
@@ -132,9 +132,10 @@ Standard_EXPORT  const TColStd_IndexedMapOfInteger& FindFromKey(const Standard_I
 
 Standard_EXPORT   TColStd_IndexedMapOfInteger& ChangeFromKey(const Standard_Integer& K) ;
 
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const Standard_Integer& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const Standard_Integer& K);
+#endif
 
 protected:
 
index 8bfea639074ec24a1f9bc5591997890b367ff013..601854b712266696db2c72f403dd3c7ab7fc1dfb 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_HeaderFile
 #define _NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_OutOfRange;
 class Standard_NoSuchObject;
@@ -43,7 +43,6 @@ class TopTools_IndexedMapOfShape;
 class TopTools_ShapeMapHasher;
 class NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -51,6 +50,7 @@ class NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTTools_IndexedDataMapOfShapeIndexedMapOfShape  : public TCollection_BasicMap {
 
@@ -133,9 +133,10 @@ Standard_EXPORT  const TopTools_IndexedMapOfShape& FindFromKey(const TopoDS_Shap
 
 Standard_EXPORT   TopTools_IndexedMapOfShape& ChangeFromKey(const TopoDS_Shape& K) ;
 
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const TopoDS_Shape& K);
+#endif
 
 protected:
 
index 3b3b113a59f64adfd271747acc950f170cd13582..4f3c1abc1e51526fab692e75d81fcecff32341ef 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #ifndef _NMTTools_IndexedDataMapOfShapePaveBlock_HeaderFile
 #define _NMTTools_IndexedDataMapOfShapePaveBlock_HeaderFile
@@ -35,6 +34,7 @@
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
+
 class Standard_DomainError;
 class Standard_OutOfRange;
 class Standard_NoSuchObject;
@@ -43,7 +43,6 @@ class BOPTools_PaveBlock;
 class TopTools_ShapeMapHasher;
 class NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock;
 
-
 #ifndef _Standard_HeaderFile
 #include <Standard.hxx>
 #endif
@@ -51,6 +50,7 @@ class NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock;
 #include <Standard_Macro.hxx>
 #endif
 
+#include <Basics_OCCTVersion.hxx>
 
 class NMTTools_IndexedDataMapOfShapePaveBlock  : public TCollection_BasicMap {
 
@@ -133,9 +133,10 @@ Standard_EXPORT  const BOPTools_PaveBlock& FindFromKey(const TopoDS_Shape& K) co
 
 Standard_EXPORT   BOPTools_PaveBlock& ChangeFromKey(const TopoDS_Shape& K) ;
 
-
-
-
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  Standard_EXPORT Standard_Address FindFromKey1 (const TopoDS_Shape& K) const;
+  Standard_EXPORT Standard_Address ChangeFromKey1 (const TopoDS_Shape& K);
+#endif
 
 protected:
 
index 593514f68cb99938b62694966d23c02fedb18a8b..38df5ddeac4691215bbfad585e59d43ac05ec0e9 100644 (file)
@@ -1,23 +1,23 @@
--- Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+--  Copyright (C) 2007-2008  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
+--  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+--  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 --
--- 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.
+--  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.
 --
--- 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.
+--  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
+--  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
+--  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 --
 -- File:       NMTTools_PaveFiller.cdl
 -- Created:    Fri Dec  5 14:35:00 2003
@@ -347,7 +347,7 @@ is
                 nF  :Integer from Standard;  
                 aLCB:out ListOfCommonBlock from NMTTools) 
        returns Integer from Standard;   
-       
     PrepareFace(me:out;  
            nF  :  Integer from Standard; 
            aF  : out Face from TopoDS); 
@@ -383,8 +383,14 @@ is
     RealSplitsInFace(me:out; 
                 nE1 :Integer from Standard;  
                 nF2 :Integer from Standard;  
-                aLs :out ListOfPaveBlock from BOPTools); 
-     
+                aLs :out ListOfPaveBlock from BOPTools);  
+--modified by NIZNHY-PKV Mon Oct 17 11:43:23 2011f 
+     RealSplitsInFace(me:out; 
+                nF1 :Integer from Standard;  
+                aLPB :out ListOfPaveBlock from BOPTools); 
+--modified by NIZNHY-PKV Mon Oct 17 11:43:39 2011t 
     RealSplitsOnEdge(me:out; 
                 nE1 :Integer from Standard;  
                 nE2 :Integer from Standard;  
@@ -413,7 +419,6 @@ is
                aBC : out Curve from BOPTools);  
                
 
     PutBoundPaveOnCurve (me:out; 
                    aBC :out Curve from BOPTools;        
                    aFF :out SSInterference from BOPTools); 
@@ -497,7 +502,6 @@ is
                    aPB2 : PaveBlock   from BOPTools) 
        returns Boolean from Standard;     
        
---modified by NIZNHY-PKV Wed Feb 09 10:10:48 2011f      
     FillFaceInfo (me:out) 
        is protected;
  
@@ -505,8 +509,11 @@ is
                aFF     : SSInterference from BOPTools;  
                aMVStick: MapOfInteger from TColStd; 
                aTolR3D:  out Real from Standard) 
-       is protected; 
---modified by NIZNHY-PKV Wed Feb 09 10:11:52 2011t     
+       is protected;  
+        
+    PutClosingPaveOnCurve (me:out; 
+                   aBC :out Curve from BOPTools;        
+                   aFF :out SSInterference from BOPTools); 
  
 fields 
     myDS               :  PShapesDataStructure from NMTDS      is protected;   
@@ -527,7 +534,5 @@ fields
     myDSIt             :  PIterator from NMTDS is protected;  
     myCompositeShape   :  Shape from TopoDS is protected;
     myIP               :  PInterfPool from NMTDS is protected;     
---modified by NIZNHY-PKV Wed Feb 09 10:51:50 2011f 
     myFaceInfo         :  DataMapOfIntegerFaceInfo from NMTTools is protected;
---modified by NIZNHY-PKV Wed Feb 09 10:51:50 2011t
 end PaveFiller;
index c0cc26cce5126c834ad7ec57e19be1b02d86f81a..30be6512193b281c67a805c593361f3062898192 100644 (file)
 #ifndef _NMTTools_PaveFiller_HeaderFile
 #define _NMTTools_PaveFiller_HeaderFile
 
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
 #ifndef _NMTDS_PShapesDataStructure_HeaderFile
 #include <NMTDS_PShapesDataStructure.hxx>
 #endif
@@ -99,204 +106,142 @@ class TopTools_DataMapOfShapeShape;
 class TColStd_MapOfInteger;
 
 
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-
 
 class NMTTools_PaveFiller  {
-
 public:
 
-    void* operator new(size_t,void* anAddress) 
-      {
-        return anAddress;
-      }
-    void* operator new(size_t size) 
-      { 
-        return Standard::Allocate(size); 
-      }
-    void  operator delete(void *anAddress) 
-      { 
-        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
-      }
- // Methods PUBLIC
- // 
-
-
-Standard_EXPORT NMTTools_PaveFiller();
+  void* operator new(size_t,void* anAddress) 
+  {
+    return anAddress;
+  }
+  void* operator new(size_t size) 
+  {
+    return Standard::Allocate(size); 
+  }
+  void  operator delete(void *anAddress) 
+  {
+    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+  }
+
+  
+  Standard_EXPORT   NMTTools_PaveFiller();
 Standard_EXPORT virtual ~NMTTools_PaveFiller();
-
-
-Standard_EXPORT   void SetCompositeShape(const TopoDS_Shape& aS) ;
-
-
-Standard_EXPORT  const TopoDS_Shape& CompositeShape() const;
-
-
-Standard_EXPORT   NMTDS_PShapesDataStructure DS() ;
-
-
-Standard_EXPORT   NMTDS_PIterator DSIt() ;
-
-
-Standard_EXPORT   NMTDS_PInterfPool IP() ;
-
-
-Standard_EXPORT virtual  void Perform() ;
-
-
-Standard_EXPORT   Standard_Boolean IsDone() const;
-
-
-Standard_EXPORT  const IntTools_Context& Context() const;
-
-
-Standard_EXPORT   IntTools_Context& ChangeContext() ;
-
-
-Standard_EXPORT  const BOPTools_PavePool& PavePool() const;
-
-
-Standard_EXPORT   BOPTools_PavePool& ChangePavePool() ;
-
-
-Standard_EXPORT  const NMTTools_CommonBlockPool& CommonBlockPool() const;
-
-
-Standard_EXPORT   NMTTools_CommonBlockPool& ChangeCommonBlockPool() ;
-
-
-Standard_EXPORT  const BOPTools_SplitShapesPool& SplitShapesPool() const;
-
-
-Standard_EXPORT   BOPTools_SplitShapesPool& ChangeSplitShapesPool() ;
-
-
-Standard_EXPORT   Standard_Integer FindSDVertex(const Standard_Integer nV) const;
-
-
-Standard_EXPORT   Standard_Integer SplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsFace(const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer CommonBlocksFace(const Standard_Integer nF,NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void PrepareFace(const Standard_Integer nF,TopoDS_Face& aF) ;
-
-
-Standard_EXPORT  const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB) ;
-
-
-Standard_EXPORT  const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB,TColStd_ListOfInteger& aLB,Standard_Integer& aIsCommonBlock) ;
-
-
-Standard_EXPORT   void RealSplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Boolean HasRealSplitsInOnFace(const Standard_Integer nF1,const Standard_Integer nF2) ;
-
-
-Standard_EXPORT   void RealSplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void RealSplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void RealSplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void RealSplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void RealSplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void PrepareSetForFace(const Standard_Integer nF1,const Standard_Integer nF2,const BOPTools_ListOfPaveBlock& aLPB,BOPTools_PaveSet& aPSF) ;
-
-
-Standard_EXPORT   void PutPaveOnCurve(const BOPTools_PaveSet& aPSF,const Standard_Real aTol,BOPTools_Curve& aBC) ;
-
-
-Standard_EXPORT   void PutBoundPaveOnCurve(BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
-
-
-Standard_EXPORT   void PutBoundPaveOnCurve(const gp_Pnt& aP,const Standard_Real aT,BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
-
-
-Standard_EXPORT   Standard_Boolean FindPave(const gp_Pnt& aP,const Standard_Real aTpV,const BOPTools_PaveSet& aPS,BOPTools_Pave& aPV) ;
-
-
-Standard_EXPORT   Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlock& aPB,const BOPTools_PaveBlock& aPBR,const Standard_Real aTol) ;
-
-
-Standard_EXPORT   Standard_Boolean IsExistingPaveBlock(const BOPTools_PaveBlock& aPB,const BOPTools_ListOfPaveBlock& aLPB,const Standard_Real aTol) ;
-
-
-Standard_EXPORT   void MakePCurves() ;
-
-
-Standard_EXPORT  const NMTTools_IndexedDataMapOfIndexedMapOfInteger& AloneVertices() const;
-
-
-Standard_EXPORT   Standard_Boolean IsExistingPaveBlock(const BOPTools_PaveBlock& aPB,const TopTools_ListOfShape& aLPB,const Standard_Real aTol) ;
-
-
-Standard_EXPORT   Standard_Boolean CheckCoincidence(const BOPTools_PaveBlock& aPB,const BOPTools_ListOfPaveBlock& aLPB) ;
-
-
-Standard_EXPORT   Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlock& aPB,const TopoDS_Edge& aE,const Standard_Real aTol) ;
-
-
-Standard_EXPORT   void SharedEdges(const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLNE,TopTools_ListOfShape& aLSE) ;
-
-
-Standard_EXPORT   void FuseVertices(const TopoDS_Shape& aC,TopTools_DataMapOfShapeShape& aDMVV) const;
-
-
-Standard_EXPORT   void TreatPaveBlocks(NMTTools_ListOfCommonBlock& theLCB) ;
-
-
-Standard_EXPORT   BOPTools_PavePool& ChangePavePoolNew() ;
-
-
-Standard_EXPORT   Standard_Boolean CheckCoincidence(const BOPTools_PaveBlock& aPB1,const BOPTools_PaveBlock& aPB2) ;
+  
+  Standard_EXPORT     void SetCompositeShape(const TopoDS_Shape& aS) ;
+  
+  Standard_EXPORT    const TopoDS_Shape& CompositeShape() const;
+  
+  Standard_EXPORT     NMTDS_PShapesDataStructure DS() ;
+  
+  Standard_EXPORT     NMTDS_PIterator DSIt() ;
+  
+  Standard_EXPORT     NMTDS_PInterfPool IP() ;
+  
+  Standard_EXPORT   virtual  void Perform() ;
+  
+  Standard_EXPORT     Standard_Boolean IsDone() const;
+  
+  Standard_EXPORT    const IntTools_Context& Context() const;
+  
+  Standard_EXPORT     IntTools_Context& ChangeContext() ;
+  
+  Standard_EXPORT    const BOPTools_PavePool& PavePool() const;
+  
+  Standard_EXPORT     BOPTools_PavePool& ChangePavePool() ;
+  
+  Standard_EXPORT    const NMTTools_CommonBlockPool& CommonBlockPool() const;
+  
+  Standard_EXPORT     NMTTools_CommonBlockPool& ChangeCommonBlockPool() ;
+  
+  Standard_EXPORT    const BOPTools_SplitShapesPool& SplitShapesPool() const;
+  
+  Standard_EXPORT     BOPTools_SplitShapesPool& ChangeSplitShapesPool() ;
+  
+  Standard_EXPORT     Standard_Integer FindSDVertex(const Standard_Integer nV) const;
+  
+  Standard_EXPORT     Standard_Integer SplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsFace(const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer CommonBlocksFace(const Standard_Integer nF,NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void PrepareFace(const Standard_Integer nF,TopoDS_Face& aF) ;
+  
+  Standard_EXPORT    const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB) ;
+  
+  Standard_EXPORT    const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB,TColStd_ListOfInteger& aLB,Standard_Integer& aIsCommonBlock) ;
+  
+  Standard_EXPORT     void RealSplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Boolean HasRealSplitsInOnFace(const Standard_Integer nF1,const Standard_Integer nF2) ;
+  
+  Standard_EXPORT     void RealSplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void RealSplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void RealSplitsInFace(const Standard_Integer nF1,BOPTools_ListOfPaveBlock& aLPB) ;
+  
+  Standard_EXPORT     void RealSplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void RealSplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void RealSplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void PrepareSetForFace(const Standard_Integer nF1,const Standard_Integer nF2,const BOPTools_ListOfPaveBlock& aLPB,BOPTools_PaveSet& aPSF) ;
+  
+  Standard_EXPORT     void PutPaveOnCurve(const BOPTools_PaveSet& aPSF,const Standard_Real aTol,BOPTools_Curve& aBC) ;
+  
+  Standard_EXPORT     void PutBoundPaveOnCurve(BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
+  
+  Standard_EXPORT     void PutBoundPaveOnCurve(const gp_Pnt& aP,const Standard_Real aT,BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
+  
+  Standard_EXPORT     Standard_Boolean FindPave(const gp_Pnt& aP,const Standard_Real aTpV,const BOPTools_PaveSet& aPS,BOPTools_Pave& aPV) ;
+  
+  Standard_EXPORT     Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlock& aPB,const BOPTools_PaveBlock& aPBR,const Standard_Real aTol) ;
+  
+  Standard_EXPORT     Standard_Boolean IsExistingPaveBlock(const BOPTools_PaveBlock& aPB,const BOPTools_ListOfPaveBlock& aLPB,const Standard_Real aTol) ;
+  
+  Standard_EXPORT     void MakePCurves() ;
+  
+  Standard_EXPORT    const NMTTools_IndexedDataMapOfIndexedMapOfInteger& AloneVertices() const;
+  
+  Standard_EXPORT     Standard_Boolean IsExistingPaveBlock(const BOPTools_PaveBlock& aPB,const TopTools_ListOfShape& aLPB,const Standard_Real aTol) ;
+  
+  Standard_EXPORT     Standard_Boolean CheckCoincidence(const BOPTools_PaveBlock& aPB,const BOPTools_ListOfPaveBlock& aLPB) ;
+  
+  Standard_EXPORT     Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlock& aPB,const TopoDS_Edge& aE,const Standard_Real aTol) ;
+  
+  Standard_EXPORT     void SharedEdges(const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLNE,TopTools_ListOfShape& aLSE) ;
+  
+  Standard_EXPORT     void FuseVertices(const TopoDS_Shape& aC,TopTools_DataMapOfShapeShape& aDMVV) const;
+  
+  Standard_EXPORT     void TreatPaveBlocks(NMTTools_ListOfCommonBlock& theLCB) ;
+  
+  Standard_EXPORT     BOPTools_PavePool& ChangePavePoolNew() ;
+  
+  Standard_EXPORT     Standard_Boolean CheckCoincidence(const BOPTools_PaveBlock& aPB1,const BOPTools_PaveBlock& aPB2) ;
+  
+  Standard_EXPORT     void PutClosingPaveOnCurve(BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
 
 
 
@@ -304,117 +249,78 @@ Standard_EXPORT   Standard_Boolean CheckCoincidence(const BOPTools_PaveBlock& aP
 
 protected:
 
- // Methods PROTECTED
- // 
-
-
-Standard_EXPORT virtual  void Init() ;
-
-
-Standard_EXPORT virtual  void Clear() ;
-
-
-Standard_EXPORT virtual  void PerformVV() ;
-
-
-Standard_EXPORT virtual  void PerformVE() ;
-
-
-Standard_EXPORT virtual  void PerformVF() ;
-
-
-Standard_EXPORT virtual  void PerformEE() ;
-
-
-Standard_EXPORT virtual  void PerformEF() ;
-
-
-Standard_EXPORT virtual  void PerformFF() ;
-
-
-Standard_EXPORT   void MakeSplitEdges() ;
-
-
-Standard_EXPORT virtual  void PreparePaveBlocks(const TopAbs_ShapeEnum aType1,const TopAbs_ShapeEnum aType2) ;
-
+  
+  Standard_EXPORT   virtual  void Init() ;
+  
+  Standard_EXPORT   virtual  void Clear() ;
+  
+  Standard_EXPORT   virtual  void PerformVV() ;
+  
+  Standard_EXPORT   virtual  void PerformVE() ;
+  
+  Standard_EXPORT   virtual  void PerformVF() ;
+  
+  Standard_EXPORT   virtual  void PerformEE() ;
+  
+  Standard_EXPORT   virtual  void PerformEF() ;
+  
+  Standard_EXPORT   virtual  void PerformFF() ;
+  
+  Standard_EXPORT     void MakeSplitEdges() ;
+  
+  Standard_EXPORT   virtual  void PreparePaveBlocks(const TopAbs_ShapeEnum aType1,const TopAbs_ShapeEnum aType2) ;
+  
+  Standard_EXPORT     void CorrectShrunkRanges(const Standard_Integer aSide,const BOPTools_Pave& aPave,IntTools_ShrunkRange& aSR) ;
+  
+  Standard_EXPORT   virtual  void PreparePaveBlocks(const Standard_Integer anE) ;
+  
+  Standard_EXPORT   virtual  void PrepareEdges() ;
+  
+  Standard_EXPORT     Standard_Boolean IsSuccessorsComputed(const Standard_Integer iF1,const Standard_Integer iF2) const;
+  
+  Standard_EXPORT     Standard_Boolean IsBlocksCoinside(const BOPTools_PaveBlock& aPB1,const BOPTools_PaveBlock& aPB2) const;
+  
+  Standard_EXPORT     void RefinePavePool() ;
+  
+  Standard_EXPORT     Standard_Integer CheckFacePaves(const TopoDS_Vertex& aV,const Standard_Integer nF) ;
+  
+  Standard_EXPORT     void ReplaceCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void RemoveCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void SplitCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void SplitCommonBlock(const NMTTools_CommonBlock& aCB,NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void EECommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfPaveBlock& aM) ;
+  
+  Standard_EXPORT     void EFCommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfInteger& aMapCB) ;
+  
+  Standard_EXPORT     void EENewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
+  
+  Standard_EXPORT     void EENewVertices(const TopoDS_Vertex& aV,const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
+  
+  Standard_EXPORT     void EFNewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
+  
+  Standard_EXPORT     void EFNewVertices(const TopoDS_Vertex& aV,const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
+  
+  Standard_EXPORT     void UpdateCommonBlocks() ;
+  
+  Standard_EXPORT     void UpdatePaveBlocks() ;
+  
+  Standard_EXPORT     Standard_Integer SplitIndex(const BOPTools_PaveBlock& aPB) const;
+  
+  Standard_EXPORT     void MakeBlocks() ;
+  
+  Standard_EXPORT     void PerformVF1() ;
+  
+  Standard_EXPORT     void MakeAloneVertices() ;
+  
+  Standard_EXPORT     void FillFaceInfo() ;
+  
+  Standard_EXPORT     void CorrectTolR3D(const BOPTools_SSInterference& aFF,const TColStd_MapOfInteger& aMVStick,Standard_Real& aTolR3D) ;
 
-Standard_EXPORT   void CorrectShrunkRanges(const Standard_Integer aSide,const BOPTools_Pave& aPave,IntTools_ShrunkRange& aSR) ;
 
-
-Standard_EXPORT virtual  void PreparePaveBlocks(const Standard_Integer anE) ;
-
-
-Standard_EXPORT virtual  void PrepareEdges() ;
-
-
-Standard_EXPORT   Standard_Boolean IsSuccessorsComputed(const Standard_Integer iF1,const Standard_Integer iF2) const;
-
-
-Standard_EXPORT   Standard_Boolean IsBlocksCoinside(const BOPTools_PaveBlock& aPB1,const BOPTools_PaveBlock& aPB2) const;
-
-
-Standard_EXPORT   void RefinePavePool() ;
-
-
-Standard_EXPORT   Standard_Integer CheckFacePaves(const TopoDS_Vertex& aV,const Standard_Integer nF) ;
-
-
-Standard_EXPORT   void ReplaceCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void RemoveCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void SplitCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void SplitCommonBlock(const NMTTools_CommonBlock& aCB,NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void EECommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfPaveBlock& aM) ;
-
-
-Standard_EXPORT   void EFCommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfInteger& aMapCB) ;
-
-
-Standard_EXPORT   void EENewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
-
-
-Standard_EXPORT   void EENewVertices(const TopoDS_Vertex& aV,const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
-
-
-Standard_EXPORT   void EFNewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
-
-
-Standard_EXPORT   void EFNewVertices(const TopoDS_Vertex& aV,const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
-
-
-Standard_EXPORT   void UpdateCommonBlocks() ;
-
-
-Standard_EXPORT   void UpdatePaveBlocks() ;
-
-
-Standard_EXPORT   Standard_Integer SplitIndex(const BOPTools_PaveBlock& aPB) const;
-
-
-Standard_EXPORT   void MakeBlocks() ;
-
-
-Standard_EXPORT   void PerformVF1() ;
-
-
-Standard_EXPORT   void MakeAloneVertices() ;
-
-
-Standard_EXPORT   void FillFaceInfo() ;
-
-
-Standard_EXPORT   void CorrectTolR3D(const BOPTools_SSInterference& aFF,const TColStd_MapOfInteger& aMVStick,Standard_Real& aTolR3D) ;
-
-
- // Fields PROTECTED
- //
 NMTDS_PShapesDataStructure myDS;
 Standard_Boolean myIsDone;
 Standard_Integer myNbSources;
@@ -433,14 +339,10 @@ NMTDS_PInterfPool myIP;
 NMTTools_DataMapOfIntegerFaceInfo myFaceInfo;
 
 
-private: 
+private:
 
- // Methods PRIVATE
- // 
 
 
- // Fields PRIVATE
- //
 
 
 };
@@ -450,7 +352,6 @@ private:
 
 
 // other Inline functions and methods (like "C++: function call" methods)
-//
 
 
 #endif
index 31d1be74f16a9383cc182243eb12aeabbd3bbe4b..1a9e9cd8a8173f3af01c5239b1ef8bd71d7a3ec6 100644 (file)
@@ -1,23 +1,23 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+//  Copyright (C) 2007-2011  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
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-// 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.
+//  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.
 //
-// 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.
+//  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
+//  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
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File:        NMTTools_PaveFiller_6.cxx
 //  Created:     Fri Dec 19 10:27:31 2003
@@ -25,6 +25,8 @@
 
 #include <NMTTools_PaveFiller.ixx>
 
+#include <Basics_OCCTVersion.hxx>
+
 #include <Precision.hxx>
 
 #include <TColStd_IndexedMapOfInteger.hxx>
@@ -122,7 +124,7 @@ static
   myIsDone=Standard_False;
   //
   Standard_Boolean bToApproxC3d, bToApproxC2dOnS1, bToApproxC2dOnS2, bIsDone;
-  Standard_Boolean bJustAdd;
+  Standard_Boolean bJustAdd, bToSplit;
   Standard_Integer n1, n2, anIndexIn, nF1, nF2, aBlockLength, aNbFFs;
   Standard_Integer aNbCurves, aNbPoints;
   Standard_Real anApproxTol, aTolR3D, aTolR2D;
@@ -142,6 +144,10 @@ static
     aFFs.SetBlockLength(aNbFFs);
   }
   //
+  //modified by NIZNHY-PKV Thu Sep 15 08:02:52 2011f
+  bToSplit=Standard_False;
+  //modified by NIZNHY-PKV Thu Sep 15 08:02:55 2011t
+  //
   for (; myDSIt->More(); myDSIt->Next()) {
     myDSIt->Current(n1, n2, bJustAdd);
     //
@@ -186,7 +192,13 @@ static
       aTolR3D=1.e-7;
     }
     //
+    //modified by NIZNHY-PKV Thu Sep 15 08:03:02 2011f
+#if OCC_VERSION_LARGE > 0x06050100 // For OCCT6.5.2 and higher
+    aFF.PrepareLines3D(bToSplit);
+#else
     aFF.PrepareLines3D();
+#endif // OCC_VERSION_LARGE > 0x06050100 // For OCCT6.5.2 and higher
+    //modified by NIZNHY-PKV Thu Sep 15 08:03:04 2011t
     //
     const IntTools_SequenceOfCurves& aCvsX=aFF.Lines();
     const IntTools_SequenceOfPntOn2Faces& aPntsX=aFF.Points();
@@ -349,6 +361,16 @@ void NMTTools_PaveFiller::MakeBlocks()
       BOPTools_Curve& aBC=aSCvs(j);
       PutBoundPaveOnCurve (aBC, aFFi);
     }
+    //modified by NIZNHY-PKV Wed Sep 14 13:12:14 2011f
+#if OCC_VERSION_LARGE > 0x06050100 // For OCCT6.5.2 and higher
+    //
+    // Put closing pave if needded
+    for (j=1; j<=aNbCurves; ++j) {
+      BOPTools_Curve& aBC=aSCvs(j);
+      PutClosingPaveOnCurve (aBC, aFFi);
+    }
+#endif // OCC_VERSION_LARGE > 0x06050100 // For OCCT6.5.2 and higher
+    //modified by NIZNHY-PKV Wed Sep 14 13:12:17 2011t
     //
     //  Pave Blocks on Curves
     bHasES=Standard_False;
@@ -1260,13 +1282,9 @@ void NMTTools_PaveFiller::PutPaveOnCurve(const BOPTools_PaveSet& aPaveSet,
       BOPTools_PaveSet& aPS=aBC.Set();
       aPS.Append(aPaveNew);
       //<-B
-      //modified by NIZNHY-PKV Thu Apr 22 10:36:45 2010f
-      //BOPTools_Tools::UpdateVertex (aC, aT, aV);
-      //modified by NIZNHY-PKV Thu Apr 22 10:36:48 2010t
     }
   }
 }
-//modified by NIZNHY-PKV Tue Feb 08 12:24:35 2011f
 //
 //=======================================================================
 //function : FillFaceInfo
@@ -1518,4 +1536,69 @@ void NMTTools_PaveFiller::CorrectTolR3D(const BOPTools_SSInterference& aFF,
     aTolR3D=aTolR;
   }
 }
-//modified by NIZNHY-PKV Tue Feb 08 12:24:56 2011t
+
+//modified by NIZNHY-PKV Wed Sep 14 13:21:13 2011f
+#if OCC_VERSION_LARGE > 0x06050100 // For OCCT6.5.2 and higher
+//=======================================================================
+// function: PutClosingPaveOnCurve
+// purpose:
+//=======================================================================
+void NMTTools_PaveFiller::PutClosingPaveOnCurve(BOPTools_Curve& aBC,
+                                               BOPTools_SSInterference& aFFi)
+{
+  Standard_Boolean bIsClosed, bHasBounds, bAdded;
+  Standard_Integer nVC, j;
+  Standard_Real aT[2], aTolR3D, aTC, dT, aTx;
+  gp_Pnt aP[2] ; 
+  BOPTools_Pave aPVx;
+  BOPTools_ListIteratorOfListOfPave aItLP;
+  //
+  const IntTools_Curve& aIC=aBC.Curve();
+  const Handle (Geom_Curve)& aC3D=aIC.Curve();
+  if(aC3D.IsNull()) {
+    return;
+  }
+  //
+  bIsClosed=IntTools_Tools::IsClosed(aC3D);
+  if (!bIsClosed) {
+    return;
+  }
+  //
+  bHasBounds=aIC.HasBounds ();
+  if (!bHasBounds){
+    return;
+  }
+  // 
+  bAdded=Standard_False;
+  dT=Precision::PConfusion();
+  aTolR3D=aFFi.TolR3D();
+  aIC.Bounds (aT[0], aT[1], aP[0], aP[1]);
+  //
+  BOPTools_PaveSet& aFFiPS=aFFi.NewPaveSet();
+  BOPTools_PaveSet& aCPS=aBC.Set();
+  //
+  const BOPTools_ListOfPave& aLP=aCPS.Set();
+  aItLP.Initialize(aLP);
+  for (; aItLP.More() && !bAdded; aItLP.Next()) {
+    const BOPTools_Pave& aPC=aItLP.Value();
+    nVC=aPC.Index();
+    const TopoDS_Vertex aVC=TopoDS::Vertex(myDS->Shape(nVC));
+    aTC=aPC.Param();
+    //
+    for (j=0; j<2; ++j) {
+      if (fabs(aTC-aT[j]) < dT) {
+       aTx=(!j) ? aT[1] : aT[0];
+       aPVx.SetIndex(nVC);
+       aPVx.SetParam(aTx);
+       //
+       aCPS.Append(aPVx);
+       aFFiPS.Append(aPVx);
+       //
+       bAdded=Standard_True;
+       break;
+      }
+    }
+  }
+}
+#endif // OCC_VERSION_LARGE > 0x06050100 // For OCCT6.5.2 and higher
+//modified by NIZNHY-PKV Wed Sep 14 13:21:17 2011t
index 5adf31efa2cd5f3e31716c9395f61b7de90bb7da..b4c21b10e9504feaf5bc3234459a6d05acbf17c9 100644 (file)
   }
   return 0; //Ok
 }
+//modified by NIZNHY-PKV Mon Oct 17 12:07:48 2011f
+static 
+  void SortPaveBlocks(BOPTools_ListOfPaveBlock &);
+static
+  void SortShell(const Standard_Integer, 
+                BOPTools_PaveBlock *);
+static
+  Standard_Boolean Less(const BOPTools_PaveBlock &, 
+                       const BOPTools_PaveBlock &);
+
+//=======================================================================
+// function: RealSplitsInFace
+// purpose:
+//=======================================================================
+  void NMTTools_PaveFiller::RealSplitsInFace(const Standard_Integer nF,
+                                             BOPTools_ListOfPaveBlock& aLPBIn)
+{
+  Standard_Integer j, aNbCBP, nSpIn;
+  TColStd_MapOfInteger aMFence; 
+  BOPTools_ListOfPaveBlock aLPB;
+  BOPTools_ListIteratorOfListOfPaveBlock aItPB;
+  NMTTools_ListIteratorOfListOfCommonBlock aItCB;
+  //
+  NMTTools_CommonBlockPool& aCBP=ChangeCommonBlockPool();
+  //
+  aNbCBP=aCBP.Extent();
+  for (j=1; j<=aNbCBP; ++j) {
+    NMTTools_ListOfCommonBlock& aLCB=aCBP(j);
+    aItCB.Initialize(aLCB);
+    for (; aItCB.More(); aItCB.Next()) {
+      NMTTools_CommonBlock& aCB=aItCB.Value();
+      if (aCB.IsPaveBlockOnFace(nF)) {
+       const BOPTools_PaveBlock& aPB1=aCB.PaveBlock1();
+       nSpIn=aPB1.Edge();
+       if (aMFence.Add(nSpIn)){
+         aLPB.Append(aPB1);
+       }
+      }
+    }
+  }
+  //
+  SortPaveBlocks(aLPB);
+  //
+  aItPB.Initialize(aLPB);
+  for (; aItPB.More(); aItPB.Next()) {
+    const BOPTools_PaveBlock& aPB=aItPB.Value();
+    aLPBIn.Append(aPB);
+  }
+}
+//=======================================================================
+// function: SortPaveBlocks
+// purpose:
+//=======================================================================
+void SortPaveBlocks(BOPTools_ListOfPaveBlock &aLPBIn)
+{
+  Standard_Integer i, aNbPBIn;
+  BOPTools_ListIteratorOfListOfPaveBlock aItPB;
+  BOPTools_PaveBlock *pPB;
+  //
+  aNbPBIn=aLPBIn.Extent();
+  if (aNbPBIn<2) {
+    return;
+  }
+  //
+  pPB=new BOPTools_PaveBlock[aNbPBIn];
+  //
+  aItPB.Initialize(aLPBIn);
+  for (i=0; aItPB.More(); aItPB.Next(), ++i) {
+    const BOPTools_PaveBlock& aPB=aItPB.Value();
+    pPB[i]=aPB;
+  }
+  //
+  SortShell(aNbPBIn, pPB);
+  //
+  aLPBIn.Clear();
+  for (i=0; i<aNbPBIn; ++i) {
+    aLPBIn.Append(pPB[i]);
+  }
+  //
+  delete [] (BOPTools_PaveBlock*)pPB;
+}
+//=======================================================================
+//function : SortShell
+//purpose  : 
+//=======================================================================
+void SortShell(const Standard_Integer n, 
+              BOPTools_PaveBlock *a) 
+{
+  Standard_Integer nd, i, j, l, d=1;
+  BOPTools_PaveBlock x;
+  //
+  while(d<=n) {
+    d*=2;
+  }
+  //
+  while (d) {
+    d=(d-1)/2;
+    //
+    nd=n-d;
+    for (i=0; i<nd; ++i) {
+      j=i;
+    m30:;
+      l=j+d;
+      if (Less(a[l], a[j])) {
+      //if (a[l] < a[j]){
+       x=a[j];
+       a[j]=a[l];
+       a[l]=x;
+       j-=d;
+       if (j > -1) goto m30;
+      }//if (a[l] < a[j]){
+    }//for (i=0; i<nd; ++i) 
+  }//while (1)
+}
+
+//=======================================================================
+//function : Less
+//purpose  : 
+//=======================================================================
+Standard_Boolean Less(const BOPTools_PaveBlock &aPB1, 
+                     const BOPTools_PaveBlock &aPB2)
+{
+  Standard_Boolean bRet;
+  Standard_Integer iE1, iE2;
+  Standard_Real aT11, aT12, aT21, aT22;
+  //
+  iE1=aPB1.OriginalEdge();
+  iE2=aPB2.OriginalEdge();
+  if (iE1!=iE2) {
+    bRet=(iE1<iE2);
+    return bRet;
+  }
+  //
+  aPB1.Parameters(aT11, aT12);
+  aPB2.Parameters(aT21, aT22);
+  bRet=(aT11<aT21);
+  return bRet;
+}
+//modified by NIZNHY-PKV Mon Oct 17 11:44:45 2011t
index 90e687430aad1a1c4608a3e0d5d81b1e6159ab7d..94a031339480f83c9aebc39ac758af2194221a2b 100644 (file)
@@ -40,6 +40,7 @@
 #include <Interface_InterfaceModel.hxx>
 #include <XSControl_TransferReader.hxx>
 #include <XSControl_WorkSession.hxx>
+#include <StepShape_TopologicalRepresentationItem.hxx>
 
 #include <Transfer_Binder.hxx>
 #include <TNaming_Builder.hxx>
@@ -175,21 +176,38 @@ extern "C"
         if (!TR.IsNull()) {
           Handle(Transfer_TransientProcess) TP = TR->TransientProcess();
           Handle(Standard_Type) tPD  = STANDARD_TYPE(StepBasic_ProductDefinition);
+          Handle(Standard_Type) tShape  = STANDARD_TYPE(StepShape_TopologicalRepresentationItem);
 
           Standard_Integer nb = Model->NbEntities();
           for (Standard_Integer ie = 1; ie <= nb; ie++) {
             Handle(Standard_Transient) enti = Model->Value(ie);
-            if (enti->DynamicType() != tPD) continue;
-
-            Handle(StepBasic_ProductDefinition) PD =
-              Handle(StepBasic_ProductDefinition)::DownCast(enti);
-            if (PD.IsNull()) continue;
-
-            Handle(StepBasic_Product) Prod = PD->Formation()->OfProduct();
-            if (Prod->Name()->UsefullLength() <= 0) continue;
+            Handle(TCollection_HAsciiString) aName;
+            if ( enti->IsKind( tShape ))
+            {
+              aName = Handle(StepRepr_RepresentationItem)::DownCast(enti)->Name();
+            }
+            else if (enti->DynamicType() == tPD)
+            {
+              Handle(StepBasic_ProductDefinition) PD =
+                Handle(StepBasic_ProductDefinition)::DownCast(enti);
+              if (PD.IsNull()) continue;
 
-            Handle(TCollection_HAsciiString) aName = Prod->Name();
-            TCollection_ExtendedString aNameExt (aName->ToCString());
+              Handle(StepBasic_Product) Prod = PD->Formation()->OfProduct();
+              aName = Prod->Name();
+            }
+            else
+            {
+              continue;
+            }
+            if ( aName->UsefullLength() < 1 )
+              continue;
+            // skip 'N0NE' name
+            if ( aName->UsefullLength() == 4 &&
+                 toupper (aName->Value(1)) == 'N' &&
+                 toupper (aName->Value(2)) == 'O' &&
+                 toupper (aName->Value(3)) == 'N' &&
+                 toupper (aName->Value(4)) == 'E')
+              continue;
 
             // special check to pass names like "Open CASCADE STEP translator 6.3 1"
             TCollection_AsciiString aSkipName ("Open CASCADE STEP translator");
@@ -197,6 +215,7 @@ extern "C"
               if (aName->String().SubString(1, aSkipName.Length()).IsEqual(aSkipName))
                 continue;
             }
+            TCollection_ExtendedString aNameExt (aName->ToCString());
 
             // find target shape
             Handle(Transfer_Binder) binder = TP->Find(enti);
index 5c7cc0b8d24ef5c5870e9a464309ac7f09c65d2e..b81fccd5723fb547f7243a79927eaa35a0a2edef 100644 (file)
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 // File:      ShHealOper_ChangeOrientation.cxx
 // Created:   11.07.06 11:46:45
 // Author:    Sergey KUUL
-//
+
 #include <ShHealOper_ChangeOrientation.hxx>
 
 #include <BRep_Builder.hxx>
+#include <BRepBuilderAPI_Copy.hxx>
+
 #include <TopoDS_Iterator.hxx>
 
 //=======================================================================
@@ -59,7 +60,7 @@ Standard_Boolean ShHealOper_ChangeOrientation::Perform()
   BRep_Builder B;
   if (myInitShape.ShapeType() == TopAbs_SHELL) {
     myResultShape = myInitShape.EmptyCopied();
-    TopoDS_Iterator itr(myInitShape);
+    TopoDS_Iterator itr (myInitShape);
     while (itr.More()) {
       B.Add(myResultShape,itr.Value().Reversed());
       itr.Next();
@@ -67,7 +68,7 @@ Standard_Boolean ShHealOper_ChangeOrientation::Perform()
   }
   else if (myInitShape.ShapeType() == TopAbs_FACE) {
     myResultShape = myInitShape.EmptyCopied();
-    TopoDS_Iterator itr(myInitShape);
+    TopoDS_Iterator itr (myInitShape);
     while (itr.More()) {
       B.Add(myResultShape,itr.Value());
       itr.Next();
@@ -76,7 +77,7 @@ Standard_Boolean ShHealOper_ChangeOrientation::Perform()
   }
   else if ( myInitShape.ShapeType() == TopAbs_WIRE || myInitShape.ShapeType() == TopAbs_EDGE) {
     myResultShape = myInitShape.EmptyCopied();
-    TopoDS_Iterator itr(myInitShape);
+    TopoDS_Iterator itr (myInitShape);
     while (itr.More()) {
       B.Add(myResultShape,itr.Value());
       itr.Next();
@@ -84,9 +85,17 @@ Standard_Boolean ShHealOper_ChangeOrientation::Perform()
     myResultShape.Reverse();
   }
   else {
-    return false;
+    BRepBuilderAPI_Copy Copy (myInitShape);
+    if (!Copy.IsDone()) return false;
+
+    myResultShape = Copy.Shape();
+    if (myResultShape.IsNull()) return false;
+
+    if (myResultShape.Orientation() == TopAbs_FORWARD)
+      myResultShape.Orientation(TopAbs_REVERSED);
+    else
+      myResultShape.Orientation(TopAbs_FORWARD);
   }
 
   return true;
-
 }
index 5e358570662009f91682b114dd96969a6a188b93..2e55b642f64d09d1ef83562883a47c6890b2e594 100644 (file)
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 // File:      ShHealOper_FillHoles.cxx
 // Created:   26.04.04 17:35:30
 // Author:    Galina KULIKOVA
-//
+
+#include <Basics_OCCTVersion.hxx>
+
+#include <ShapeFix_Shell.hxx>
+#include <ShapeFix_Face.hxx>
 #include <ShHealOper_FillHoles.hxx>
-#include <TopExp.hxx>
-#include <TopAbs_ShapeEnum.hxx>
 #include <ShapeAnalysis_FreeBounds.hxx>
-#include <TopoDS_Compound.hxx>
-#include <TopoDS_Iterator.hxx>
-#include <Geom_Curve.hxx>
+
 #include <BRep_Tool.hxx>
-#include <TopExp_Explorer.hxx>
-#include <TopTools_HSequenceOfShape.hxx>
-#include <TopoDS.hxx>
-#include <Geom_BSplineSurface.hxx>
-#include <GeomPlate_BuildPlateSurface.hxx>
-#include <TopoDS_Edge.hxx>
 #include <BRepAdaptor_Curve.hxx>
 #include <BRepAdaptor_HCurve.hxx>
-#include <GeomPlate_CurveConstraint.hxx>
-#include <GeomPlate_Surface.hxx>
-#include <TColgp_SequenceOfXY.hxx>
-#include <TColgp_SequenceOfXYZ.hxx>
 #include <BRep_Builder.hxx>
-#include <ShapeFix_Face.hxx>
-#include <BRep_Tool.hxx>
+#include <BRepFill_CurveConstraint.hxx>
+#include <BRepBuilderAPI_MakeFace.hxx>
+
+#include <TopAbs_ShapeEnum.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopoDS.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS_Shell.hxx>
+#include <TopoDS_Compound.hxx>
+#include <TopoDS_Iterator.hxx>
 #include <TopLoc_Location.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_HSequenceOfShape.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
-#include <TopoDS_Shell.hxx>
-#include <ShapeFix_Shell.hxx>
-#include <GeomPlate_PlateG0Criterion.hxx>
+
+#include <Geom_Curve.hxx>
+#include <Geom_BSplineSurface.hxx>
+#include <GeomPlate_Surface.hxx>
 #include <GeomPlate_MakeApprox.hxx>
-#include <Precision.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <BRepFill_CurveConstraint.hxx>
-#include <BRepBuilderAPI_MakeFace.hxx>
+#include <GeomPlate_CurveConstraint.hxx>
+#include <GeomPlate_PlateG0Criterion.hxx>
+#include <GeomPlate_BuildPlateSurface.hxx>
 
+#include <TColgp_SequenceOfXY.hxx>
+#include <TColgp_SequenceOfXYZ.hxx>
+
+#include <Precision.hxx>
 
 //=======================================================================
 //function : ShHealOper_FillHoles()
@@ -70,33 +74,31 @@ ShHealOper_FillHoles::ShHealOper_FillHoles ()
 
 //=======================================================================
 //function : ShHealOper_FillHoles
-//purpose  : 
+//purpose  :
 //=======================================================================
-
 ShHealOper_FillHoles::ShHealOper_FillHoles (const TopoDS_Shape& theShape)
 {
-  
   Init(theShape);
   InitParameters();
 }
+
 //=======================================================================
 //function : Init
-//purpose  : 
+//purpose  :
 //=======================================================================
-
 void ShHealOper_FillHoles::Init(const TopoDS_Shape& theShape)
 {
   ShHealOper_Tool::Init(theShape);
   TopExp::MapShapesAndAncestors( myInitShape, TopAbs_EDGE,TopAbs_SHELL   , myEdgeShells);
   TopExp::MapShapesAndAncestors ( myInitShape, TopAbs_EDGE,TopAbs_COMPOUND, myEdgeComps );
-  
+
   TopExp::MapShapesAndAncestors ( myInitShape, TopAbs_EDGE,TopAbs_FACE, myEdgeFaces );
 }
+
 //=======================================================================
 //function : InitParameters
-//purpose  : 
+//purpose  :
 //=======================================================================
-
 void ShHealOper_FillHoles::InitParameters(Standard_Integer theDegree,
                                           Standard_Integer theNbPtsOnCur,
                                           Standard_Integer theNbIter,
@@ -119,9 +121,8 @@ void ShHealOper_FillHoles::InitParameters(Standard_Integer theDegree,
 }
 //=======================================================================
 //function : Fill
-//purpose  : 
+//purpose  :
 //=======================================================================
-
 Standard_Boolean ShHealOper_FillHoles::Fill()
 {
   ShapeAnalysis_FreeBounds sab(myInitShape);
@@ -131,17 +132,17 @@ Standard_Boolean ShHealOper_FillHoles::Fill()
   if(!aCompClosed.IsNull()) {
     TopoDS_Iterator aIt(aCompClosed);
 
-    for( ; aIt.More(); aIt.Next()) 
+    for( ; aIt.More(); aIt.Next())
       aFillWires.Append(aIt.Value());
   }
   if(!aCompOpen.IsNull()) {
     TopoDS_Iterator aIt(aCompOpen);
-    for(  ; aIt.More(); aIt.Next()) 
+    for(  ; aIt.More(); aIt.Next())
       aFillWires.Append(aIt.Value());
   }
-  
+
   TopExp_Explorer aExp(myInitShape,TopAbs_EDGE,TopAbs_FACE);
-  
+
   for( ; aExp.More(); aExp.Next())
     aFillWires.Append(aExp.Current());
 
@@ -150,9 +151,8 @@ Standard_Boolean ShHealOper_FillHoles::Fill()
 
 //=======================================================================
 //function : Fill
-//purpose  : 
+//purpose  :
 //=======================================================================
-
 Standard_Boolean ShHealOper_FillHoles::Fill(const TopTools_SequenceOfShape& theFillShapes)
 {
   myDone = Standard_False;
@@ -181,36 +181,36 @@ Standard_Boolean ShHealOper_FillHoles::Fill(const TopTools_SequenceOfShape& theF
     Handle(Geom_Surface) aSurf = buildSurface(aWire,aCurves2d,aOrders,aSenses);
     if(aSurf.IsNull())
       myErrorStatus = ShHealOper_ErrorExecution;
-    else 
+    else
       myDone = (addFace(aSurf,aWire,aCurves2d,aOrders,aSenses) || myDone);
   }
   if(myDone)
     myResultShape = myContext->Apply(myResultShape);
   return myDone;
 }
+
 //=======================================================================
 //function : isCircle
-//purpose  : 
+//purpose  :
 //=======================================================================
 static Standard_Boolean isCircle(const TopoDS_Edge theEdge)
 {
   Standard_Real aFirst, aLast;
   Handle(Geom_Curve) aC3D = BRep_Tool::Curve(theEdge,aFirst, aLast );
   if(aC3D.IsNull()) return Standard_False;
-  Standard_Boolean isCirc = (aC3D->Value(aFirst).Distance(aC3D->Value(aLast)) < 
+  Standard_Boolean isCirc = (aC3D->Value(aFirst).Distance(aC3D->Value(aLast)) <
      aC3D->Value(aFirst).Distance(aC3D->Value((aFirst +aLast)/2)));
   return isCirc;
 }
 //=======================================================================
 //function : prepareWires
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 Standard_Boolean ShHealOper_FillHoles::prepareWires(const TopTools_SequenceOfShape& theFillShapes,
                                                     Handle(TopTools_HSequenceOfShape)& theSeqWires)
 {
   Handle(TopTools_HSequenceOfShape) aSeqEdges = new TopTools_HSequenceOfShape;
-  BRep_Builder aB;
   Standard_Integer i =1;
   for( ; i <= theFillShapes.Length(); i++) {
     TopExp_Explorer aExp;
@@ -231,7 +231,7 @@ Standard_Boolean ShHealOper_FillHoles::prepareWires(const TopTools_SequenceOfSha
         aSeqEdges->Append(aExp.Current());
     }
   }
-  
+
   if(aSeqEdges->Length())
   {
     Standard_Real aTol = 0.;
@@ -241,23 +241,21 @@ Standard_Boolean ShHealOper_FillHoles::prepareWires(const TopTools_SequenceOfSha
     Handle(TopTools_HSequenceOfShape) anWiresClosed = new TopTools_HSequenceOfShape,
     anWiresOpen   = new TopTools_HSequenceOfShape;
     ShapeAnalysis_FreeBounds::SplitWires(aTmpWires, aTol, aShared, anWiresClosed, anWiresOpen);
-    
+
     for (i = 1; i <= anWiresClosed->Length(); i++)
       theSeqWires->Append (anWiresClosed->Value (i));
     for (i = 1; i <= anWiresOpen->Length(); i++)
       theSeqWires->Append (anWiresOpen->Value (i));
   }
-  
 
   for( i =1; i <= theSeqWires->Length(); i++) {
     TopoDS_Wire aWire = TopoDS::Wire(theSeqWires->Value(i));
-    
+
     TopoDS_Iterator aIt(aWire);
     Standard_Integer ne =0;
     TopoDS_Edge ae;
     for( ; aIt.More(); aIt.Next(), ne++)
-      ae = TopoDS::Edge(aIt.Value()); 
+      ae = TopoDS::Edge(aIt.Value());
     if((ne == 1) && ( !isCircle(ae))) {
       theSeqWires->Remove(i--);
       continue;
@@ -267,7 +265,7 @@ Standard_Boolean ShHealOper_FillHoles::prepareWires(const TopTools_SequenceOfSha
 }
 //=======================================================================
 //function : buildSurface
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 Handle(Geom_Surface) ShHealOper_FillHoles::buildSurface(const TopoDS_Wire& theWire,
@@ -277,7 +275,6 @@ Handle(Geom_Surface) ShHealOper_FillHoles::buildSurface(const TopoDS_Wire& theWi
 {
   Handle(Geom_BSplineSurface) aSurf;
   try {
-    
       GeomPlate_BuildPlateSurface aBuilder(myDegree, myNbPtsOnCur, myNbIter,
                                                  myTol2d, myTol3d, myTolAng, myTolCrv);
       TopoDS_Iterator aIter;
@@ -288,7 +285,7 @@ Handle(Geom_Surface) ShHealOper_FillHoles::buildSurface(const TopoDS_Wire& theWi
         Handle(BRepAdaptor_HCurve) aHAD= new BRepAdaptor_HCurve(adC);
         Handle(BRepFill_CurveConstraint) aConst =
             new BRepFill_CurveConstraint (aHAD, (Standard_Integer) GeomAbs_C0, myNbPtsOnCur, myTol3d);
-        //Handle(GeomPlate_CurveConstraint) aConst = 
+        //Handle(GeomPlate_CurveConstraint) aConst =
          // new GeomPlate_CurveConstraint(aHAD, (Standard_Integer) GeomAbs_C0, myNbPtsOnCur, myTol3d);
         aBuilder.Add (aConst);
       }
@@ -308,17 +305,16 @@ Handle(Geom_Surface) ShHealOper_FillHoles::buildSurface(const TopoDS_Wire& theWi
       S3d.Clear();
       aBuilder.Disc2dContour(4,S2d);
       aBuilder.Disc3dContour(4,0,S3d);
-      Standard_Real amaxTol = Max( myTol3d, 10* aDist); 
+      Standard_Real amaxTol = Max( myTol3d, 10* aDist);
       GeomPlate_PlateG0Criterion Criterion( S2d, S3d, amaxTol );
       GeomPlate_MakeApprox Approx( aPlSurf, Criterion, myTol3d, myMaxSeg, myMaxDeg );
       aSurf = Approx.Surface();
       if(aSurf.IsNull())
         return aSurf;
-      
+
       theCurves2d = aBuilder.Curves2d();
       theOrders    = aBuilder.Order();
       theSenses    = aBuilder.Sense();
-      
     }
 
   catch (Standard_Failure) {
@@ -330,7 +326,7 @@ Handle(Geom_Surface) ShHealOper_FillHoles::buildSurface(const TopoDS_Wire& theWi
 
 //=======================================================================
 //function : addFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 Standard_Boolean ShHealOper_FillHoles::addFace(const Handle(Geom_Surface)& theSurf,
@@ -339,10 +335,13 @@ Standard_Boolean ShHealOper_FillHoles::addFace(const Handle(Geom_Surface)& theSu
                                                const Handle(TColStd_HArray1OfInteger)& theOrders,
                                                const Handle(TColStd_HArray1OfInteger)& theSenses)
 {
+#if OCC_VERSION_LARGE > 0x06050100 // for OCC-6.5.2 and higher version
+  BRepBuilderAPI_MakeFace aMakeFace (theSurf, Precision::Confusion());
+#else
   BRepBuilderAPI_MakeFace aMakeFace (theSurf);
+#endif
   TopoDS_Face aFace = aMakeFace.Face();
   aFace.EmptyCopy();
-  
 
   TopoDS_Wire aWire;
   BRep_Builder aB;
@@ -358,9 +357,9 @@ Standard_Boolean ShHealOper_FillHoles::addFace(const Handle(Geom_Surface)& theSu
     BRep_Tool::Range (anEdge, aF, aL);
     TopLoc_Location aLoc;
     aB.UpdateEdge (anEdge, theCurves2d->Value (aInd),aFace, 0.);
-    
+
     aB.Range (anEdge, aFace, aF, aL);
-    
+
     // Set orientation of the edge: orientation should be changed
     // if its orientation does not make sence with curve orientation
     // recommended by GeomPlate
@@ -409,7 +408,7 @@ Standard_Boolean ShHealOper_FillHoles::addFace(const Handle(Geom_Surface)& theSu
 
 //=======================================================================
 //function : getResShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 void ShHealOper_FillHoles::getResShape(const TopoDS_Shape& theAddShape,
@@ -432,7 +431,6 @@ void ShHealOper_FillHoles::getResShape(const TopoDS_Shape& theAddShape,
   aB.MakeShell(aTmpShell);
   TopTools_SequenceOfShape aseqShells;
   if(anhasShell) {
-    
     aB.Add(aTmpShell,theAddShape);
     Standard_Integer i =1;
     for( ; i <= aMapParent.Extent(); i++) {
@@ -452,9 +450,8 @@ void ShHealOper_FillHoles::getResShape(const TopoDS_Shape& theAddShape,
     TopoDS_Shape anshape = asfs->Shape();
     myContext->Replace(aseqShells.Value(1),anshape);
     Standard_Integer i =2;
-    for( ; i<= aseqShells.Length(); i++) 
+    for( ; i<= aseqShells.Length(); i++)
       myContext->Remove(aseqShells.Value(i));
-    
   }
   else {
     TopoDS_Compound aComp;
@@ -465,6 +462,5 @@ void ShHealOper_FillHoles::getResShape(const TopoDS_Shape& theAddShape,
       aB.Add(aComp,aIt.Value());
     aB.Add(aComp,theAddShape);
     myContext->Replace( oldshape,aComp);
-                        
   }
 }