0031682: Visualization - Prs3d_ShadingAspect::SetTransparency() has no effect with...
[occt.git] / src / RWStepFEA / RWStepFEA_RWCurve3dElementProperty.cxx
CommitLineData
b311480e 1// Created on: 2002-12-12
2// Created by: data exchange team
973c2be1 3// Copyright (c) 2002-2014 OPEN CASCADE SAS
b311480e 4//
973c2be1 5// This file is part of Open CASCADE Technology software library.
b311480e 6//
d5f74e42 7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
b311480e 12//
973c2be1 13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
b311480e 15
7fd59977 16// Generator: ExpToCas (EXPRESS -> CASCADE/XSTEP Translator) V1.2
7fd59977 17
42cf5bc1 18#include <Interface_Check.hxx>
19#include <Interface_EntityIterator.hxx>
20#include <RWStepFEA_RWCurve3dElementProperty.hxx>
21#include <StepData_StepReaderData.hxx>
22#include <StepData_StepWriter.hxx>
23#include <StepFEA_Curve3dElementProperty.hxx>
24#include <StepFEA_CurveElementEndOffset.hxx>
25#include <StepFEA_CurveElementEndRelease.hxx>
7fd59977 26#include <StepFEA_CurveElementInterval.hxx>
27#include <StepFEA_HArray1OfCurveElementEndOffset.hxx>
7fd59977 28#include <StepFEA_HArray1OfCurveElementEndRelease.hxx>
42cf5bc1 29#include <StepFEA_HArray1OfCurveElementInterval.hxx>
7fd59977 30
31//=======================================================================
32//function : RWStepFEA_RWCurve3dElementProperty
33//purpose :
34//=======================================================================
7fd59977 35RWStepFEA_RWCurve3dElementProperty::RWStepFEA_RWCurve3dElementProperty ()
36{
37}
38
39//=======================================================================
40//function : ReadStep
41//purpose :
42//=======================================================================
43
44void RWStepFEA_RWCurve3dElementProperty::ReadStep (const Handle(StepData_StepReaderData)& data,
45 const Standard_Integer num,
46 Handle(Interface_Check)& ach,
47 const Handle(StepFEA_Curve3dElementProperty) &ent) const
48{
49 // Check number of parameters
50 if ( ! data->CheckNbParams(num,5,ach,"curve3d_element_property") ) return;
51
52 // Own fields of Curve3dElementProperty
53
54 Handle(TCollection_HAsciiString) aPropertyId;
55 data->ReadString (num, 1, "property_id", ach, aPropertyId);
56
57 Handle(TCollection_HAsciiString) aDescription;
58 data->ReadString (num, 2, "description", ach, aDescription);
59
60 Handle(StepFEA_HArray1OfCurveElementInterval) aIntervalDefinitions;
61 Standard_Integer sub3 = 0;
62 if ( data->ReadSubList (num, 3, "interval_definitions", ach, sub3) ) {
63 Standard_Integer nb0 = data->NbParams(sub3);
64 aIntervalDefinitions = new StepFEA_HArray1OfCurveElementInterval (1, nb0);
65 Standard_Integer num2 = sub3;
66 for ( Standard_Integer i0=1; i0 <= nb0; i0++ ) {
67 Handle(StepFEA_CurveElementInterval) anIt0;
68 data->ReadEntity (num2, i0, "curve_element_interval", ach, STANDARD_TYPE(StepFEA_CurveElementInterval), anIt0);
69 aIntervalDefinitions->SetValue(i0, anIt0);
70 }
71 }
72
73 Handle(StepFEA_HArray1OfCurveElementEndOffset) aEndOffsets;
74 Standard_Integer sub4 = 0;
75 if ( data->ReadSubList (num, 4, "end_offsets", ach, sub4) ) {
76 Standard_Integer nb0 = data->NbParams(sub4);
77 aEndOffsets = new StepFEA_HArray1OfCurveElementEndOffset (1, nb0);
78 Standard_Integer num2 = sub4;
79 for ( Standard_Integer i0=1; i0 <= nb0; i0++ ) {
80 Handle(StepFEA_CurveElementEndOffset) anIt0;
81 data->ReadEntity (num2, i0, "curve_element_end_offset", ach, STANDARD_TYPE(StepFEA_CurveElementEndOffset), anIt0);
82 aEndOffsets->SetValue(i0, anIt0);
83 }
84 }
85
86 Handle(StepFEA_HArray1OfCurveElementEndRelease) aEndReleases;
87 Standard_Integer sub5 = 0;
88 if ( data->ReadSubList (num, 5, "end_releases", ach, sub5) ) {
89 Standard_Integer nb0 = data->NbParams(sub5);
90 aEndReleases = new StepFEA_HArray1OfCurveElementEndRelease (1, nb0);
91 Standard_Integer num2 = sub5;
92 for ( Standard_Integer i0=1; i0 <= nb0; i0++ ) {
93 Handle(StepFEA_CurveElementEndRelease) anIt0;
94 data->ReadEntity (num2, i0, "curve_element_end_release", ach, STANDARD_TYPE(StepFEA_CurveElementEndRelease), anIt0);
95 aEndReleases->SetValue(i0, anIt0);
96 }
97 }
98
99 // Initialize entity
100 ent->Init(aPropertyId,
101 aDescription,
102 aIntervalDefinitions,
103 aEndOffsets,
104 aEndReleases);
105}
106
107//=======================================================================
108//function : WriteStep
109//purpose :
110//=======================================================================
111
112void RWStepFEA_RWCurve3dElementProperty::WriteStep (StepData_StepWriter& SW,
113 const Handle(StepFEA_Curve3dElementProperty) &ent) const
114{
115
116 // Own fields of Curve3dElementProperty
117
118 SW.Send (ent->PropertyId());
119
120 SW.Send (ent->Description());
121
122 SW.OpenSub();
123 for (Standard_Integer i2=1; i2 <= ent->IntervalDefinitions()->Length(); i2++ ) {
124 Handle(StepFEA_CurveElementInterval) Var0 = ent->IntervalDefinitions()->Value(i2);
125 SW.Send (Var0);
126 }
127 SW.CloseSub();
128
129 SW.OpenSub();
130 for (Standard_Integer i3=1; i3 <= ent->EndOffsets()->Length(); i3++ ) {
131 Handle(StepFEA_CurveElementEndOffset) Var0 = ent->EndOffsets()->Value(i3);
132 SW.Send (Var0);
133 }
134 SW.CloseSub();
135
136 SW.OpenSub();
137 for (Standard_Integer i4=1; i4 <= ent->EndReleases()->Length(); i4++ ) {
138 Handle(StepFEA_CurveElementEndRelease) Var0 = ent->EndReleases()->Value(i4);
139 SW.Send (Var0);
140 }
141 SW.CloseSub();
142}
143
144//=======================================================================
145//function : Share
146//purpose :
147//=======================================================================
148
149void RWStepFEA_RWCurve3dElementProperty::Share (const Handle(StepFEA_Curve3dElementProperty) &ent,
150 Interface_EntityIterator& iter) const
151{
152
153 // Own fields of Curve3dElementProperty
154
155 for (Standard_Integer i1=1; i1 <= ent->IntervalDefinitions()->Length(); i1++ ) {
156 Handle(StepFEA_CurveElementInterval) Var0 = ent->IntervalDefinitions()->Value(i1);
157 iter.AddItem (Var0);
158 }
159
160 for (Standard_Integer i2=1; i2 <= ent->EndOffsets()->Length(); i2++ ) {
161 Handle(StepFEA_CurveElementEndOffset) Var0 = ent->EndOffsets()->Value(i2);
162 iter.AddItem (Var0);
163 }
164
165 for (Standard_Integer i3=1; i3 <= ent->EndReleases()->Length(); i3++ ) {
166 Handle(StepFEA_CurveElementEndRelease) Var0 = ent->EndReleases()->Value(i3);
167 iter.AddItem (Var0);
168 }
169}