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
|
// 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 _TDocStd_XLinkTool_HeaderFile
#define _TDocStd_XLinkTool_HeaderFile
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_TDF_DataSet_HeaderFile
#include <Handle_TDF_DataSet.hxx>
#endif
#ifndef _Handle_TDF_RelocationTable_HeaderFile
#include <Handle_TDF_RelocationTable.hxx>
#endif
class TDF_DataSet;
class TDF_RelocationTable;
class TDF_Label;
//! This tool class is used to copy the content of <br>
//! source label under target label. Only child <br>
//! labels and attributes of source are copied. <br>
//! attributes located out of source scope are not <br>
//! copied by this algorithm. <br>
//! Depending of the called method an external <br>
//! reference is set in the the target document to <br>
//! registred the externallink. <br>
//! Warning1: Nothing is provided in this class about the <br>
//! opportunity to copy, set a link or update it. <br>
//! Such decisions must be under application control. <br>
//! Warning2: If the document manages shapes, use after copy <br>
//! TNaming::ChangeShapes(target,M) to make copy of <br>
//! shapes. <br>
class TDocStd_XLinkTool {
public:
void* operator new(size_t,void* anAddress)
{
return anAddress;
}
void* operator new(size_t size)
{
return Standard::Allocate(size);
}
void operator delete(void *anAddress)
{
if (anAddress) Standard::Free((Standard_Address&)anAddress);
}
Standard_EXPORT TDocStd_XLinkTool();
//! Copies the content of the label <fromsource> to the label <intarget>. <br>
//! The link is registred with an XLink attribute by <intarget> <br>
//! label. if the content of <fromsource> is not <br>
//! self-contained, and/or <intarget> has already an XLink <br>
//! attribute, an exception is raised. <br>
Standard_EXPORT void CopyWithLink(const TDF_Label& intarget,const TDF_Label& fromsource) ;
//! Update the external reference set at <L>. <br>
//! Example <br>
//! Handle(TDocStd_Document) aDoc; <br>
//! if <br>
//! (!OCAFTest::GetDocument(1,aDoc)) return 1; <br>
//! Handle(TDataStd_Reference) aRef; <br>
//! TDocStd_XLinkTool xlinktool; <br>
//! if <br>
//! (!OCAFTest::Find(aDoc,2),TDataStd_Reference::GetID(),aRef) return 1; <br>
//! xlinktool.UpdateLink(aRef->Label()); <br>
//! Exceptions <br>
//! Standard_DomainError if <L> has no XLink attribute. <br>
Standard_EXPORT void UpdateLink(const TDF_Label& L) ;
//! Copy the content of <fromsource> under <br>
//! <intarget>. Noone link is registred. noone check is done. <br>
//! Example <br>
//! Handle(TDocStd_Document) DOC, XDOC; <br>
//! TDF_Label L, XL; <br>
//! TDocStd_XLinkTool xlinktool; <br>
//! xlinktool.Copy(L,XL); <br>
//! Exceptions: <br>
//! Standard_DomainError if the contents of <br>
//! fromsource are not entirely in the scope of this <br>
//! label, in other words, are not self-contained. <br>
//! !!! ==> Warning: <br>
//! If the document manages shapes use the next way: <br>
//! TDocStd_XLinkTool xlinktool; <br>
//! xlinktool.Copy(L,XL); <br>
//! TopTools_DataMapOfShapeShape M; <br>
//! TNaming::ChangeShapes(target,M); <br>
Standard_EXPORT virtual void Copy(const TDF_Label& intarget,const TDF_Label& fromsource) ;
Standard_EXPORT Standard_Boolean IsDone() const;
Standard_EXPORT Handle_TDF_DataSet DataSet() const;
Standard_EXPORT Handle_TDF_RelocationTable RelocationTable() const;
protected:
Standard_Boolean isDone;
private:
Handle_TDF_DataSet myDS;
Handle_TDF_RelocationTable myRT;
};
// other Inline functions and methods (like "C++: function call" methods)
#endif
|