Integration of OCCT 6.5.0 from SVN
[occt.git] / src / IGESDefs / IGESDefs_AssociativityDef.cxx
1 //--------------------------------------------------------------------
2 //
3 //  File Name : IGESDefs_AssociativityDef.cxx
4 //  Date      :
5 //  Author    : CKY / Contract Toubro-Larsen
6 //  Copyright : MATRA-DATAVISION 1993
7 //
8 //--------------------------------------------------------------------
9
10 #include <IGESDefs_AssociativityDef.ixx>
11
12
13     IGESDefs_AssociativityDef::IGESDefs_AssociativityDef ()    {  }
14
15
16     void  IGESDefs_AssociativityDef::Init
17   (const Handle(TColStd_HArray1OfInteger)& requirements,
18    const Handle(TColStd_HArray1OfInteger)& orders,
19    const Handle(TColStd_HArray1OfInteger)& numItems,
20    const Handle(IGESBasic_HArray1OfHArray1OfInteger)& items)
21 {
22   Standard_Integer len = requirements->Length();
23   if ( requirements->Lower() != 1 ||
24       (orders->Lower()       != 1 || orders->Length()   != len) ||
25       (numItems->Lower()     != 1 || numItems->Length() != len) ||
26       (items->Lower()        != 1 || items->Length()    != len) )
27     Standard_DimensionMismatch::Raise("IGESDefs_AssociativityDef : Init");
28
29   theBackPointerReqs = requirements;
30   theClassOrders     = orders;
31   theNbItemsPerClass = numItems;
32   theItems           = items;
33   InitTypeAndForm(302,FormNumber());
34 //  FormNumber is free over 5000
35 }
36
37     void IGESDefs_AssociativityDef::SetFormNumber (const Standard_Integer form)
38 {
39   InitTypeAndForm(302,form);
40 }
41
42     Standard_Integer  IGESDefs_AssociativityDef::NbClassDefs () const 
43 {
44   return theBackPointerReqs->Length();
45 }
46
47     Standard_Boolean  IGESDefs_AssociativityDef::IsBackPointerReq
48   (const Standard_Integer ClassNum) const 
49 {
50   return (theBackPointerReqs->Value(ClassNum) == 1);
51 //  1 True  2 False
52 }
53
54     Standard_Integer  IGESDefs_AssociativityDef::BackPointerReq
55   (const Standard_Integer ClassNum) const 
56 {
57   return theBackPointerReqs->Value(ClassNum);
58 }
59
60     Standard_Boolean  IGESDefs_AssociativityDef::IsOrdered
61   (const Standard_Integer ClassNum) const 
62 {
63   return (theClassOrders->Value(ClassNum) == 1);
64 //  1 True  2 False
65 }
66
67     Standard_Integer  IGESDefs_AssociativityDef::ClassOrder
68   (const Standard_Integer ClassNum) const 
69 {
70   return theClassOrders->Value(ClassNum);
71 }
72
73     Standard_Integer  IGESDefs_AssociativityDef::NbItemsPerClass
74   (const Standard_Integer ClassNum) const 
75 {
76   return theNbItemsPerClass->Value(ClassNum);
77 }
78
79     Standard_Integer  IGESDefs_AssociativityDef::Item
80   (const Standard_Integer ClassNum, const Standard_Integer ItemNum) const 
81 {
82   return theItems->Value(ClassNum)->Value(ItemNum);
83 }