]> OCCT Git - occt.git/commitdiff
Modelling - Add option to not build history in BRepFill_PipeShell (#632)
authorDmitrii Kulikov <164657232+AtheneNoctuaPt@users.noreply.github.com>
Tue, 22 Jul 2025 09:42:02 +0000 (10:42 +0100)
committerGitHub <noreply@github.com>
Tue, 22 Jul 2025 09:42:02 +0000 (10:42 +0100)
- 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

src/ModelingAlgorithms/TKBool/BRepFill/BRepFill_PipeShell.cxx
src/ModelingAlgorithms/TKBool/BRepFill/BRepFill_PipeShell.hxx
src/ModelingAlgorithms/TKOffset/BRepOffsetAPI/BRepOffsetAPI_MakePipeShell.hxx

index 6ccc821273b2e8981cf6e6643ed5b94cc76a8c40..bc01045d71d4eddd0aa7bd58a7e8f920fcf141b3 100644 (file)
@@ -213,7 +213,8 @@ BRepFill_PipeShell::BRepFill_PipeShell(const TopoDS_Wire& Spine)
       myIsAutomaticLaw(Standard_False),
       myTrihedron(GeomFill_IsCorrectedFrenet),
       myTransition(BRepFill_Modified),
-      myStatus(GeomFill_PipeOk)
+      myStatus(GeomFill_PipeOk),
+      myIsBuildHistory(Standard_True)
 {
   myLocation.Nullify();
   mySection.Nullify();
@@ -785,7 +786,10 @@ Standard_Boolean BRepFill_PipeShell::Build()
         myShape.Closed(Standard_True);
     }
 
-    BuildHistory(MkSw);
+    if (myIsBuildHistory)
+    {
+      BuildHistory(MkSw);
+    }
   }
   else
   {
index f4eb55fc57cfcffaa5fbdf3afc21d70a054d742a..6443d49a4e9f0206ea612dc115e116991f7711ff 100644 (file)
@@ -122,6 +122,18 @@ public:
   //! spine
   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.
   Standard_EXPORT void Add(const TopoDS_Shape&    Profile,
                            const Standard_Boolean WithContact    = Standard_False,
@@ -246,6 +258,7 @@ private:
   BRepFill_TransitionStyle           myTransition;
   GeomFill_PipeError                 myStatus;
   Standard_Real                      myErrorOnSurf;
+  Standard_Boolean                   myIsBuildHistory;
 };
 
 #endif // _BRepFill_PipeShell_HeaderFile
index 10a288339d9100def58bd7853d0d47f71d2c6155..e0466d38be17f208c17d7a552e2f21b3b59bb3dd 100644 (file)
@@ -274,13 +274,24 @@ public:
 
   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
   void Profiles(TopTools_ListOfShape& theProfiles) { myPipe->Profiles(theProfiles); }
 
   //! Returns the spine
   const TopoDS_Wire& Spine() { return myPipe->Spine(); }
 
-protected:
 private:
   Handle(BRepFill_PipeShell) myPipe;
 };