From: vsr Date: Mon, 14 Jul 2008 05:11:31 +0000 (+0000) Subject: Merge from BR_Dev_For_4_0 branch (from mergeto_BR_QT4_Dev_07Jul08 tag) X-Git-Tag: V5_1_0a1~41 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=3df284e94aaab4ee815bece7844ec3b11e7df458;p=modules%2Fgeom.git Merge from BR_Dev_For_4_0 branch (from mergeto_BR_QT4_Dev_07Jul08 tag) --- diff --git a/doc/salome/gui/GEOM/doxyfile_py.in b/doc/salome/gui/GEOM/doxyfile_py.in index 41a0b2fc4..88df45eb8 100755 --- a/doc/salome/gui/GEOM/doxyfile_py.in +++ b/doc/salome/gui/GEOM/doxyfile_py.in @@ -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 = diff --git a/doc/salome/gui/GEOM/input/creating_filling.doc b/doc/salome/gui/GEOM/input/creating_filling.doc index 82d446f2c..4600408d5 100644 --- a/doc/salome/gui/GEOM/input/creating_filling.doc +++ b/doc/salome/gui/GEOM/input/creating_filling.doc @@ -12,9 +12,7 @@ and Approximation. \n TUI Command: geompy.MakeFilling(Edges, MinDegree, MaxDegree, Tol2D, Tol3D, NbIter, isApprox) -\n Arguments: Name + 1 List of edges + 6 Parameters -(Min. degree, Max. degree, Number of iterations, 2D tolerance, 3D -tolerance, Number of iterations, Approximation). +\n Arguments: 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 diff --git a/doc/salome/gui/Makefile.am b/doc/salome/gui/Makefile.am index 2ab31da21..dec4ee81c 100644 --- a/doc/salome/gui/Makefile.am +++ b/doc/salome/gui/Makefile.am @@ -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 diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index de4600e27..4c30ee600 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -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, diff --git a/src/BooleanGUI/BooleanGUI_Dialog.cxx b/src/BooleanGUI/BooleanGUI_Dialog.cxx index 216809e30..d5b5d1832 100644 --- a/src/BooleanGUI/BooleanGUI_Dialog.cxx +++ b/src/BooleanGUI/BooleanGUI_Dialog.cxx @@ -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 ); } diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx index 6f9f6a0b4..329303c10 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx @@ -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); diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx index ebc34e718..8647d47bf 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx @@ -605,7 +605,7 @@ 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); diff --git a/src/GEOMImpl/GEOMImpl_ILocalOperations.cxx b/src/GEOMImpl/GEOMImpl_ILocalOperations.cxx index 14ef16443..77152afd7 100644 --- a/src/GEOMImpl/GEOMImpl_ILocalOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_ILocalOperations.cxx @@ -135,7 +135,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletAll */ //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges - (Handle(GEOM_Object) theShape, double theR, list theEdges) + (Handle(GEOM_Object) theShape, double theR, std::list theEdges) { SetErrorCode(KO); @@ -161,7 +161,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges aCI.SetLength(aLen); int ind = 1; - list::iterator it = theEdges.begin(); + std::list::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 theEdges) + (Handle(GEOM_Object) theShape, double theR1, double theR2, std::list theEdges) { SetErrorCode(KO); @@ -231,7 +231,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdgesR1R2 aCI.SetLength(aLen); int ind = 1; - list::iterator it = theEdges.begin(); + std::list::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 theFaces) + (Handle(GEOM_Object) theShape, double theR, std::list theFaces) { SetErrorCode(KO); @@ -301,7 +301,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFaces aCI.SetLength(aLen); int ind = 1; - list::iterator it = theFaces.begin(); + std::list::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 theFaces) + (Handle(GEOM_Object) theShape, double theR1, double theR2, std::list theFaces) { SetErrorCode(KO); @@ -371,7 +371,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFacesR1R2 aCI.SetLength(aLen); int ind = 1; - list::iterator it = theFaces.begin(); + std::list::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 theFaces) + std::list theFaces) { SetErrorCode(KO); @@ -609,7 +609,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFaces aCI.SetLength(aLen); int ind = 1; - list::iterator it = theFaces.begin(); + std::list::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 theFaces) + std::list theFaces) { SetErrorCode(KO); @@ -680,7 +680,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFacesAD aCI.SetLength(aLen); int ind = 1; - list::iterator it = theFaces.begin(); + std::list::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 theEdges) + std::list theEdges) { SetErrorCode(KO); @@ -752,7 +752,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges aCI.SetLength(aLen); int ind = 1; - list::iterator it = theEdges.begin(); + std::list::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 theEdges) + std::list theEdges) { SetErrorCode(KO); @@ -824,7 +824,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgesAD aCI.SetLength(aLen); int ind = 1; - list::iterator it = theEdges.begin(); + std::list::iterator it = theEdges.begin(); for (; it != theEdges.end(); it++, ind++) { aCI.SetEdge(ind, (*it)); } diff --git a/src/GEOM_I_Superv/GEOM_Superv_i.cc b/src/GEOM_I_Superv/GEOM_Superv_i.cc index 520fbc2fe..387c3b0d4 100644 --- a/src/GEOM_I_Superv/GEOM_Superv_i.cc +++ b/src/GEOM_I_Superv/GEOM_Superv_i.cc @@ -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); } diff --git a/src/GEOM_SWIG/GEOM_TestAll.py b/src/GEOM_SWIG/GEOM_TestAll.py index 67188c761..4c2d3675a 100644 --- a/src/GEOM_SWIG/GEOM_TestAll.py +++ b/src/GEOM_SWIG/GEOM_TestAll.py @@ -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") diff --git a/src/GEOM_SWIG/geompyDC.py b/src/GEOM_SWIG/geompyDC.py index 2f37c4e86..5853af966 100644 --- a/src/GEOM_SWIG/geompyDC.py +++ b/src/GEOM_SWIG/geompyDC.py @@ -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.