7fd59977 |
1 | //-------------------------------------------------------------------- |
2 | // |
3 | // File Name : IGESDefs_TabularData.cxx |
4 | // Date : |
5 | // Author : CKY / Contract Toubro-Larsen |
6 | // Copyright : MATRA-DATAVISION 1993 |
7 | // |
8 | //-------------------------------------------------------------------- |
9 | |
10 | // UNFINISHED |
11 | // The last field (ent->DependentValues()) not resolved. Queried to mdtv |
12 | |
13 | #include <IGESDefs_ToolTabularData.ixx> |
14 | #include <IGESData_ParamCursor.hxx> |
15 | #include <IGESBasic_HArray1OfHArray1OfReal.hxx> |
16 | #include <TColStd_HArray1OfInteger.hxx> |
17 | #include <TColStd_HArray1OfReal.hxx> |
18 | #include <IGESData_Dump.hxx> |
19 | #include <Interface_Macros.hxx> |
20 | #include <TColStd_HArray1OfReal.hxx> |
21 | |
22 | |
23 | IGESDefs_ToolTabularData::IGESDefs_ToolTabularData () { } |
24 | |
25 | |
26 | void IGESDefs_ToolTabularData::ReadOwnParams |
27 | (const Handle(IGESDefs_TabularData)& ent, |
28 | const Handle(IGESData_IGESReaderData)& /* IR */, IGESData_ParamReader& PR) const |
29 | { |
30 | Standard_Integer nbProps; |
31 | Standard_Integer propType; |
32 | Standard_Integer nbDeps; |
33 | Standard_Integer nbIndeps; |
34 | Handle(TColStd_HArray1OfInteger) typesInd; |
35 | Handle(TColStd_HArray1OfInteger) nbValuesInd; |
36 | Handle(IGESBasic_HArray1OfHArray1OfReal) valuesInd; |
37 | Handle(IGESBasic_HArray1OfHArray1OfReal) valuesDep; |
38 | //Standard_Boolean st; //szv#4:S4163:12Mar99 moved down |
39 | Standard_Integer i; |
40 | |
41 | PR.ReadInteger(PR.Current(), "Number of Property values", nbProps); //szv#4:S4163:12Mar99 `st=` not needed |
42 | |
43 | PR.ReadInteger(PR.Current(), "Property type", propType); //szv#4:S4163:12Mar99 `st=` not needed |
44 | |
45 | Standard_Boolean st = PR.ReadInteger(PR.Current(), "No. of dependent variables", nbDeps); |
46 | if (st && nbDeps > 0) |
47 | valuesDep = new IGESBasic_HArray1OfHArray1OfReal(1, nbDeps); |
48 | |
49 | st = PR.ReadInteger(PR.Current(), "No. of Independent variables", nbIndeps); |
50 | if (st && nbIndeps > 0) |
51 | { |
52 | valuesInd = new IGESBasic_HArray1OfHArray1OfReal(1, nbIndeps); |
53 | typesInd = new TColStd_HArray1OfInteger(1, nbIndeps); |
54 | nbValuesInd = new TColStd_HArray1OfInteger(1, nbIndeps); |
55 | } |
56 | |
57 | PR.ReadInts(PR.CurrentList(nbIndeps), |
58 | "Type of independent variables", typesInd); //szv#4:S4163:12Mar99 `st=` not needed |
59 | |
60 | PR.ReadInts(PR.CurrentList(nbIndeps), |
61 | "No. of values of independent variables", nbValuesInd); //szv#4:S4163:12Mar99 `st=` not needed |
62 | |
63 | for (i=1; i<=nbIndeps; i++) |
64 | { |
65 | Handle(TColStd_HArray1OfReal) tarr; |
66 | Standard_Integer nb = nbValuesInd->Value(i), j; |
67 | if (nb > 0 ) |
68 | { |
69 | tarr = new TColStd_HArray1OfReal(1, nb); |
70 | for (j=1; j<= nb; j++) |
71 | { |
72 | Standard_Real treal; |
73 | PR.ReadReal(PR.Current(), "Value of independent variable", |
74 | treal); //szv#4:S4163:12Mar99 `st=` not needed |
75 | tarr->SetValue(j, treal); |
76 | } |
77 | } |
78 | valuesInd->SetValue(i, tarr); |
79 | } |
80 | // ?? for (i=1; i<=nbDeps; i++) { } |
81 | // Dependents : definition pas limpide, on accumule tout sur un seul |
82 | // HArray1OfReal, mis en 1re position du HArray1OfHArray1OfReal |
83 | // On y met tous les flottants qui restent |
84 | Standard_Integer curnum = PR.CurrentNumber(); |
85 | Standard_Integer nbpars = PR.NbParams(); |
86 | Standard_Integer nbd = 0; |
87 | for (i = curnum; i <= nbpars; i ++) { |
88 | if (PR.ParamType(i) != Interface_ParamReal) break; |
89 | nbd = i - curnum + 1; |
90 | } |
91 | Handle(TColStd_HArray1OfReal) somedeps; |
92 | if (nbd > 0) somedeps = new TColStd_HArray1OfReal(1,nbd); |
93 | for (i = 1; i <= nbd; i ++) { |
94 | Standard_Real treal; |
95 | PR.ReadReal(PR.Current(), "Value of dependent variable", treal); //szv#4:S4163:12Mar99 `st=` not needed |
96 | somedeps->SetValue(i, treal); |
97 | } |
98 | if (nbDeps > 0) valuesDep->SetValue(1,somedeps); |
99 | else PR.AddWarning("Some Real remain while no dependent vakue is defined"); |
100 | |
101 | nbProps = PR.CurrentNumber() - 2; |
102 | /* for (;;) { |
103 | curnum = PR.CurrentNumber(); |
104 | if (curnum > PR.NbParams()) break; |
105 | if (PR.ParamType(curnum) != Interface_ParamReal) break; |
106 | PR.SetCurrentNumber (curnum+1); |
107 | } */ |
108 | PR.AddWarning("Don't know exactly how to read dependant values ..."); |
109 | // ?? a eclaircir |
110 | DirChecker(ent).CheckTypeAndForm(PR.CCheck(),ent); |
111 | ent->Init (nbProps, propType, typesInd, nbValuesInd, valuesInd, valuesDep); |
112 | } |
113 | |
114 | void IGESDefs_ToolTabularData::WriteOwnParams |
115 | (const Handle(IGESDefs_TabularData)& ent, IGESData_IGESWriter& IW) const |
116 | { |
117 | Standard_Integer i, nbIndeps = ent->NbIndependents(); |
118 | Standard_Integer j, nbDeps = ent->NbDependents(); |
119 | IW.Send(ent->NbPropertyValues()); |
120 | IW.Send(ent->PropertyType()); |
121 | IW.Send(nbDeps); |
122 | IW.Send(nbIndeps); |
123 | for (i=1; i<=nbIndeps; i++) |
124 | IW.Send(ent->TypeOfIndependents(i)); |
125 | for (i=1; i<=nbIndeps; i++) |
126 | IW.Send(ent->NbValues(i)); |
127 | for (i=1; i<=nbIndeps; i++) |
128 | for (j=1; j<=ent->NbValues(i); j++) |
129 | IW.Send(ent->IndependentValue(i,j)); |
130 | // UNFINISHED |
131 | if (nbDeps == 0) return; |
132 | Handle(TColStd_HArray1OfReal) deps = ent->DependentValues(1); |
133 | for (i = 1; i <= deps->Length(); i ++) IW.Send(deps->Value(i)); |
134 | /* |
135 | for (i=1; i<=nbDeps; i++) |
136 | for (j=1; j<= .. ->Value(i); j++) |
137 | IW.Send(ent->DependentValue(i,j)); |
138 | */ |
139 | } |
140 | |
141 | void IGESDefs_ToolTabularData::OwnShared |
142 | (const Handle(IGESDefs_TabularData)& /* ent */, Interface_EntityIterator& /* iter */) const |
143 | { |
144 | } |
145 | |
146 | void IGESDefs_ToolTabularData::OwnCopy |
147 | (const Handle(IGESDefs_TabularData)& another, |
148 | const Handle(IGESDefs_TabularData)& ent, Interface_CopyTool& /* TC */) const |
149 | { |
150 | Standard_Integer nbProps = another->NbPropertyValues(); |
151 | Standard_Integer propType = another->PropertyType(); |
152 | Standard_Integer nbDeps = another->NbDependents(); |
153 | Standard_Integer nbIndeps = another->NbIndependents(); |
154 | Handle(TColStd_HArray1OfInteger) typesInd = new |
155 | TColStd_HArray1OfInteger(1, nbIndeps); |
156 | Handle(TColStd_HArray1OfInteger) nbValuesInd = new |
157 | TColStd_HArray1OfInteger(1, nbIndeps); |
158 | Handle(IGESBasic_HArray1OfHArray1OfReal) valuesInd = new |
159 | IGESBasic_HArray1OfHArray1OfReal(1, nbIndeps); |
160 | Handle(IGESBasic_HArray1OfHArray1OfReal) valuesDep = new |
161 | IGESBasic_HArray1OfHArray1OfReal(1, nbDeps); |
162 | Standard_Integer i; |
163 | for (i=1; i<=nbIndeps; i++) |
164 | { |
165 | Standard_Integer j, nval; |
166 | typesInd->SetValue(i, another->TypeOfIndependents(i)); |
167 | nval = another->NbValues(i); |
168 | nbValuesInd->SetValue(i, nval); |
169 | Handle(TColStd_HArray1OfReal) tmparr = new |
170 | TColStd_HArray1OfReal(1, nval); |
171 | for (j=1; j<=nval; j++) |
172 | tmparr->SetValue(j, another->IndependentValue(i, j)); |
173 | valuesInd->SetValue(i, tmparr); |
174 | } |
175 | // UNFINISHED |
176 | /* |
177 | for (i=1; i<=nbDeps; i++) |
178 | { |
179 | } |
180 | */ |
181 | ent->Init(nbProps, propType, typesInd, nbValuesInd, |
182 | valuesInd, valuesDep); |
183 | } |
184 | |
185 | IGESData_DirChecker IGESDefs_ToolTabularData::DirChecker |
186 | (const Handle(IGESDefs_TabularData)& /* ent */ ) const |
187 | { |
188 | IGESData_DirChecker DC(406, 11); |
189 | DC.Structure (IGESData_DefVoid); |
190 | DC.LineFont (IGESData_DefVoid); |
191 | DC.LineWeight (IGESData_DefVoid); |
192 | DC.Color (IGESData_DefVoid); |
193 | |
194 | DC.BlankStatusIgnored (); |
195 | DC.UseFlagIgnored (); |
196 | DC.HierarchyStatusIgnored (); |
197 | return DC; |
198 | } |
199 | |
200 | void IGESDefs_ToolTabularData::OwnCheck |
201 | (const Handle(IGESDefs_TabularData)& /* ent */, |
202 | const Interface_ShareTool& , Handle(Interface_Check)& /* ach */) const |
203 | { |
204 | } |
205 | |
206 | void IGESDefs_ToolTabularData::OwnDump |
207 | (const Handle(IGESDefs_TabularData)& ent, const IGESData_IGESDumper& /* dumper */, |
208 | const Handle(Message_Messenger)& S, const Standard_Integer level) const |
209 | { |
210 | Standard_Integer nbIndeps = ent->NbIndependents(); //szv#4:S4163:12Mar99 i unused |
211 | Standard_Integer nbDeps = ent->NbDependents(); |
212 | |
213 | S << "IGESDefs_TabularData" << endl; |
214 | S << "No. of property values : " << ent->NbPropertyValues() << endl; |
215 | S << "Property type : " << ent->PropertyType() << endl; |
216 | S << "No. of Dependent variables : " << nbDeps << endl; |
217 | S << "No. of Independent variables : " << nbIndeps << endl; |
218 | S << "Type of independent variables : "; |
219 | IGESData_DumpVals(S ,level,1, nbIndeps,ent->TypeOfIndependents); |
220 | S << endl << "Number of values of independent variables : "; |
221 | IGESData_DumpVals(S ,level,1, nbIndeps,ent->NbValues); |
222 | // ?? JAGGED ?? |
223 | S << endl << "Values of the independent variable : "; |
224 | if (level < 5) S << " [ask level > 4]"; |
225 | else { |
226 | for (Standard_Integer ind = 1; ind <= nbIndeps; ind ++) { |
227 | S << endl << "[" << ind << "]:"; |
228 | Standard_Integer nbi = ent->NbValues(ind); |
229 | for (Standard_Integer iv = 1; iv <= nbi; iv ++) |
230 | S << " " << ent->IndependentValue(ind,iv); |
231 | } |
232 | } |
233 | // IGESData_DumpVals(S ,level,1, nbIndeps,ent->IndependentValue); |
234 | S << endl << "Values of the dependent variable : "; |
235 | // IGESData_DumpVals(S ,level,1, nbDeps,ent->DependentValue); |
236 | S << " TO BE DONE"; |
237 | S << endl; |
238 | } |