1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-04 13:13:25 +03:00

0025926: 3D offset in mode "Complete" with Join type "Intersection"

Extension for colliding cases (Limited to work on planar cases only).

Test cases for issue CR25926

Update of test-cases according to the new behavior
This commit is contained in:
emv
2015-10-30 16:27:02 +03:00
committed by bugmaster
parent b40693b0c2
commit 9b7f3f83c0
168 changed files with 4641 additions and 2011 deletions

View File

@@ -43,9 +43,11 @@ BRepOffsetAPI_MakeOffsetShape::BRepOffsetAPI_MakeOffsetShape
const BRepOffset_Mode Mode,
const Standard_Boolean Intersection,
const Standard_Boolean SelfInter,
const GeomAbs_JoinType Join)
const GeomAbs_JoinType Join,
const Standard_Boolean RemoveIntEdges)
{
myOffsetShape.Initialize (S,Offset,Tol,Mode,Intersection,SelfInter,Join);
myOffsetShape.Initialize (S,Offset,Tol,Mode,Intersection,SelfInter,
Join, Standard_False, RemoveIntEdges);
Build();
}

View File

@@ -82,6 +82,8 @@ public:
//! - if Join is equal to GeomAbs_Intersection, then the parallels to the
//! two adjacent faces are enlarged and intersected,
//! so that there are no free edges on parallels to faces.
//! RemoveIntEdges flag defines whether to remove the INTERNAL edges
//! from the result or not.
//! Warnings
//! 1. All the faces of the shape S should be based on the surfaces
//! with continuity at least C1.
@@ -100,8 +102,15 @@ public:
//! Exceptions
//! Geom_UndefinedDerivative if the underlying
//! geometry of S is BSpline with continuity C0.
Standard_EXPORT BRepOffsetAPI_MakeOffsetShape(const TopoDS_Shape& S, const Standard_Real Offset, const Standard_Real Tol, const BRepOffset_Mode Mode = BRepOffset_Skin, const Standard_Boolean Intersection = Standard_False, const Standard_Boolean SelfInter = Standard_False, const GeomAbs_JoinType Join = GeomAbs_Arc);
Standard_EXPORT BRepOffsetAPI_MakeOffsetShape(const TopoDS_Shape& S,
const Standard_Real Offset,
const Standard_Real Tol,
const BRepOffset_Mode Mode = BRepOffset_Skin,
const Standard_Boolean Intersection = Standard_False,
const Standard_Boolean SelfInter = Standard_False,
const GeomAbs_JoinType Join = GeomAbs_Arc,
const Standard_Boolean RemoveIntEdges = Standard_False);
Standard_EXPORT virtual const BRepOffset_MakeOffset& MakeOffset() const;
//! Builds the resulting shape (redefined from MakeShape).

View File

@@ -44,9 +44,11 @@ BRepOffsetAPI_MakeThickSolid::BRepOffsetAPI_MakeThickSolid
const BRepOffset_Mode Mode,
const Standard_Boolean Intersection,
const Standard_Boolean SelfInter,
const GeomAbs_JoinType Join)
const GeomAbs_JoinType Join,
const Standard_Boolean RemoveIntEdges)
{
myOffsetShape.Initialize (S,Offset,Tol,Mode,Intersection,SelfInter,Join);
myOffsetShape.Initialize (S,Offset,Tol,Mode,Intersection,SelfInter,
Join, Standard_False, RemoveIntEdges);
TopTools_ListIteratorOfListOfShape it(ClosingFaces);
for (; it.More(); it.Next()) {
myOffsetShape.AddFace(TopoDS::Face(it.Value()));

View File

@@ -88,11 +88,21 @@ public:
//! then the parallels to the two adjacent faces are
//! enlarged and intersected, so that there are no free
//! edges on parallels to faces.
//! RemoveIntEdges flag defines whether to remove the INTERNAL edges
//! from the result or not.
//! Warnings
//! Since the algorithm of MakeThickSolid is based on
//! MakeOffsetShape algorithm, the warnings are the same as for
//! MakeOffsetShape.
Standard_EXPORT BRepOffsetAPI_MakeThickSolid(const TopoDS_Shape& S, const TopTools_ListOfShape& ClosingFaces, const Standard_Real Offset, const Standard_Real Tol, const BRepOffset_Mode Mode = BRepOffset_Skin, const Standard_Boolean Intersection = Standard_False, const Standard_Boolean SelfInter = Standard_False, const GeomAbs_JoinType Join = GeomAbs_Arc);
Standard_EXPORT BRepOffsetAPI_MakeThickSolid(const TopoDS_Shape& S,
const TopTools_ListOfShape& ClosingFaces,
const Standard_Real Offset,
const Standard_Real Tol,
const BRepOffset_Mode Mode = BRepOffset_Skin,
const Standard_Boolean Intersection = Standard_False,
const Standard_Boolean SelfInter = Standard_False,
const GeomAbs_JoinType Join = GeomAbs_Arc,
const Standard_Boolean RemoveIntEdges = Standard_False);
//! Builds the resulting shape (redefined from MakeOffsetShape).
Standard_EXPORT virtual void Build() Standard_OVERRIDE;