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:
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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).
|
||||
|
@@ -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()));
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user