1 // Created on: 2009-05-05
2 // Created by: Sergey ZARITCHNY <sergey.zaritchny@opencascade.com>
3 // Copyright (c) 2009-2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
16 #ifndef _DNaming_BooleanOperationDriver_HeaderFile
17 #define _DNaming_BooleanOperationDriver_HeaderFile
19 #include <Standard.hxx>
20 #include <Standard_Type.hxx>
22 #include <TFunction_Driver.hxx>
23 #include <Standard_Boolean.hxx>
24 #include <Standard_Integer.hxx>
25 class TFunction_Logbook;
27 class BRepAlgoAPI_BooleanOperation;
28 class TFunction_Function;
31 class DNaming_BooleanOperationDriver;
32 DEFINE_STANDARD_HANDLE(DNaming_BooleanOperationDriver, TFunction_Driver)
34 //! Driver for Fuse, Cut, Common
35 class DNaming_BooleanOperationDriver : public TFunction_Driver
44 Standard_EXPORT DNaming_BooleanOperationDriver();
46 //! Validates labels of a function in <log>.
47 //! In regeneration mode this method must be called (by the
48 //! solver) even if the function is not executed, to build
49 //! the valid label scope.
50 //! execution of function
51 //! ======================
52 Standard_EXPORT virtual void Validate (Handle(TFunction_Logbook)& theLog) const Standard_OVERRIDE;
54 //! Analyse in <log> if the loaded function must be executed
55 //! (i.e.arguments are modified) or not.
56 //! If the Function label itself is modified, the function must
58 Standard_EXPORT virtual Standard_Boolean MustExecute (const Handle(TFunction_Logbook)& theLog) const Standard_OVERRIDE;
60 //! Execute the function and push in <log> the impacted
61 //! labels (see method SetImpacted).
62 Standard_EXPORT virtual Standard_Integer Execute (Handle(TFunction_Logbook)& theLog) const Standard_OVERRIDE;
67 DEFINE_STANDARD_RTTI(DNaming_BooleanOperationDriver,TFunction_Driver)
77 Standard_EXPORT void LoadNamingDS (const TDF_Label& theResultLabel, BRepAlgoAPI_BooleanOperation& MS) const;
79 Standard_EXPORT void LoadSectionNDS (const TDF_Label& theResultLabel, BRepAlgoAPI_BooleanOperation& MS) const;
81 Standard_EXPORT Standard_Boolean CheckAndLoad (BRepAlgoAPI_BooleanOperation& theMkOpe, const Handle(TFunction_Function)& theFunction) const;
93 #endif // _DNaming_BooleanOperationDriver_HeaderFile