blob: 895c21a2577714cc499e013b8a3e0e26b6f52742 (
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
|
#include <MDataXtd_ConstraintStorageDriver.ixx>
#include <PDataXtd_Constraint.hxx>
#include <TDataXtd_Constraint.hxx>
#include <TNaming_NamedShape.hxx>
#include <PNaming_NamedShape.hxx>
#include <PDF_HAttributeArray1.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TDataXtd_ConstraintEnum.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_DomainError.hxx>
#include <MDataXtd.hxx>
#include <CDM_MessageDriver.hxx>
//=======================================================================
//function : MDataXtd_ConstraintStorageDriver
//purpose :
//=======================================================================
MDataXtd_ConstraintStorageDriver::MDataXtd_ConstraintStorageDriver(const Handle(CDM_MessageDriver)& theMsgDriver):MDF_ASDriver(theMsgDriver)
{
}
//=======================================================================
//function : VersionNumber
//purpose :
//=======================================================================
Standard_Integer MDataXtd_ConstraintStorageDriver::VersionNumber() const
{ return 0; }
//=======================================================================
//function : SourceType
//purpose :
//=======================================================================
Handle(Standard_Type) MDataXtd_ConstraintStorageDriver::SourceType() const
{ return STANDARD_TYPE (TDataXtd_Constraint); }
//=======================================================================
//function : NewEmpty
//purpose :
//=======================================================================
Handle(PDF_Attribute) MDataXtd_ConstraintStorageDriver::NewEmpty() const
{ return new PDataXtd_Constraint; }
//=======================================================================
//function : Paste
//purpose :
//=======================================================================
void MDataXtd_ConstraintStorageDriver::Paste (
const Handle(TDF_Attribute)& Source,
const Handle(PDF_Attribute)& Target,
const Handle(MDF_SRelocationTable)& RelocTable) const
{
Handle(TDataXtd_Constraint) S =
Handle(TDataXtd_Constraint)::DownCast (Source);
Handle(PDataXtd_Constraint) T =
Handle(PDataXtd_Constraint)::DownCast (Target);
Handle(PDataStd_Real) TValue;
Handle(TDataStd_Real) Value = S->GetValue ();
if (!Value.IsNull ()) {
if (!RelocTable->HasRelocation (Value, TValue )) {
Standard_NoSuchObject::Raise("MDataXtd_ConstraintStorageDriver::Paste");
}
T->Set (TValue);
}
Standard_Integer NbGeom = S->NbGeometries ();
if (NbGeom >= 1) {
Handle(PDF_HAttributeArray1) PGeometries = new PDF_HAttributeArray1 (1, NbGeom);
for (Standard_Integer i = 1; i <= NbGeom; i++) {
Handle(PDF_Attribute) PG;
if (!S->GetGeometry (i).IsNull()) {
if(!RelocTable->HasRelocation (S->GetGeometry (i), PG)) {
Standard_NoSuchObject::Raise("MDataXtd_ConstraintStorageDriver::Paste");
}
}
PGeometries->SetValue (i,PG);
}
T->SetGeometries (PGeometries);
}
Handle(TNaming_NamedShape) TPlane = S->GetPlane();
Handle(PNaming_NamedShape) PPlane;
if (!TPlane.IsNull()) {
if (!RelocTable->HasRelocation (TPlane, PPlane )) {
Standard_NoSuchObject::Raise("MDataXtd_ConstraintStorageDriver::Paste");
}
T->SetPlane(PPlane);
}
T->SetType (MDataXtd::ConstraintTypeToInteger(S->GetType ()));
T->Verified(S->Verified());
T->Inverted(S->Inverted());
T->Reversed(S->Reversed());
}
|