mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
744 lines
26 KiB
Diff
744 lines
26 KiB
Diff
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 <StdFail_NotDone.hxx>
|
|
#include <TopoDS_Wire.hxx>
|
|
#include <TopoDS_Shape.hxx>
|
|
+#include <TopTools_ListOfShape.hxx>
|
|
#include <TopoDS_Face.hxx>
|
|
#include <TopoDS_Edge.hxx>
|
|
#include <TopoDS_Vertex.hxx>
|
|
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 <TopoDS_Wire.hxx>
|
|
#include <TopoDS_Shape.hxx>
|
|
#include <BRepFill_Pipe.hxx>
|
|
+#include <TopTools_ListOfShape.hxx>
|
|
#include <BRepOffsetAPI_MakePipe.hxx>
|
|
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 <TopTools_MapOfShape.hxx>
|
|
#include <BRepFill_DataMapOfShapeHArray2OfShape.hxx>
|
|
#include <Standard_Integer.hxx>
|
|
+#include <TopTools_DataMapOfShapeListOfShape.hxx>
|
|
#include <GeomAbs_Shape.hxx>
|
|
#include <GeomFill_Trihedron.hxx>
|
|
#include <Standard_Boolean.hxx>
|
|
@@ -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 <S>.
|
|
+ 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 <S>.
|
|
+
|
|
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 <spine>
|
|
- returns Wire from TopoDS
|
|
+ returns Wire from TopoDS
|
|
raises
|
|
DomainError from Standard
|
|
- ---Purpose: if the <Spine> is undefined
|
|
+ ---Purpose: if the <Spine> 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 <myFirst> and <myLast>
|
|
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 <GeomFill_Trihedron.hxx>
|
|
#include <BRepOffsetAPI_MakePipe.hxx>
|
|
#include <Standard_Atomic.hxx>
|
|
+#include <TopTools_ListIteratorOfListOfShape.hxx>
|
|
|
|
#include <Standard_Version.hxx>
|
|
|
|
@@ -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
|