ff205346 |
1 | // Copyright (c) 2015 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 | |
ff205346 |
14 | #include <StdObjMgt_ReadData.hxx> |
ec964372 |
15 | #include <StdObjMgt_WriteData.hxx> |
16 | #include <ShapePersistent_HSequence.hxx> |
ff205346 |
17 | |
18 | |
19 | template <class SequenceClass> |
20 | void ShapePersistent_HSequence::node<SequenceClass>::Read |
21 | (StdObjMgt_ReadData& theReadData) |
22 | { |
23 | theReadData >> myPreviuos >> myItem >> myNext; |
24 | } |
25 | |
ec964372 |
26 | template <class SequenceClass> |
27 | void ShapePersistent_HSequence::node<SequenceClass>::Write |
28 | (StdObjMgt_WriteData& theWriteData) const |
29 | { |
30 | theWriteData << myPreviuos << myItem << myNext; |
31 | } |
32 | |
ff205346 |
33 | template <class SequenceClass> |
34 | void ShapePersistent_HSequence::instance<SequenceClass>::Read |
35 | (StdObjMgt_ReadData& theReadData) |
36 | { |
37 | theReadData >> myFirst >> myLast >> mySize; |
38 | } |
39 | |
ec964372 |
40 | template <class SequenceClass> |
41 | void ShapePersistent_HSequence::instance<SequenceClass>::Write |
42 | (StdObjMgt_WriteData& theWriteData) const |
43 | { |
44 | theWriteData << myFirst << myLast << mySize; |
45 | } |
46 | |
ff205346 |
47 | template <class SequenceClass> |
48 | Handle(SequenceClass) |
49 | ShapePersistent_HSequence::instance<SequenceClass>::Import() const |
50 | { |
51 | Handle(SequenceClass) aSequence = new SequenceClass; |
52 | |
53 | for (Handle(Node) aNode = myFirst; aNode; aNode = aNode->Next()) |
54 | aSequence->Append (aNode->Item()); |
55 | |
56 | return aSequence; |
57 | } |
58 | |
59 | template class ShapePersistent_HSequence::node<TColgp_HSequenceOfXYZ>; |
60 | template class ShapePersistent_HSequence::node<TColgp_HSequenceOfPnt>; |
61 | template class ShapePersistent_HSequence::node<TColgp_HSequenceOfDir>; |
62 | template class ShapePersistent_HSequence::node<TColgp_HSequenceOfVec>; |
63 | |
64 | template class ShapePersistent_HSequence::instance<TColgp_HSequenceOfXYZ>; |
65 | template class ShapePersistent_HSequence::instance<TColgp_HSequenceOfPnt>; |
66 | template class ShapePersistent_HSequence::instance<TColgp_HSequenceOfDir>; |
67 | template class ShapePersistent_HSequence::instance<TColgp_HSequenceOfVec>; |
ec964372 |
68 | |
69 | |
70 | //======================================================================= |
71 | // XYZ |
72 | //======================================================================= |
73 | template<> |
74 | Standard_CString ShapePersistent_HSequence::instance<TColgp_HSequenceOfXYZ> |
75 | ::PName() const { return "PColgp_HSequenceOfXYZ"; } |
76 | |
77 | template<> |
78 | Standard_CString ShapePersistent_HSequence::node<TColgp_HSequenceOfXYZ> |
79 | ::PName() const { return "PColgp_SeqNodeOfHSequenceOfXYZ"; } |
80 | |
81 | //======================================================================= |
82 | // Pnt |
83 | //======================================================================= |
84 | template<> |
85 | Standard_CString ShapePersistent_HSequence::instance<TColgp_HSequenceOfPnt> |
86 | ::PName() const { return "PColgp_HSequenceOfPnt"; } |
87 | |
88 | template<> |
89 | Standard_CString ShapePersistent_HSequence::node<TColgp_HSequenceOfPnt> |
90 | ::PName() const { return "PColgp_SeqNodeOfHSequenceOfPnt"; } |
91 | |
92 | //======================================================================= |
93 | // Dir |
94 | //======================================================================= |
95 | template<> |
96 | Standard_CString ShapePersistent_HSequence::instance<TColgp_HSequenceOfDir> |
97 | ::PName() const { return "PColgp_HSequenceOfDir"; } |
98 | |
99 | template<> |
100 | Standard_CString ShapePersistent_HSequence::node<TColgp_HSequenceOfDir> |
101 | ::PName() const { return "PColgp_SeqNodeOfHSequenceOffDir"; } |
102 | |
103 | //======================================================================= |
104 | // Vec |
105 | //======================================================================= |
106 | template<> |
107 | Standard_CString ShapePersistent_HSequence::instance<TColgp_HSequenceOfVec> |
108 | ::PName() const { return "PColgp_HSequenceOfVec"; } |
109 | |
110 | template<> |
111 | Standard_CString ShapePersistent_HSequence::node<TColgp_HSequenceOfVec> |
112 | ::PName() const { return "PColgp_SeqNodeOfHSequenceOfVec"; } |