0756dcdc58e93b87ee3d2a4ee209c0164ddf2ffd
[occt.git] / src / DNaming / DNaming_TransformationDriver.hxx
1 // Created on: 2009-05-07
2 // Created by: Sergey ZARITCHNY <sergey.zaritchny@opencascade.com> 
3 // Copyright (c) 2009-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
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.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef _DNaming_TransformationDriver_HeaderFile
17 #define _DNaming_TransformationDriver_HeaderFile
18
19 #include <Standard.hxx>
20 #include <Standard_Type.hxx>
21
22 #include <TFunction_Driver.hxx>
23 #include <Standard_Boolean.hxx>
24 #include <Standard_Integer.hxx>
25 class TFunction_Logbook;
26 class TDF_Label;
27 class TNaming_NamedShape;
28 class gp_Trsf;
29
30
31 class DNaming_TransformationDriver;
32 DEFINE_STANDARD_HANDLE(DNaming_TransformationDriver, TFunction_Driver)
33
34
35 class DNaming_TransformationDriver : public TFunction_Driver
36 {
37
38 public:
39
40   
41   //! Constructor
42   //! validation
43   //! ==========
44   Standard_EXPORT DNaming_TransformationDriver();
45   
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 (TFunction_Logbook& theLog) const Standard_OVERRIDE;
53   
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
57   //! be executed.
58   Standard_EXPORT virtual Standard_Boolean MustExecute (const TFunction_Logbook& theLog) const Standard_OVERRIDE;
59   
60   //! Execute the function and push in <log> the impacted
61   //! labels (see method SetImpacted).
62   Standard_EXPORT virtual Standard_Integer Execute (TFunction_Logbook& theLog) const Standard_OVERRIDE;
63
64
65
66
67   DEFINE_STANDARD_RTTI(DNaming_TransformationDriver,TFunction_Driver)
68
69 protected:
70
71
72
73
74 private:
75
76   
77   Standard_EXPORT void LoadNamingDS (const TDF_Label& theResultLabel, const Handle(TNaming_NamedShape)& theSourceNS, const gp_Trsf& theTrsf) const;
78
79
80
81 };
82
83
84
85
86
87
88
89 #endif // _DNaming_TransformationDriver_HeaderFile