summaryrefslogtreecommitdiff
path: root/inc/TNaming_NamedShape.hxx
blob: 0f06ecfddc477a8195cc7fb717c0d1148beb2093 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _TNaming_NamedShape_HeaderFile
#define _TNaming_NamedShape_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_TNaming_NamedShape_HeaderFile
#include <Handle_TNaming_NamedShape.hxx>
#endif

#ifndef _TNaming_PtrNode_HeaderFile
#include <TNaming_PtrNode.hxx>
#endif
#ifndef _TNaming_Evolution_HeaderFile
#include <TNaming_Evolution.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _TDF_Attribute_HeaderFile
#include <TDF_Attribute.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_TDF_Attribute_HeaderFile
#include <Handle_TDF_Attribute.hxx>
#endif
#ifndef _Handle_TDF_DeltaOnModification_HeaderFile
#include <Handle_TDF_DeltaOnModification.hxx>
#endif
#ifndef _Handle_TDF_DeltaOnRemoval_HeaderFile
#include <Handle_TDF_DeltaOnRemoval.hxx>
#endif
#ifndef _Handle_TDF_RelocationTable_HeaderFile
#include <Handle_TDF_RelocationTable.hxx>
#endif
#ifndef _Handle_TDF_DataSet_HeaderFile
#include <Handle_TDF_DataSet.hxx>
#endif
#ifndef _Handle_TDF_AttributeDelta_HeaderFile
#include <Handle_TDF_AttributeDelta.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
class TNaming_Builder;
class TNaming_Iterator;
class TNaming_NewShapeIterator;
class TNaming_OldShapeIterator;
class Standard_GUID;
class TopoDS_Shape;
class TDF_Attribute;
class TDF_DeltaOnModification;
class TDF_DeltaOnRemoval;
class TDF_RelocationTable;
class TDF_DataSet;
class TDF_AttributeDelta;


//! The basis to define an attribute for the storage of <br>
//! topology and naming data. <br>
//! This attribute contains two parts: <br>
//! -   The type of evolution, a term of the <br>
//!   enumeration TNaming_Evolution <br>
//! -   A list of pairs of shapes called the "old" <br>
//!   shape and the "new" shape. The meaning <br>
//!   depends on the type of evolution. <br>
class TNaming_NamedShape : public TDF_Attribute {

public:

  //! class method <br>
//!          ============ <br>//! Returns the GUID for named shapes. <br>
  Standard_EXPORT   static const Standard_GUID& GetID() ;
  
  Standard_EXPORT   TNaming_NamedShape();
  
  Standard_EXPORT     Standard_Boolean IsEmpty() const;
  //! Returns the shapes contained in <NS>. Returns a null <br>
//!          shape if IsEmpty. <br>
  Standard_EXPORT     TopoDS_Shape Get() const;
  //! Returns the Evolution of the attribute. <br>
        TNaming_Evolution Evolution() const;
  //! Returns the Version of the attribute. <br>
        Standard_Integer Version() const;
  //! Set the Version of the attribute. <br>
        void SetVersion(const Standard_Integer version) ;
  
  Standard_EXPORT     void Clear() ;
  //! Returns the ID of the attribute. <br>
       const Standard_GUID& ID() const;
  //! Copies  the attribute  contents into  a  new other <br>
//!          attribute. It is used by Backup(). <br>
  Standard_EXPORT   virtual  Handle_TDF_Attribute BackupCopy() const;
  //! Restores the contents from <anAttribute> into this <br>
//!          one. It is used when aborting a transaction. <br>
//! <br>
  Standard_EXPORT   virtual  void Restore(const Handle(TDF_Attribute)& anAttribute) ;
  //! Makes a DeltaOnModification between <me> and <br>
//!         <anOldAttribute. <br>
  Standard_EXPORT   virtual  Handle_TDF_DeltaOnModification DeltaOnModification(const Handle(TDF_Attribute)& anOldAttribute) const;
  //! Applies a DeltaOnModification to <me>. <br>
  Standard_EXPORT   virtual  void DeltaOnModification(const Handle(TDF_DeltaOnModification)& aDelta) ;
  //! Makes a DeltaOnRemoval on <me> because <me> has <br>
//!         disappeared from the DS. <br>
  Standard_EXPORT   virtual  Handle_TDF_DeltaOnRemoval DeltaOnRemoval() const;
  //! Returns an new empty attribute from the good end <br>
//!          type. It is used by the copy algorithm. <br>
  Standard_EXPORT   virtual  Handle_TDF_Attribute NewEmpty() const;
  //! This method is different from the "Copy" one, <br>
//!          because it is used when copying an attribute from <br>
//!          a source structure into a target structure. This <br>
//!          method pastes the current attribute to the label <br>
//!          corresponding to the insertor. The pasted <br>
//!          attribute may be a brand new one or a new version <br>
//!          of the previous one. <br>
  Standard_EXPORT   virtual  void Paste(const Handle(TDF_Attribute)& intoAttribute,const Handle(TDF_RelocationTable)& aRelocTationable) const;
  
  Standard_EXPORT     void OldPaste(const Handle(TDF_Attribute)& intoAttribute,const Handle(TDF_RelocationTable)& aRelocTationable) const;
  //! Adds the directly referenced attributes and labels <br>
//!          to <aDataSet>. "Directly" means we have only to <br>
//!          look at the first level of references. <br>
  Standard_EXPORT   virtual  void References(const Handle(TDF_DataSet)& aDataSet) const;
  
  Standard_EXPORT   virtual  void BeforeRemoval() ;
  //! Something to do before applying <anAttDelta> <br>
  Standard_EXPORT   virtual  Standard_Boolean BeforeUndo(const Handle(TDF_AttributeDelta)& anAttDelta,const Standard_Boolean forceIt = Standard_False) ;
  //! Something to do after applying <anAttDelta>. <br>
  Standard_EXPORT   virtual  Standard_Boolean AfterUndo(const Handle(TDF_AttributeDelta)& anAttDelta,const Standard_Boolean forceIt = Standard_False) ;
  //! Dumps the attribute on <aStream>. <br>
  Standard_EXPORT   virtual  Standard_OStream& Dump(Standard_OStream& anOS) const;


friend class TNaming_Builder;
friend class TNaming_Iterator;
friend class TNaming_NewShapeIterator;
friend class TNaming_OldShapeIterator;


  DEFINE_STANDARD_RTTI(TNaming_NamedShape)

protected:




private: 

  //! Adds an evolution <br>
  Standard_EXPORT     void Add(TNaming_PtrNode& Evolution) ;

TNaming_PtrNode myNode;
TNaming_Evolution myEvolution;
Standard_Integer myVersion;


};


#include <TNaming_NamedShape.lxx>



// other Inline functions and methods (like "C++: function call" methods)


#endif