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

Modelling - Add option to not build history in BRepFill_PipeShell (#632)

- Adds `myIsBuildHistory` boolean member to `BRepFill_PipeShell` with default value `true`
- Implements getter/setter methods in both `BRepFill_PipeShell` and `BRepOffsetAPI_MakePipeShell` interfaces
- Conditionally calls `BuildHistory()` method based on the flag value
This commit is contained in:
Dmitrii Kulikov
2025-07-22 10:42:02 +01:00
committed by GitHub
parent 3c2774ea5d
commit 068aa6ae9f
3 changed files with 31 additions and 3 deletions

View File

@@ -213,7 +213,8 @@ BRepFill_PipeShell::BRepFill_PipeShell(const TopoDS_Wire& Spine)
myIsAutomaticLaw(Standard_False), myIsAutomaticLaw(Standard_False),
myTrihedron(GeomFill_IsCorrectedFrenet), myTrihedron(GeomFill_IsCorrectedFrenet),
myTransition(BRepFill_Modified), myTransition(BRepFill_Modified),
myStatus(GeomFill_PipeOk) myStatus(GeomFill_PipeOk),
myIsBuildHistory(Standard_True)
{ {
myLocation.Nullify(); myLocation.Nullify();
mySection.Nullify(); mySection.Nullify();
@@ -785,7 +786,10 @@ Standard_Boolean BRepFill_PipeShell::Build()
myShape.Closed(Standard_True); myShape.Closed(Standard_True);
} }
BuildHistory(MkSw); if (myIsBuildHistory)
{
BuildHistory(MkSw);
}
} }
else else
{ {

View File

@@ -122,6 +122,18 @@ public:
//! spine //! spine
Standard_EXPORT void SetForceApproxC1(const Standard_Boolean ForceApproxC1); Standard_EXPORT void SetForceApproxC1(const Standard_Boolean ForceApproxC1);
//! Sets the build history flag.
//! If set to True, the pipe shell will store the history of the sections
//! and the spine, which can be used for further modifications or analysis.
inline void SetIsBuildHistory(const Standard_Boolean theIsBuildHistory)
{
myIsBuildHistory = theIsBuildHistory;
}
//! Returns the build history flag.
//! If True, the pipe shell stores the history of the sections and the spine.
inline bool IsBuildHistory() const { return myIsBuildHistory; }
//! Set an section. The correspondence with the spine, will be automatically performed. //! Set an section. The correspondence with the spine, will be automatically performed.
Standard_EXPORT void Add(const TopoDS_Shape& Profile, Standard_EXPORT void Add(const TopoDS_Shape& Profile,
const Standard_Boolean WithContact = Standard_False, const Standard_Boolean WithContact = Standard_False,
@@ -246,6 +258,7 @@ private:
BRepFill_TransitionStyle myTransition; BRepFill_TransitionStyle myTransition;
GeomFill_PipeError myStatus; GeomFill_PipeError myStatus;
Standard_Real myErrorOnSurf; Standard_Real myErrorOnSurf;
Standard_Boolean myIsBuildHistory;
}; };
#endif // _BRepFill_PipeShell_HeaderFile #endif // _BRepFill_PipeShell_HeaderFile

View File

@@ -274,13 +274,24 @@ public:
Standard_EXPORT Standard_Real ErrorOnSurface() const; Standard_EXPORT Standard_Real ErrorOnSurface() const;
//! Sets the build history flag.
//! If set to True, the pipe shell will store the history of the sections
//! and the spine, which can be used for further modifications or analysis.
inline void SetIsBuildHistory(const Standard_Boolean theIsBuildHistory)
{
myPipe->SetIsBuildHistory(theIsBuildHistory);
}
//! Returns the build history flag.
//! If True, the pipe shell stores the history of the sections and the spine.
inline bool IsBuildHistory() const { return myPipe->IsBuildHistory(); }
//! Returns the list of original profiles //! Returns the list of original profiles
void Profiles(TopTools_ListOfShape& theProfiles) { myPipe->Profiles(theProfiles); } void Profiles(TopTools_ListOfShape& theProfiles) { myPipe->Profiles(theProfiles); }
//! Returns the spine //! Returns the spine
const TopoDS_Wire& Spine() { return myPipe->Spine(); } const TopoDS_Wire& Spine() { return myPipe->Spine(); }
protected:
private: private:
Handle(BRepFill_PipeShell) myPipe; Handle(BRepFill_PipeShell) myPipe;
}; };