mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +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:
File diff suppressed because it is too large
Load Diff
@@ -41,31 +41,27 @@ public:
|
||||
//! Computes the intersections between the edges stored
|
||||
//! is AsDes as descendants of <F> . Intersections is computed
|
||||
//! between two edges if one of them is bound in NewEdges.
|
||||
Standard_EXPORT static void Compute (const Handle(BRepAlgo_AsDes)& AsDes, const TopoDS_Face& F, const TopTools_IndexedMapOfShape& NewEdges, const Standard_Real Tol);
|
||||
Standard_EXPORT static void Compute (const Handle(BRepAlgo_AsDes)& AsDes,
|
||||
const TopoDS_Face& F,
|
||||
const TopTools_IndexedMapOfShape& NewEdges,
|
||||
const Standard_Real Tol);
|
||||
|
||||
Standard_EXPORT static void ConnexIntByInt (const TopoDS_Face& FI, BRepOffset_Offset& OFI, TopTools_DataMapOfShapeShape& MES, const TopTools_DataMapOfShapeShape& Build, const Handle(BRepAlgo_AsDes)& AsDes, const Standard_Real Offset, const Standard_Real Tol);
|
||||
Standard_EXPORT static void ConnexIntByInt (const TopoDS_Face& FI,
|
||||
BRepOffset_Offset& OFI,
|
||||
TopTools_DataMapOfShapeShape& MES,
|
||||
const TopTools_DataMapOfShapeShape& Build,
|
||||
const Handle(BRepAlgo_AsDes)& AsDes,
|
||||
const Handle(BRepAlgo_AsDes)& AsDes2d,
|
||||
const Standard_Real Offset,
|
||||
const Standard_Real Tol);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepOffset_Inter2d_HeaderFile
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -53,9 +53,9 @@ public:
|
||||
|
||||
Standard_EXPORT void ConnexIntByArc (const TopTools_ListOfShape& SetOfFaces, const TopoDS_Shape& ShapeInit, const BRepOffset_Analyse& Analyse, const BRepAlgo_Image& InitOffsetFace);
|
||||
|
||||
Standard_EXPORT void ConnexIntByInt (const TopoDS_Shape& SI, const BRepOffset_DataMapOfShapeOffset& MapSF, const BRepOffset_Analyse& A, TopTools_DataMapOfShapeShape& MES, TopTools_DataMapOfShapeShape& Build, TopTools_ListOfShape& Failed);
|
||||
Standard_EXPORT void ConnexIntByInt (const TopoDS_Shape& SI, const BRepOffset_DataMapOfShapeOffset& MapSF, const BRepOffset_Analyse& A, TopTools_DataMapOfShapeShape& MES, TopTools_DataMapOfShapeShape& Build, TopTools_ListOfShape& Failed, const Standard_Boolean bIsPlanar = Standard_False);
|
||||
|
||||
Standard_EXPORT void ContextIntByInt (const TopTools_IndexedMapOfShape& ContextFaces, const Standard_Boolean ExtentContext, const BRepOffset_DataMapOfShapeOffset& MapSF, const BRepOffset_Analyse& A, TopTools_DataMapOfShapeShape& MES, TopTools_DataMapOfShapeShape& Build, TopTools_ListOfShape& Failed);
|
||||
Standard_EXPORT void ContextIntByInt (const TopTools_IndexedMapOfShape& ContextFaces, const Standard_Boolean ExtentContext, const BRepOffset_DataMapOfShapeOffset& MapSF, const BRepOffset_Analyse& A, TopTools_DataMapOfShapeShape& MES, TopTools_DataMapOfShapeShape& Build, TopTools_ListOfShape& Failed, const Standard_Boolean bIsPlanar = Standard_False);
|
||||
|
||||
Standard_EXPORT void ContextIntByArc (const TopTools_IndexedMapOfShape& ContextFaces, const Standard_Boolean ExtentContext, const BRepOffset_Analyse& Analyse, const BRepAlgo_Image& InitOffsetFace, BRepAlgo_Image& InitOffsetEdge);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -53,9 +53,27 @@ public:
|
||||
|
||||
Standard_EXPORT BRepOffset_MakeOffset();
|
||||
|
||||
Standard_EXPORT BRepOffset_MakeOffset(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 Thickening = Standard_False);
|
||||
Standard_EXPORT BRepOffset_MakeOffset(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 Thickening = Standard_False,
|
||||
const Standard_Boolean RemoveIntEdges = Standard_False,
|
||||
const Standard_Boolean RemoveInvalidFaces = Standard_False);
|
||||
|
||||
Standard_EXPORT void Initialize (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 Thickening = Standard_False);
|
||||
Standard_EXPORT void Initialize (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 Thickening = Standard_False,
|
||||
const Standard_Boolean RemoveIntEdges = Standard_False,
|
||||
const Standard_Boolean RemoveInvalidFaces = Standard_False);
|
||||
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
@@ -106,20 +124,24 @@ public:
|
||||
Standard_EXPORT const TopoDS_Shape& GetBadShape() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void BuildOffsetByArc();
|
||||
|
||||
Standard_EXPORT void BuildOffsetByInter();
|
||||
|
||||
//! Building splits of the offset faces by the section curves
|
||||
//! between the neighboring faces.
|
||||
Standard_EXPORT void BuildSplitsOfFaces(const TopTools_ListOfShape& theLF,
|
||||
const Handle(BRepAlgo_AsDes)& theAsDes,
|
||||
TopTools_IndexedDataMapOfShapeListOfShape& theOrigins,
|
||||
BRepAlgo_Image& theImage,
|
||||
TopTools_ListOfShape& theLFailed,
|
||||
const Standard_Boolean bLimited);
|
||||
|
||||
Standard_EXPORT void SelfInter (TopTools_MapOfShape& Modif);
|
||||
|
||||
@@ -152,6 +174,10 @@ private:
|
||||
//! Private method used to build walls for thickening the shell
|
||||
Standard_EXPORT void MakeMissingWalls();
|
||||
|
||||
//! Removes INTERNAL edges from the result
|
||||
Standard_EXPORT void RemoveInternalEdges();
|
||||
|
||||
|
||||
|
||||
Standard_Real myOffset;
|
||||
Standard_Real myTol;
|
||||
@@ -161,6 +187,8 @@ private:
|
||||
Standard_Boolean mySelfInter;
|
||||
GeomAbs_JoinType myJoin;
|
||||
Standard_Boolean myThickening;
|
||||
Standard_Boolean myRemoveIntEdges;
|
||||
Standard_Boolean myRemoveInvalidFaces;
|
||||
TopTools_DataMapOfShapeReal myFaceOffset;
|
||||
TopTools_IndexedMapOfShape myFaces;
|
||||
BRepOffset_Analyse myAnalyse;
|
||||
@@ -174,15 +202,9 @@ private:
|
||||
BRepOffset_Error myError;
|
||||
BRepOffset_MakeLoops myMakeLoops;
|
||||
Standard_Boolean myIsPerformSewing; // Handle bad walls in thicksolid mode.
|
||||
Standard_Boolean myIsPlanar;
|
||||
TopoDS_Shape myBadShape;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepOffset_MakeOffset_HeaderFile
|
||||
|
Reference in New Issue
Block a user