]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Merge from BR_Dev_For_4_0 branch (from mergeto_BR_QT4_Dev_07Jul08 tag)
authorvsr <vsr@opencascade.com>
Mon, 14 Jul 2008 05:11:31 +0000 (05:11 +0000)
committervsr <vsr@opencascade.com>
Mon, 14 Jul 2008 05:11:31 +0000 (05:11 +0000)
doc/salome/gui/GEOM/doxyfile_py.in
doc/salome/gui/GEOM/input/creating_filling.doc
doc/salome/gui/Makefile.am
idl/GEOM_Gen.idl
src/BooleanGUI/BooleanGUI_Dialog.cxx
src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx
src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx
src/GEOMImpl/GEOMImpl_ILocalOperations.cxx
src/GEOM_I_Superv/GEOM_Superv_i.cc
src/GEOM_SWIG/GEOM_TestAll.py
src/GEOM_SWIG/geompyDC.py

index 41a0b2fc4d477552e51b4b2276b22e2e32d61e5b..88df45eb83304907dfe4bfc1368361e83dc51fbc 100755 (executable)
@@ -107,19 +107,26 @@ GENERATE_RTF      = NO
 #---------------------------------------------------------------------------
 # Configuration options related to the dot tool   
 #---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
+#CLASS_DIAGRAMS         = YES
+CLASS_DIAGRAMS         = NO
 HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
+#HAVE_DOT               = YES
+HAVE_DOT               = NO
+#CLASS_GRAPH            = YES
+CLASS_GRAPH            = NO
 COLLABORATION_GRAPH    = NO
 GROUP_GRAPHS           = NO
 UML_LOOK               = NO
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
+#TEMPLATE_RELATIONS     = YES
+#INCLUDE_GRAPH          = YES
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = NO
 INCLUDED_BY_GRAPH      = NO
 CALL_GRAPH             = NO
-GRAPHICAL_HIERARCHY    = YES
-DIRECTORY_GRAPH        = YES
+#GRAPHICAL_HIERARCHY    = YES
+#DIRECTORY_GRAPH        = YES
+GRAPHICAL_HIERARCHY    = NO
+DIRECTORY_GRAPH        = NO
 DOT_IMAGE_FORMAT       = jpg
 DOT_PATH               = 
 DOTFILE_DIRS           = 
index 82d446f2c31c8812b6cc41190c4b47280dca4939..4600408d5152791f42c59c8b3d9558b372b2158c 100644 (file)
@@ -12,9 +12,7 @@ and <b>Approximation</b>.
 
 \n <b>TUI Command:</b> <em>geompy.MakeFilling(Edges, MinDegree,
 MaxDegree, Tol2D, Tol3D, NbIter, isApprox)</em>
-\n <b>Arguments:</b> Name + 1 List of edges + 6 Parameters
-(Min. degree, Max. degree, Number of iterations, 2D tolerance, 3D
-tolerance, Number of iterations, Approximation).
+\n <b>Arguments:</b> Name + 1 Compound of edges + 2 Values (min. and max degree of result BSpline surface) + 2 Values (2D and 3D precision to reach) + 1 Value (number of iterations of approximaion algorithm) + 1 Flag (to select one of algorithms).
 
 \image html filling.png
 
index 2ab31da21b2a7756a55400fc4d38515abbc2051e..dec4ee81c99949fc9a2a95461387d086eab9d8c2 100644 (file)
@@ -27,10 +27,25 @@ EXTRA_DIST+=GEOM
 
 doxygen=@DOXYGEN@
 
+# Below command replaces "geompyDC" by "geompy" except cases
+# "sgeompyDC", "1geompyDC" and "egeompyDC" (these sequences
+# can be found in file names and must not be replaces):
+#
+# sed 's/\([^s1e]\)geompyDC\|^geompyDC/\1geompy/g' $${filen} > ./tmp;
+#
 usr_docs:
        cd ./GEOM; \
        echo "Processing geompyDC.py file: "; \
        $(doxygen) ./doxyfile_py; \
+       cd ./geompy_doc; \
+       filesl=`find .`; \
+       for filen in $${filesl}; do \
+         sed 's/\([^s1e]\)geompyDC\|^geompyDC/\1geompy/g' $${filen} > ./tmp1; \
+         sed 's/geompy\.geompy/geompy/g' ./tmp1 > ./tmp; \
+         rm -f tmp1; \
+         mv -f tmp $${filen}; \
+       done; \
+       cd ..; \
        echo "Running doxygen in directory: "`pwd`; \
        $(doxygen) ./doxyfile;
 
@@ -53,4 +68,4 @@ docguidir=$(docdir)/gui/GEOM
 nodist_docgui_DATA= GEOM/doxyfile
 nodist_docgui_DATA+= GEOM/doxyfile_py
 EXTRA_DIST+= GEOM/doxyfile.in
-EXTRA_DIST+= GEOM/doxyfile_py.in
\ No newline at end of file
+EXTRA_DIST+= GEOM/doxyfile_py.in
index de4600e277da9ea6ae230fbd74fa6e7802544ebc..4c30ee6005e62474bb20db50b949b08992aa85d0 100644 (file)
@@ -892,11 +892,11 @@ module GEOM
 
     /*!
      *  Create a filling from the given compound of contours.
-     *  \param theMinDeg a minimal degree
-     *  \param theMaxDeg a maximal degree
-     *  \param theTol2D a 2d tolerance
-     *  \param theTol3D a 3d tolerance
-     *  \param theNbIter a number of iteration
+     *  \param theMinDeg a minimal degree of BSpline surface to create
+     *  \param theMaxDeg a maximal degree of BSpline surface to create
+     *  \param theTol2D a 2d tolerance to be reached
+     *  \param theTol3D a 3d tolerance to be reached
+     *  \param theNbIter a number of iteration of approximation algorithm
      *  \return New GEOM_Object, containing the created filling surface.
      */
     GEOM_Object MakeFilling (in GEOM_Object theShape,
index 216809e30b7f84952625840827bce854f15060be..d5b5d1832c1e31aa20ec495420869e6cce8a4af9 100644 (file)
@@ -275,6 +275,12 @@ GEOM::GEOM_IOperations_ptr BooleanGUI_Dialog::createOperation()
 //=================================================================================
 bool BooleanGUI_Dialog::isValid( QString& msg )
 {
+  Handle(SALOME_InteractiveObject) IO = firstIObject();
+  Standard_Boolean testResult;
+  GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult );
+  if ( !testResult || anObject->_is_nil() )
+    return false;
+
   return !CORBA::is_nil( myObject1 ) && !CORBA::is_nil( myObject2 );
 }
 
index 6f9f6a0b45277d8fb301c663d30d7db19a375557..329303c107717ff2e99418da5ce4ec5adb7ff367 100644 (file)
@@ -545,7 +545,7 @@ void GEOMAlgo_FinderShapeOn1::InnerPoints(const TopoDS_Face& aF,
   aTRF=BRep_Tool::Triangulation(aF, aLoc);
   if (aTRF.IsNull()) {
     if (!GEOMAlgo_FinderShapeOn::BuildTriangulation(aF)) {
-      myErrorStatus=20; // no triangulation found
+      myWarningStatus=20; // no triangulation found
       return;
     }
     aTRF=BRep_Tool::Triangulation(aF, aLoc);
index ebc34e718699979dff1a592ba4c0fc66760ad69b..8647d47bf52bdc75ee0ff4500c3cb9f74ea1eebc 100644 (file)
   aTRF=BRep_Tool::Triangulation(aF, aLoc);
   if (aTRF.IsNull()) {
     if (!GEOMAlgo_FinderShapeOn::BuildTriangulation(aF)) {
-      myErrorStatus=20; // no triangulation found
+      myWarningStatus=20; // no triangulation found
       return;
     }
     aTRF=BRep_Tool::Triangulation(aF, aLoc);
index 14ef164437d948b829f35c4b8fe9c73c75e7da4d..77152afd7c63239b09a8bbdacc10a2961731de75 100644 (file)
@@ -135,7 +135,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletAll
  */
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges
-       (Handle(GEOM_Object) theShape, double theR, list<int> theEdges)
+       (Handle(GEOM_Object) theShape, double theR, std::list<int> theEdges)
 {
   SetErrorCode(KO);
 
@@ -161,7 +161,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges
   aCI.SetLength(aLen);
 
   int ind = 1;
-  list<int>::iterator it = theEdges.begin();
+  std::list<int>::iterator it = theEdges.begin();
   for (; it != theEdges.end(); it++, ind++) {
     aCI.SetEdge(ind, (*it));
   }
@@ -204,7 +204,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges
  */
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdgesR1R2
-       (Handle(GEOM_Object) theShape, double theR1, double theR2, list<int> theEdges)
+       (Handle(GEOM_Object) theShape, double theR1, double theR2, std::list<int> theEdges)
 {
   SetErrorCode(KO);
 
@@ -231,7 +231,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdgesR1R2
   aCI.SetLength(aLen);
 
   int ind = 1;
-  list<int>::iterator it = theEdges.begin();
+  std::list<int>::iterator it = theEdges.begin();
   for (; it != theEdges.end(); it++, ind++) {
     aCI.SetEdge(ind, (*it));
   }
@@ -275,7 +275,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdgesR1R2
  */
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFaces
-       (Handle(GEOM_Object) theShape, double theR, list<int> theFaces)
+       (Handle(GEOM_Object) theShape, double theR, std::list<int> theFaces)
 {
   SetErrorCode(KO);
 
@@ -301,7 +301,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFaces
   aCI.SetLength(aLen);
 
   int ind = 1;
-  list<int>::iterator it = theFaces.begin();
+  std::list<int>::iterator it = theFaces.begin();
   for (; it != theFaces.end(); it++, ind++) {
     aCI.SetFace(ind, (*it));
   }
@@ -344,7 +344,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFaces
  */
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFacesR1R2
-       (Handle(GEOM_Object) theShape, double theR1, double theR2, list<int> theFaces)
+       (Handle(GEOM_Object) theShape, double theR1, double theR2, std::list<int> theFaces)
 {
   SetErrorCode(KO);
 
@@ -371,7 +371,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFacesR1R2
   aCI.SetLength(aLen);
 
   int ind = 1;
-  list<int>::iterator it = theFaces.begin();
+  std::list<int>::iterator it = theFaces.begin();
   for (; it != theFaces.end(); it++, ind++) {
     aCI.SetFace(ind, (*it));
   }
@@ -582,7 +582,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgeAD
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFaces
                             (Handle(GEOM_Object) theShape, double theD1, double theD2,
-                             list<int> theFaces)
+                             std::list<int> theFaces)
 {
   SetErrorCode(KO);
 
@@ -609,7 +609,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFaces
   aCI.SetLength(aLen);
 
   int ind = 1;
-  list<int>::iterator it = theFaces.begin();
+  std::list<int>::iterator it = theFaces.begin();
   for (; it != theFaces.end(); it++, ind++) {
     aCI.SetFace(ind, (*it));
   }
@@ -653,7 +653,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFaces
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFacesAD
                             (Handle(GEOM_Object) theShape, double theD, double theAngle,
-                             list<int> theFaces)
+                             std::list<int> theFaces)
 {
   SetErrorCode(KO);
 
@@ -680,7 +680,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFacesAD
   aCI.SetLength(aLen);
 
   int ind = 1;
-  list<int>::iterator it = theFaces.begin();
+  std::list<int>::iterator it = theFaces.begin();
   for (; it != theFaces.end(); it++, ind++) {
     aCI.SetFace(ind, (*it));
   }
@@ -724,7 +724,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFacesAD
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges
                             (Handle(GEOM_Object) theShape, double theD1, double theD2,
-                             list<int> theEdges)
+                             std::list<int> theEdges)
 {
   SetErrorCode(KO);
 
@@ -752,7 +752,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges
   aCI.SetLength(aLen);
 
   int ind = 1;
-  list<int>::iterator it = theEdges.begin();
+  std::list<int>::iterator it = theEdges.begin();
   for (; it != theEdges.end(); it++, ind++) {
     aCI.SetEdge(ind, (*it));
   }
@@ -796,7 +796,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgesAD
                             (Handle(GEOM_Object) theShape, double theD, double theAngle,
-                             list<int> theEdges)
+                             std::list<int> theEdges)
 {
   SetErrorCode(KO);
 
@@ -824,7 +824,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgesAD
   aCI.SetLength(aLen);
 
   int ind = 1;
-  list<int>::iterator it = theEdges.begin();
+  std::list<int>::iterator it = theEdges.begin();
   for (; it != theEdges.end(); it++, ind++) {
     aCI.SetEdge(ind, (*it));
   }
index 520fbc2fe4bde0ec244836d3f5ab3e89d613d5fc..387c3b0d4b867c4058c2fa9a797faa39f91152da 100644 (file)
@@ -96,15 +96,15 @@ void GEOM_Superv_i::setGeomEngine()
 {
   if ( !CORBA::is_nil(myGeomEngine) ) 
     return;
-  // get GEOM_Gen engine
-  /*
-  SALOME_LifeCycleCORBA* lcc = new SALOME_LifeCycleCORBA( name_service );
-  Engines::Component_var comp = lcc->FindOrLoad_Component( "FactoryServer", "GEOM" );
-  */
 
+  // get GEOM_Gen engine
   Engines::Container_var cont=GetContainerRef();
-  cont->load_component_Library("GEOM");
-  Engines::Component_var comp=cont->create_component_instance("GEOM",0);
+  CORBA::String_var container_name=cont->name();
+  std::string shortName=container_name.in();
+  shortName=shortName.substr(12); // substract "/Containers/"
+  SALOME_LifeCycleCORBA* lcc = new SALOME_LifeCycleCORBA( name_service );
+  Engines::Component_var comp = lcc->FindOrLoad_Component( shortName.c_str(), "GEOM" );
+  delete lcc;
 
   myGeomEngine = GEOM::GEOM_Gen::_narrow(comp);
 }
index 67188c761ae3bd37df5ec70d0ec93497943e5449..4c2d3675aa55891043393d4f62a7f57c5b76746c 100644 (file)
@@ -160,7 +160,9 @@ def TestAll (geompy, math):
   #Create advanced objects
   Copy       = geompy.MakeCopy(Box)                      #(GEOM_Object_ptr)->GEOM_Object_ptr
   Prism      = geompy.MakePrismVecH(Face, vz, 100.0)     #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
+  Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
   Revolution = geompy.MakeRevolution(Face, vz, angle2)   #
+  Revolution2Ways = geompy.MakeRevolution(Face, vz, angle1)   #
   Filling    = geompy.MakeFilling(Compound, mindeg, maxdeg,
                                   tol2d, tol3d, nbiter)  #(GEOM_Object_ptr, 4 Doubles, Short)->GEOM_Object_ptr
   Pipe       = geompy.MakePipe(Wire, Edge)               #(2 GEOM_Object_ptr)->GEOM_Object_ptr
@@ -304,7 +306,9 @@ def TestAll (geompy, math):
 
   id_Copy       = geompy.addToStudy(Copy,       "Copy")
   id_Prism      = geompy.addToStudy(Prism,      "Prism")
+  id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways")
   id_Revolution = geompy.addToStudy(Revolution, "Revolution")
+  id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways")
   id_Filling    = geompy.addToStudy(Filling,    "Filling")
   id_Pipe       = geompy.addToStudy(Pipe,       "Pipe")
   id_Sewing     = geompy.addToStudy(Sewing,     "Sewing")
index 2f37c4e86c241faa2bde0a99054000c992adbefb..5853af96666764107117bf8f5701a78a189606c0 100644 (file)
@@ -666,6 +666,20 @@ class geompyDC(GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH)
             RaiseIfFailed("MakePrismVecH", self.PrimOp)
             return anObj
+
+        ## Create a shape by extrusion of the base shape along the vector,
+        #  i.e. all the space, transfixed by the base shape during its translation
+        #  along the vector on the given distance in 2 Ways (forward/backward) .
+        #  @param theBase Base shape to be extruded.
+        #  @param theVec Direction of extrusion.
+        #  @param theH Prism dimension along theVec in forward direction.
+        #  @return New GEOM_Object, containing the created prism.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakePrismVecH2Ways(self, theBase, theVec, theH):
+            anObj = self.PrimOp.MakePrismVecH2Ways(theBase, theVec, theH)
+            RaiseIfFailed("MakePrismVecH2Ways", self.PrimOp)
+            return anObj
         
         ## Create a shape by extrusion of the base shape along
         #  the path shape. The path shape can be a wire or an edge.
@@ -692,6 +706,11 @@ class geompyDC(GEOM._objref_GEOM_Gen):
             anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle)
             RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp)
             return anObj
+        ## The Same Revolution but in both ways forward&backward.
+        def MakeRevolution2Ways(self, theBase, theAxis, theAngle):
+            anObj = self.PrimOp.MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle)
+            RaiseIfFailed("MakeRevolutionAxisAngle2Ways", self.PrimOp)
+            return anObj
         
         ## Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
         #  @param theSeqSections - set of specified sections.
@@ -1371,11 +1390,11 @@ class geompyDC(GEOM._objref_GEOM_Gen):
         
         ## Create a filling from the given compound of contours.
         #  @param theShape the compound of contours
-        #  @param theMinDeg a minimal degree
-        #  @param theMaxDeg a maximal degree
-        #  @param theTol2D a 2d tolerance
-        #  @param theTol3D a 3d tolerance
-        #  @param theNbIter a number of iteration
+        #  @param theMinDeg a minimal degree of BSpline surface to create
+        #  @param theMaxDeg a maximal degree of BSpline surface to create
+        #  @param theTol2D a 2d tolerance to be reached
+        #  @param theTol3D a 3d tolerance to be reached
+        #  @param theNbIter a number of iteration of approximation algorithm
         #  @return New GEOM_Object, containing the created filling surface.
         #
         #  Example: see GEOM_TestAll.py
@@ -1595,7 +1614,7 @@ class geompyDC(GEOM._objref_GEOM_Gen):
             anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
             RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
             return anObj
-        
+
         ## Rotate the given object around the given axis
         #  on the given angle, creating its copy before the rotatation.
         #  @param theObject The object to be rotated.