diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/drv/BRepFill/BRepFill_Pipe.jxx OCCT-6.9.1p1_SRC/drv/BRepFill/BRepFill_Pipe.jxx --- OCCT-6.9.1_SRC/drv/BRepFill/BRepFill_Pipe.jxx 2015-09-25 17:35:58.000000000 +0300 +++ OCCT-6.9.1p1_SRC/drv/BRepFill/BRepFill_Pipe.jxx 2016-04-26 16:10:42.000000000 +0300 @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx OCCT-6.9.1p1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx --- OCCT-6.9.1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx 2015-09-25 17:36:04.000000000 +0300 +++ OCCT-6.9.1p1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx 2016-04-26 16:10:47.000000000 +0300 @@ -1,4 +1,5 @@ #include #include #include +#include #include diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/inc/BRepFill_Pipe.hxx OCCT-6.9.1p1_SRC/inc/BRepFill_Pipe.hxx --- OCCT-6.9.1_SRC/inc/BRepFill_Pipe.hxx 2015-09-25 17:35:58.000000000 +0300 +++ OCCT-6.9.1p1_SRC/inc/BRepFill_Pipe.hxx 2016-04-26 16:10:42.000000000 +0300 @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -28,6 +29,7 @@ class StdFail_NotDone; class TopoDS_Wire; class TopoDS_Shape; +class TopTools_ListOfShape; class TopoDS_Face; class TopoDS_Edge; class TopoDS_Vertex; @@ -65,6 +67,9 @@ Standard_EXPORT const TopoDS_Shape& LastShape() const; + //! Returns the list of shapes generated from the shape . + Standard_EXPORT void Generated (const TopoDS_Shape& S, TopTools_ListOfShape& L) ; + //! Returns the face created from an edge of the spine //! and an edge of the profile. //! if the edges are not in the spine or the profile @@ -131,6 +136,7 @@ Standard_Integer myCurIndexOfSectionEdge; TopoDS_Shape myFirst; TopoDS_Shape myLast; + TopTools_DataMapOfShapeListOfShape myGenMap; Standard_Integer myDegmax; Standard_Integer mySegmax; GeomAbs_Shape myContinuity; diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/inc/BRepOffsetAPI_MakePipe.hxx OCCT-6.9.1p1_SRC/inc/BRepOffsetAPI_MakePipe.hxx --- OCCT-6.9.1_SRC/inc/BRepOffsetAPI_MakePipe.hxx 2015-09-25 17:36:04.000000000 +0300 +++ OCCT-6.9.1p1_SRC/inc/BRepOffsetAPI_MakePipe.hxx 2016-04-26 16:10:47.000000000 +0300 @@ -18,6 +18,7 @@ class TopoDS_Wire; class TopoDS_Shape; class BRepFill_Pipe; +class TopTools_ListOfShape; //! Describes functions to build pipes. @@ -68,6 +69,8 @@ //! Returns the TopoDS Shape of the top of the prism. Standard_EXPORT TopoDS_Shape LastShape() ; + Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& S) ; + Standard_EXPORT TopoDS_Shape Generated (const TopoDS_Shape& SSpine, const TopoDS_Shape& SProfile) ; Standard_EXPORT Standard_Real ErrorOnSurface() const; diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cdl OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cdl --- OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cdl 2015-09-16 18:27:02.000000000 +0300 +++ OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cdl 2016-04-26 15:51:10.000000000 +0300 @@ -15,11 +15,11 @@ -- commercial license or contractual agreement. -class Pipe from BRepFill +class Pipe from BRepFill ---Purpose: Create a shape by sweeping a shape (the profile) -- along a wire (the spine). - -- + -- -- For each edge or vertex from the spine the user -- may ask for the shape generated from each subshape -- of the profile. @@ -28,38 +28,40 @@ HArray2OfShape from TopTools, MapOfShape from TopTools, + ListOfShape from TopTools, DataMapOfShapeHArray2OfShape from BRepFill, + DataMapOfShapeListOfShape from TopTools, LocationLaw from BRepFill, Shape from TopoDS, Face from TopoDS, Wire from TopoDS, Edge from TopoDS, - Vertex from TopoDS, + Vertex from TopoDS, Pnt from gp, Trsf from gp, Shape from GeomAbs, Trihedron from GeomFill raises - DomainError from Standard, + DomainError from Standard, NotDone from StdFail is Create returns Pipe from BRepFill; - - Create ( Spine : Wire from TopoDS; + + Create ( Spine : Wire from TopoDS; Profile : Shape from TopoDS; aMode : Trihedron from GeomFill = GeomFill_IsCorrectedFrenet; ForceApproxC1 : Boolean from Standard = Standard_False; - GeneratePartCase : Boolean from Standard = Standard_False) + GeneratePartCase : Boolean from Standard = Standard_False) returns Pipe from BRepFill; - - Perform (me : in out; Spine : Wire from TopoDS; + + Perform (me : in out; Spine : Wire from TopoDS; Profile : Shape from TopoDS; - GeneratePartCase : Boolean from Standard = Standard_False) + GeneratePartCase : Boolean from Standard = Standard_False) is static; - + Spine(me) returns Shape from TopoDS ---C++ : return const & is static; @@ -74,7 +76,7 @@ ErrorOnSurface (me) returns Real from Standard; - + FirstShape(me) returns Shape from TopoDS ---C++ : return const & is static; @@ -83,27 +85,30 @@ ---C++ : return const & is static; + Generated(me: in out; S: Shape from TopoDS; L: in out ListOfShape from TopTools); + ---Purpose: Returns the list of shapes generated from the shape . + Face(me : in out; ESpine, EProfile : Edge from TopoDS) returns Face from TopoDS ---Purpose: Returns the face created from an edge of the spine -- and an edge of the profile. raises - DomainError from Standard + DomainError from Standard ---Purpose: if the edges are not in the spine or the profile - + is static; - + Edge(me : in out; ESpine : Edge from TopoDS; VProfile : Vertex from TopoDS) returns Edge from TopoDS ---Purpose: Returns the edge created from an edge of the spine -- and a vertex of the profile. raises - DomainError from Standard + DomainError from Standard ---Purpose: if the edge or the vertex are not in the spine or -- the profile. - + is static; - + Section(me; VSpine : Vertex from TopoDS) returns Shape from TopoDS ---Purpose: Returns the shape created from the profile at the @@ -111,50 +116,50 @@ raises DomainError from Standard ---Purpose: if the vertex is not in the Spine - is static; - - - PipeLine(me : in out; Point : Pnt from gp) + is static; + + + PipeLine(me : in out; Point : Pnt from gp) ---Purpose: Create a Wire by sweeping the Point along the - returns Wire from TopoDS + returns Wire from TopoDS raises DomainError from Standard - ---Purpose: if the is undefined + ---Purpose: if the is undefined is static; -- -- Private methods - -- - - MakeShape(me : in out; S : Shape from TopoDS; + -- + + MakeShape(me : in out; S : Shape from TopoDS; FirstShape, LastShape : Shape from TopoDS) returns Shape from TopoDS ---Purpose: Auxiliary recursive method used to build the - -- result. + -- result. is static private; - FindEdge(me; S : Shape from TopoDS; - E : Edge from TopoDS; - Init : in out Integer) + FindEdge(me; S : Shape from TopoDS; + E : Edge from TopoDS; + Init : in out Integer) ---Purpose: Auxiliary recursive method used to find the edge's index returns Integer is static private; - FindVertex(me; S : Shape from TopoDS; - V : Vertex from TopoDS; - Init : in out Integer) + FindVertex(me; S : Shape from TopoDS; + V : Vertex from TopoDS; + Init : in out Integer) returns Integer - is static private; - + is static private; + DefineRealSegmax(me : in out) - is static private; - + is static private; + RebuildTopOrBottomFace(me; aFace: Shape from TopoDS; IsTop: Boolean from Standard) - is static private; - + is static private; + ShareFaces(me: in out; theShape: Shape from TopoDS; theInitialFacesLen: Integer; theInitialEdgesLen: Integer; @@ -164,30 +169,31 @@ -- Returns the shared shape. If theShape is not modified this -- method returns it. returns Shape from TopoDS - is static private; - + is static private; + fields mySpine : Wire from TopoDS; myProfile : Shape from TopoDS; - myShape : Shape from TopoDS; - myTrsf : Trsf from gp; + myShape : Shape from TopoDS; + myTrsf : Trsf from gp; myLoc : LocationLaw from BRepFill; - mySections: HArray2OfShape from TopTools; - myFaces : HArray2OfShape from TopTools; - myEdges : HArray2OfShape from TopTools; - myReversedEdges : MapOfShape from TopTools; + mySections: HArray2OfShape from TopTools; + myFaces : HArray2OfShape from TopTools; + myEdges : HArray2OfShape from TopTools; + myReversedEdges : MapOfShape from TopTools; myTapes : DataMapOfShapeHArray2OfShape from BRepFill; myRails : DataMapOfShapeHArray2OfShape from BRepFill; myCurIndexOfSectionEdge : Integer from Standard; - myFirst : Shape from TopoDS; - myLast : Shape from TopoDS; - + myFirst : Shape from TopoDS; + myLast : Shape from TopoDS; + myGenMap : DataMapOfShapeListOfShape from TopTools; + myDegmax : Integer from Standard; mySegmax : Integer from Standard; myContinuity : Shape from GeomAbs; myMode : Trihedron from GeomFill; myForceApproxC1 : Boolean from Standard; - + myErrorOnSurf : Real from Standard; - + end Pipe; diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cxx OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cxx --- OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cxx 2015-09-16 18:27:02.000000000 +0300 +++ OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cxx 2016-04-26 15:51:10.000000000 +0300 @@ -69,6 +69,38 @@ static Standard_Boolean Affich = 0; #endif +// --------------------------------------------------------------------------------- +// static function: UpdateMap +// purpose: +// --------------------------------------------------------------------------------- +static Standard_Boolean UpdateMap(const TopoDS_Shape& theKey, + const TopoDS_Shape& theValue, + TopTools_DataMapOfShapeListOfShape& theMap) +{ + if(!theMap.IsBound(theKey)) + { + TopTools_ListOfShape thelist; + theMap.Bind(theKey, thelist); + } + TopTools_ListOfShape& aList = theMap.ChangeFind(theKey); + TopTools_ListIteratorOfListOfShape anIt(aList); + Standard_Boolean found = Standard_False; + + for(; anIt.More(); anIt.Next()) + { + if(theValue.IsSame(anIt.Value())) + { + found = Standard_True; + break; + } + } + + if(!found) + aList.Append(theValue); + + return !found; +} + static void ReverseModifiedEdges(TopoDS_Shape& aShape, TopTools_MapOfShape& Emap) { @@ -374,6 +406,47 @@ return myLast; } +//======================================================================= +//function : Generated +//purpose : +//======================================================================= +void BRepFill_Pipe::Generated(const TopoDS_Shape& theShape, + TopTools_ListOfShape& theList) +{ + theList.Clear(); + + if (theShape.IsSame(myProfile)) + theList.Append(myShape); + else + { + if (theShape.ShapeType() == TopAbs_FACE || + theShape.ShapeType() == TopAbs_WIRE) + { + if(myGenMap.IsBound(theShape)) + theList = myGenMap.Find(theShape); + } + else if (theShape.ShapeType() == TopAbs_EDGE) + { + TopoDS_Iterator itw(mySpine); + for (; itw.More(); itw.Next()) + { + const TopoDS_Edge& aSpineEdge = TopoDS::Edge(itw.Value()); + const TopoDS_Shape& aFace = Face(aSpineEdge, TopoDS::Edge(theShape)); + theList.Append(aFace); + } + } + else if (theShape.ShapeType() == TopAbs_VERTEX) + { + TopoDS_Iterator itw(mySpine); + for (; itw.More(); itw.Next()) + { + const TopoDS_Edge& aSpineEdge = TopoDS::Edge(itw.Value()); + const TopoDS_Shape& anEdge = Edge(aSpineEdge, TopoDS::Vertex(theShape)); + theList.Append(anEdge); + } + } + } +} //======================================================================= //function : Face @@ -640,6 +713,7 @@ MkSw.Build( myReversedEdges, myTapes, myRails, BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax ); result = MkSw.Shape(); + UpdateMap(TheS.Located(myProfile.Location()), result, myGenMap); myErrorOnSurf = MkSw.ErrorOnSurface(); Handle(TopTools_HArray2OfShape) aSections = MkSw.Sections(); @@ -662,6 +736,7 @@ MkSw.Build( myReversedEdges, myTapes, myRails, BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax ); result = MkSw.Shape(); + UpdateMap(TheS.Located(myProfile.Location()), result, myGenMap); myErrorOnSurf = MkSw.ErrorOnSurface(); //Correct and ReverseModifiedEdges(myFirst, myReversedEdges); @@ -769,6 +844,7 @@ BS.Add(solid,TopoDS::Shell(aLocalShape)); // BS.Add(solid,TopoDS::Shell(result.Reversed())); } + UpdateMap(TheS.Located(myProfile.Location()), solid, myGenMap); return solid; } else { diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl --- OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl 2015-09-16 18:27:03.000000000 +0300 +++ OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl 2016-04-26 15:51:11.000000000 +0300 @@ -36,8 +36,8 @@ ListOfShape from TopTools is - - + + Create( Spine : Wire from TopoDS; Profile : Shape from TopoDS ) ---Purpose: Constructs a pipe by sweeping the shape Profile along @@ -52,7 +52,7 @@ -- Standard_DomainError if the profile is a solid or a -- composite solid. returns MakePipe from BRepOffsetAPI; - + Create( Spine : Wire from TopoDS; Profile : Shape from TopoDS; aMode : Trihedron from GeomFill; @@ -72,7 +72,7 @@ Build(me : in out) is redefined; ---Purpose: Builds the resulting shape (redefined from MakeShape). - ---Level: Public + ---Level: Public FirstShape (me : in out) @@ -84,6 +84,11 @@ ---Purpose: Returns the TopoDS Shape of the top of the prism. returns Shape from TopoDS; + Generated (me: in out; S: Shape from TopoDS) + returns ListOfShape from TopTools + is redefined; + ---C++: return const & + ---Level: Public Generated (me: in out; SSpine, SProfile : Shape from TopoDS) ---Level: Public @@ -99,4 +104,4 @@ myPipe : Pipe from BRepFill; -end MakePipe; +end MakePipe; diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx --- OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx 2015-09-16 18:27:03.000000000 +0300 +++ OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx 2016-04-26 15:51:11.000000000 +0300 @@ -109,14 +109,23 @@ return myPipe.LastShape(); } +//======================================================================= +//function : Generated +//purpose : standard method +//======================================================================= +const TopTools_ListOfShape& BRepOffsetAPI_MakePipe::Generated(const TopoDS_Shape& S) +{ + myPipe.Generated(S, myGenerated); + return myGenerated; +} //======================================================================= //function : Generated -//purpose : +//purpose : returns generated elementary subshape //======================================================================= -TopoDS_Shape BRepOffsetAPI_MakePipe::Generated (const TopoDS_Shape& SSpine, - const TopoDS_Shape& SProfile) +TopoDS_Shape BRepOffsetAPI_MakePipe::Generated(const TopoDS_Shape& SSpine, + const TopoDS_Shape& SProfile) { if (SProfile.ShapeType () == TopAbs_EDGE) { return myPipe.Face (TopoDS::Edge (SSpine), TopoDS::Edge (SProfile)); diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/QABugs/QABugs_19.cxx OCCT-6.9.1p1_SRC/src/QABugs/QABugs_19.cxx --- OCCT-6.9.1_SRC/src/QABugs/QABugs_19.cxx 2015-09-16 18:27:29.000000000 +0300 +++ OCCT-6.9.1p1_SRC/src/QABugs/QABugs_19.cxx 2016-04-26 15:51:28.000000000 +0300 @@ -53,6 +53,7 @@ #include #include #include +#include #include @@ -4306,6 +4307,95 @@ return 0; } +//======================================================================== +//function : OCC27065 +//purpose : Tests overloaded method "Generated" of BRepOffsetAPI_MakePipe +//======================================================================== +static Standard_Integer OCC27065(Draw_Interpretor& di, + Standard_Integer n, const char** a) +{ + if (n < 3) return 1; + BRep_Builder BB; + + TopoDS_Shape SpineShape = DBRep::Get(a[1],TopAbs_WIRE); + if ( SpineShape.IsNull()) return 1; + TopoDS_Wire Spine = TopoDS::Wire(SpineShape); + + TopoDS_Shape Profile = DBRep::Get(a[2]); + if ( Profile.IsNull()) return 1; + + BRepOffsetAPI_MakePipe aPipeBuilder(Spine, Profile); + if (!aPipeBuilder.IsDone()) + { + di << "Error: failed to create pipe\n"; + return 1; + } + + TopExp_Explorer Explo(Profile, TopAbs_SHELL); + TopoDS_Shape aShape; + TopTools_ListIteratorOfListOfShape itl; + if (Explo.More()) + { + aShape = Explo.Current(); + TopoDS_Compound res1; + BB.MakeCompound(res1); + itl.Initialize(aPipeBuilder.Generated(aShape)); + for (; itl.More(); itl.Next()) + BB.Add(res1, itl.Value()); + DBRep::Set("res_shell", res1); + } + + Explo.Init(Profile, TopAbs_FACE); + if (Explo.More()) + { + aShape = Explo.Current(); + TopoDS_Compound res2; + BB.MakeCompound(res2); + itl.Initialize(aPipeBuilder.Generated(aShape)); + for (; itl.More(); itl.Next()) + BB.Add(res2, itl.Value()); + DBRep::Set("res_face", res2); + } + + Explo.Init(Profile, TopAbs_WIRE); + if (Explo.More()) + { + aShape = Explo.Current(); + TopoDS_Compound res3; + BB.MakeCompound(res3); + itl.Initialize(aPipeBuilder.Generated(aShape)); + for (; itl.More(); itl.Next()) + BB.Add(res3, itl.Value()); + DBRep::Set("res_wire", res3); + } + + Explo.Init(Profile, TopAbs_EDGE); + if (Explo.More()) + { + aShape = Explo.Current(); + TopoDS_Compound res4; + BB.MakeCompound(res4); + itl.Initialize(aPipeBuilder.Generated(aShape)); + for (; itl.More(); itl.Next()) + BB.Add(res4, itl.Value()); + DBRep::Set("res_edge", res4); + } + + Explo.Init(Profile, TopAbs_VERTEX); + if (Explo.More()) + { + aShape = Explo.Current(); + TopoDS_Compound res5; + BB.MakeCompound(res5); + itl.Initialize(aPipeBuilder.Generated(aShape)); + for (; itl.More(); itl.Next()) + BB.Add(res5, itl.Value()); + DBRep::Set("res_vertex", res5); + } + + return 0; +} + void QABugs::Commands_19(Draw_Interpretor& theCommands) { const char *group = "QABugs"; @@ -4397,5 +4487,9 @@ theCommands.Add ("OCC26313", "OCC26313 result shape", __FILE__, OCC26313, group); + theCommands.Add ("OCC27065", + "OCC27065 spine profile", + __FILE__, OCC27065, group); + return; } diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx OCCT-6.9.1p1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx --- OCCT-6.9.1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx 2015-09-16 18:27:36.000000000 +0300 +++ OCCT-6.9.1p1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx 2016-04-26 15:51:32.000000000 +0300 @@ -687,6 +687,7 @@ for(theObject->Init(); theObject->More(); theObject->Next()) { const Handle(SelectMgr_Selection)& aSelection = theObject->CurrentSelection(); + aSelection->UpdateStatus (SelectMgr_TOU_Full); Standard_Integer aSelMode = aSelection->Mode(); for (TColStd_MapIteratorOfMapOfTransient aSelectorIter (mySelectors); aSelectorIter.More(); aSelectorIter.Next()) @@ -697,10 +698,10 @@ ClearSelectionStructures (theObject, aSelMode, aCurSelector); theObject->RecomputePrimitives(aSelMode); RestoreSelectionStructures (theObject, aSelMode, aCurSelector); + aSelection->UpdateStatus (SelectMgr_TOU_None); + aSelection->UpdateBVHStatus (SelectMgr_TBU_None); } } - aSelection->UpdateStatus (SelectMgr_TOU_None); - aSelection->UpdateBVHStatus (SelectMgr_TBU_None); } } diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_1 OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_1 --- OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_1 1970-01-01 03:00:00.000000000 +0300 +++ OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_1 2016-04-26 14:43:27.000000000 +0300 @@ -0,0 +1,24 @@ +puts "============" +puts "OCC27065" +puts "============" +puts "" +############################### +## BRepOffsetAPI_MakePipe misses definition of virtual method Generated() +############################### + +pload QAcommands + +restore [locate_data_file bug24840_comp.brep] sh +explode sh +OCC27065 sh_1 sh_2 +fit + +checknbshapes res_shell -vertex 56 -edge 130 -wire 99 -face 99 -shell 24 -solid 24 -compsolid 1 -compound 1 -shape 434 + +checknbshapes res_face -vertex 8 -edge 12 -wire 6 -face 6 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 35 + +checknbshapes res_wire -vertex 8 -edge 12 -wire 4 -face 4 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 30 + +checknbshapes res_edge -vertex 4 -edge 4 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 11 + +checknbshapes res_vertex -vertex 2 -edge 1 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 4 diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_2 OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_2 --- OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_2 1970-01-01 03:00:00.000000000 +0300 +++ OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_2 2016-04-26 14:43:27.000000000 +0300 @@ -0,0 +1,28 @@ +puts "============" +puts "OCC27065" +puts "============" +puts "" +############################### +## BRepOffsetAPI_MakePipe misses definition of virtual method Generated() +############################### + +pload QAcommands + +restore [locate_data_file bug23903_base.brep] base +restore [locate_data_file bug23903_path.brep] sp +explode base +shape pr Sh +add base_1 pr +add base_2 pr +OCC27065 sp pr +fit + +checknbshapes res_shell -vertex 2 -edge 5 -wire 3 -face 3 -shell 2 -solid 2 -compsolid 1 -compound 1 -shape 19 + +checknbshapes res_face -vertex 2 -edge 4 -wire 2 -face 2 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 13 + +checknbshapes res_wire -vertex 2 -edge 4 -wire 2 -face 2 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 12 + +checknbshapes res_edge -vertex 2 -edge 3 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 8 + +checknbshapes res_vertex -vertex 1 -edge 1 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 3 diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/vis/bug26870 OCCT-6.9.1p1_SRC/tests/bugs/vis/bug26870 --- OCCT-6.9.1_SRC/tests/bugs/vis/bug26870 1970-01-01 03:00:00.000000000 +0300 +++ OCCT-6.9.1p1_SRC/tests/bugs/vis/bug26870 2016-04-26 15:52:06.000000000 +0300 @@ -0,0 +1,37 @@ +puts "============" +puts "CR26870" +puts "============" +puts "" + +########################################################################################## +puts "Visualization - deactivated selections are not updated after object's re-computation" +########################################################################################## + +pload VISUALIZATION MODELING + +vinit +box b 1 1 1 +vdisplay b +vfit + +vselmode b 2 1 +vselmode b 4 1 +vselmode b 4 0 + +box b 3 3 3 +vdisplay b +vfit + +vselmode 4 1 + +# pick a point onto previously computed face +vmoveto 80 265 +if {[vreadpixel 90 206 name] == "CYAN1 1"} { + puts "ERROR: previously computed entities are highlighted! Selection mode 4 was not updated after redisplaying the box." +} +# pick a point onto box +if {[vreadpixel 29 216 name] == "YELLOW 1"} { + puts "ERROR: the box's face is not highlighted! Selection mode 4 was not updated after redisplaying the box." +} + +set only_screen 1