d790b935132492398813d0f2cc0564cab4b6e4cd
[occt.git] / src / XCAFDoc / XCAFDoc_Datum.cxx
1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14
15 #include <Standard_GUID.hxx>
16 #include <Standard_Type.hxx>
17 #include <TCollection_HAsciiString.hxx>
18 #include <TDF_Attribute.hxx>
19 #include <TDF_Label.hxx>
20 #include <TDF_RelocationTable.hxx>
21 #include <XCAFDoc_Datum.hxx>
22
23 //=======================================================================
24 //function : XCAFDoc_Datum
25 //purpose  : 
26 //=======================================================================
27 XCAFDoc_Datum::XCAFDoc_Datum()
28 {
29 }
30
31
32 //=======================================================================
33 //function : GetID
34 //purpose  : 
35 //=======================================================================
36
37 const Standard_GUID& XCAFDoc_Datum::GetID() 
38 {
39   static Standard_GUID DID("58ed092e-44de-11d8-8776-001083004c77");
40   //static Standard_GUID ID("efd212e2-6dfd-11d4-b9c8-0060b0ee281b");
41   return DID;
42   //return ID;
43 }
44
45
46 //=======================================================================
47 //function : Set
48 //purpose  : 
49 //=======================================================================
50
51 Handle(XCAFDoc_Datum) XCAFDoc_Datum::Set(const TDF_Label& label,
52                                          const Handle(TCollection_HAsciiString)& aName,
53                                          const Handle(TCollection_HAsciiString)& aDescription,
54                                          const Handle(TCollection_HAsciiString)& anIdentification) 
55 {
56   Handle(XCAFDoc_Datum) A;
57   if (!label.FindAttribute(XCAFDoc_Datum::GetID(), A)) {
58     A = new XCAFDoc_Datum();
59     label.AddAttribute(A);
60   }
61   A->Set(aName,aDescription,anIdentification); 
62   return A;
63 }
64
65
66 //=======================================================================
67 //function : Set
68 //purpose  : 
69 //=======================================================================
70
71 void XCAFDoc_Datum::Set(const Handle(TCollection_HAsciiString)& aName,
72                         const Handle(TCollection_HAsciiString)& aDescription,
73                         const Handle(TCollection_HAsciiString)& anIdentification) 
74 {
75   myName = aName;
76   myDescription = aDescription;
77   myIdentification = anIdentification;
78 }
79
80
81 //=======================================================================
82 //function : GetName
83 //purpose  : 
84 //=======================================================================
85
86 Handle(TCollection_HAsciiString) XCAFDoc_Datum::GetName() const
87 {
88   return myName;
89 }
90
91
92 //=======================================================================
93 //function : GetDescription
94 //purpose  : 
95 //=======================================================================
96
97 Handle(TCollection_HAsciiString) XCAFDoc_Datum::GetDescription() const
98 {
99   return myDescription;
100 }
101
102
103 //=======================================================================
104 //function : GetIdentification
105 //purpose  : 
106 //=======================================================================
107
108 Handle(TCollection_HAsciiString) XCAFDoc_Datum::GetIdentification() const
109 {
110   return myIdentification;
111 }
112
113
114 //=======================================================================
115 //function : ID
116 //purpose  : 
117 //=======================================================================
118
119 const Standard_GUID& XCAFDoc_Datum::ID() const
120 {
121   return GetID();
122 }
123
124
125 //=======================================================================
126 //function : Restore
127 //purpose  : 
128 //=======================================================================
129
130 void XCAFDoc_Datum::Restore(const Handle(TDF_Attribute)& With) 
131 {
132   myName = Handle(XCAFDoc_Datum)::DownCast(With)->GetName();
133   myDescription = Handle(XCAFDoc_Datum)::DownCast(With)->GetDescription();
134   myIdentification = Handle(XCAFDoc_Datum)::DownCast(With)->GetIdentification();
135 }
136
137
138 //=======================================================================
139 //function : NewEmpty
140 //purpose  : 
141 //=======================================================================
142
143 Handle(TDF_Attribute) XCAFDoc_Datum::NewEmpty() const
144 {
145   return new XCAFDoc_Datum();
146 }
147
148
149 //=======================================================================
150 //function : Paste
151 //purpose  : 
152 //=======================================================================
153
154 void XCAFDoc_Datum::Paste(const Handle(TDF_Attribute)& Into,
155                           const Handle(TDF_RelocationTable)& /*RT*/) const
156 {
157   Handle(XCAFDoc_Datum)::DownCast(Into)->Set(myName,myDescription,myIdentification);
158 }
159