1 // File: PDataStd_NamedData.cxx
2 // Created: Wed Jun 27 12:16:21 2007
3 // Author: Sergey ZARITCHNY
4 // <sergey.zaritchny@opencascade.com>
5 // Copyright: Open CASCADE SA 2007
7 #include <PDataStd_NamedData.ixx>
9 //=======================================================================
10 //function : PDataStd_NamedData
12 //=======================================================================
13 PDataStd_NamedData::PDataStd_NamedData() { }
15 //=======================================================================
18 //=======================================================================
19 void PDataStd_NamedData::Init(const Handle(TColStd_HArray2OfInteger)& theDim)
21 if(theDim.IsNull()) return;
22 if(theDim->RowLength() > 0 && (theDim->UpperRow() - theDim->LowerRow() + 1) == ROW_NUMBER ) {
23 myDimensions = new PColStd_HArray2OfInteger(theDim->LowerRow(),theDim->UpperRow(),theDim->LowerCol(),theDim->UpperCol(), 0);
24 Standard_Integer i, j = theDim->LowerCol();
26 for(i = theDim->LowerRow();i<=theDim->UpperRow(); i++) {
27 myDimensions->SetValue(i,j, theDim->Value(i,j));
28 myDimensions->SetValue(i,j+1, theDim->Value(i,j+1));
31 i = theDim->LowerRow();
33 Standard_Integer aSize = theDim->Value(i,j+1) - theDim->Value(i,j);
34 if(aSize>=0 && (theDim->Value(i,j) | theDim->Value(i,j+1))) {
35 myIntKeys = new PColStd_HArray1OfExtendedString (theDim->Value(i,j), theDim->Value(i,j+1));
36 myIntValues = new PColStd_HArray1OfInteger(theDim->Value(i,j), theDim->Value(i,j+1));
40 aSize = theDim->Value(i,j+1) - theDim->Value(i,j);
41 if(aSize>=0 && (theDim->Value(i,j) | theDim->Value(i,j+1))) {
42 myRealKeys = new PColStd_HArray1OfExtendedString (theDim->Value(i,j), theDim->Value(i,j+1));
43 myRealValues = new PColStd_HArray1OfReal(theDim->Value(i,j), theDim->Value(i,j+1));
47 aSize = theDim->Value(i,j+1) - theDim->Value(i,j);
48 if(aSize>=0 && (theDim->Value(i,j) | theDim->Value(i,j+1))) {
49 myStrKeys = new PColStd_HArray1OfExtendedString (theDim->Value(i,j), theDim->Value(i,j+1));
50 myStrValues = new PColStd_HArray1OfExtendedString (theDim->Value(i,j), theDim->Value(i,j+1));
55 aSize = theDim->Value(i,j+1) - theDim->Value(i,j);
56 if(aSize>=0 && (theDim->Value(i,j) | theDim->Value(i,j+1))) {
57 myByteKeys = new PColStd_HArray1OfExtendedString (theDim->Value(i,j), theDim->Value(i,j+1));
58 myByteValues = new PDataStd_HArray1OfByte(theDim->Value(i,j), theDim->Value(i,j+1));
63 aSize = theDim->Value(i,j+1) - theDim->Value(i,j);
64 if(aSize>=0 && (theDim->Value(i,j) | theDim->Value(i,j+1))) {
65 myArrIntKeys = new PColStd_HArray1OfExtendedString (theDim->Value(i,j), theDim->Value(i,j+1));
66 myArrIntValues = new PDataStd_HArray1OfHArray1OfInteger(theDim->Value(i,j), theDim->Value(i,j+1));
71 aSize = theDim->Value(i,j+1) - theDim->Value(i,j);
72 if(aSize>=0 && (theDim->Value(i,j) | theDim->Value(i,j+1))) {
73 myArrRealKeys = new PColStd_HArray1OfExtendedString (theDim->Value(i,j), theDim->Value(i,j+1));
74 myArrRealValues = new PDataStd_HArray1OfHArray1OfReal(theDim->Value(i,j), theDim->Value(i,j+1));
80 //=======================================================================
83 //=======================================================================
84 Standard_Integer PDataStd_NamedData::LowerI() const
86 return myDimensions->Value(myDimensions->LowerRow(),myDimensions->LowerCol());
89 //=======================================================================
92 //=======================================================================
93 Standard_Integer PDataStd_NamedData::UpperI() const
95 return myDimensions->Value(myDimensions->LowerRow(),myDimensions->UpperCol());
98 //=======================================================================
101 //=======================================================================
102 Standard_Integer PDataStd_NamedData::LowerR() const
104 return myDimensions->Value(myDimensions->LowerRow()+1,myDimensions->LowerCol());
107 //=======================================================================
110 //=======================================================================
111 Standard_Integer PDataStd_NamedData::UpperR() const
113 return myDimensions->Value(myDimensions->LowerRow()+1,myDimensions->UpperCol());
116 //=======================================================================
119 //=======================================================================
120 Standard_Integer PDataStd_NamedData::LowerS() const
122 return myDimensions->Value(myDimensions->LowerRow()+2,myDimensions->LowerCol());
125 //=======================================================================
128 //=======================================================================
129 Standard_Integer PDataStd_NamedData::UpperS() const
131 return myDimensions->Value(myDimensions->LowerRow()+2,myDimensions->UpperCol());
134 //=======================================================================
137 //=======================================================================
138 Standard_Integer PDataStd_NamedData::LowerB() const
140 return myDimensions->Value(myDimensions->LowerRow()+3,myDimensions->LowerCol());
143 //=======================================================================
146 //=======================================================================
147 Standard_Integer PDataStd_NamedData::UpperB() const
149 return myDimensions->Value(myDimensions->LowerRow()+3,myDimensions->UpperCol());
152 //=======================================================================
155 //=======================================================================
156 Standard_Integer PDataStd_NamedData::LowerAI() const
158 return myDimensions->Value(myDimensions->LowerRow()+4,myDimensions->LowerCol());
161 //=======================================================================
164 //=======================================================================
165 Standard_Integer PDataStd_NamedData::UpperAI() const
167 return myDimensions->Value(myDimensions->LowerRow()+4,myDimensions->UpperCol());
170 //=======================================================================
173 //=======================================================================
174 Standard_Integer PDataStd_NamedData::LowerAR() const
176 return myDimensions->Value(myDimensions->LowerRow()+5,myDimensions->LowerCol());
179 //=======================================================================
182 //=======================================================================
183 Standard_Integer PDataStd_NamedData::UpperAR() const
185 return myDimensions->Value(myDimensions->LowerRow()+5,myDimensions->UpperCol());
189 //=======================================================================
190 //function : SetIntDataItem
192 //=======================================================================
193 void PDataStd_NamedData::SetIntDataItem(const Standard_Integer index,
194 const Handle(PCollection_HExtendedString)& key,
195 const Standard_Integer value)
197 if(myIntKeys.IsNull() || myIntValues.IsNull()) return;
198 myIntKeys->SetValue(index, key);
199 myIntValues->SetValue(index, value);
202 //=======================================================================
203 //function : IntDataItemValue
205 //=======================================================================
206 Standard_Integer PDataStd_NamedData::IntDataItemValue(const Standard_Integer index,
207 Handle(PCollection_HExtendedString)& key) const
209 if(myIntKeys.IsNull() || myIntValues.IsNull()) return 0;
210 key = myIntKeys->Value(index);
211 return myIntValues->Value(index);
214 //=======================================================================
215 //function : SetRealDataItem
217 //=======================================================================
218 void PDataStd_NamedData::SetRealDataItem(const Standard_Integer index,
219 const Handle(PCollection_HExtendedString)& key,
220 const Standard_Real value)
222 if(myRealKeys.IsNull() || myRealValues.IsNull()) return;
223 myRealKeys->SetValue(index, key);
224 myRealValues->SetValue(index, value);
227 //=======================================================================
228 //function : RealDataItemValue
230 //=======================================================================
231 Standard_Real PDataStd_NamedData::RealDataItemValue(const Standard_Integer index,
232 Handle(PCollection_HExtendedString)& key) const
234 if(myRealKeys.IsNull() || myRealValues.IsNull()) return 0.;
235 key = myRealKeys->Value(index);
236 return myRealValues->Value(index);
239 //=======================================================================
240 //function : SetStrDataItem
242 //=======================================================================
243 void PDataStd_NamedData::SetStrDataItem(const Standard_Integer index,
244 const Handle(PCollection_HExtendedString)& key,
245 const Handle(PCollection_HExtendedString)& value)
247 if(myStrKeys.IsNull() || myStrValues.IsNull()) return;
248 myStrKeys->SetValue(index, key);
249 myStrValues->SetValue(index, value);
252 //=======================================================================
253 //function : StrDataItemValue
255 //=======================================================================
256 Handle(PCollection_HExtendedString) PDataStd_NamedData::StrDataItemValue
257 (const Standard_Integer index,
258 Handle(PCollection_HExtendedString)& key) const
260 Handle(PCollection_HExtendedString) aVal;
261 if(myStrKeys.IsNull() || myStrValues.IsNull()) return aVal;
262 key = myStrKeys->Value(index);
263 return myStrValues->Value(index);
266 //=======================================================================
267 //function : SetByteDataItem
269 //=======================================================================
270 void PDataStd_NamedData::SetByteDataItem(const Standard_Integer index,
271 const Handle(PCollection_HExtendedString)& key,
272 const Standard_Byte value)
274 if(myByteKeys.IsNull() || myByteValues.IsNull()) return;
275 myByteKeys->SetValue(index, key);
276 myByteValues->SetValue(index, value);
279 //=======================================================================
280 //function : ByteDataItemValue
282 //=======================================================================
283 Standard_Byte PDataStd_NamedData::ByteDataItemValue(const Standard_Integer index,
284 Handle(PCollection_HExtendedString)& key) const
286 if(myByteKeys.IsNull() || myByteValues.IsNull()) return 0x00;
287 key = myByteKeys->Value(index);
288 return myByteValues->Value(index);
291 //=======================================================================
292 //function : SetArrIntDataItem
294 //=======================================================================
295 void PDataStd_NamedData::SetArrIntDataItem(const Standard_Integer index,
296 const Handle(PCollection_HExtendedString)& key,
297 const Handle(PColStd_HArray1OfInteger)& value)
299 if(myArrIntKeys.IsNull() || myArrIntValues.IsNull()) return;
300 myArrIntKeys->SetValue(index, key);
301 myArrIntValues->SetValue(index, value);
304 //=======================================================================
305 //function : ArrIntDataItemValue
307 //=======================================================================
308 Handle(PColStd_HArray1OfInteger) PDataStd_NamedData::ArrIntDataItemValue
309 (const Standard_Integer index,
310 Handle(PCollection_HExtendedString)& key) const
312 Handle(PColStd_HArray1OfInteger) aVal;
313 if(myArrIntKeys.IsNull() || myArrIntValues.IsNull()) return aVal;
314 key = myArrIntKeys->Value(index);
315 return myArrIntValues->Value(index);
318 //=======================================================================
319 //function : SetArrRealDataItem
321 //=======================================================================
322 void PDataStd_NamedData::SetArrRealDataItem(const Standard_Integer index,
323 const Handle(PCollection_HExtendedString)& key,
324 const Handle(PColStd_HArray1OfReal)& value)
326 if(myArrRealKeys.IsNull() || myArrRealValues.IsNull()) return;
327 myArrRealKeys->SetValue(index, key);
328 myArrRealValues->SetValue(index, value);
331 //=======================================================================
332 //function : ArrRealDataItemValue
334 //=======================================================================
335 Handle(PColStd_HArray1OfReal) PDataStd_NamedData::ArrRealDataItemValue
336 (const Standard_Integer index,
337 Handle(PCollection_HExtendedString)& key) const
339 Handle(PColStd_HArray1OfReal) aVal;
340 if(myArrRealKeys.IsNull() || myArrRealValues.IsNull()) return aVal;
341 key = myArrRealKeys->Value(index);
342 return myArrRealValues->Value(index);
345 //=======================================================================
346 //function : HasIntegers
348 //=======================================================================
349 Standard_Boolean PDataStd_NamedData::HasIntegers() const
351 return !myIntKeys.IsNull();
353 //=======================================================================
354 //function : HasReals
356 //=======================================================================
357 Standard_Boolean PDataStd_NamedData::HasReals() const
359 return !myRealKeys.IsNull();
362 //=======================================================================
363 //function : HasStrings
365 //=======================================================================
366 Standard_Boolean PDataStd_NamedData::HasStrings() const
368 return !myStrKeys.IsNull();
371 //=======================================================================
372 //function : HasBytes
374 //=======================================================================
375 Standard_Boolean PDataStd_NamedData::HasBytes() const
377 return !myByteKeys.IsNull();
380 //=======================================================================
381 //function : HasArraysOfIntegers
383 //=======================================================================
384 Standard_Boolean PDataStd_NamedData::HasArraysOfIntegers() const
386 return !myArrIntKeys.IsNull();
389 //=======================================================================
390 //function : HasArraysOfReals
392 //=======================================================================
393 Standard_Boolean PDataStd_NamedData::HasArraysOfReals() const
395 return !myArrRealKeys.IsNull();