1 // File: NMTTools_CommonBlockAPI.cxx
2 // Created: Mon Dec 15 11:38:04 2003
3 // Author: Peter KURNEV
7 #include <NMTTools_CommonBlockAPI.ixx>
9 #include <BOPTools_PaveBlock.hxx>
10 #include <BOPTools_ListOfPaveBlock.hxx>
11 #include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
13 #include <NMTTools_CommonBlock.hxx>
14 #include <NMTTools_ListOfCommonBlock.hxx>
15 #include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
17 //=======================================================================
18 // function: NMTTools_CommonBlockAPI::NMTTools_CommonBlockAPI
20 //=======================================================================
21 NMTTools_CommonBlockAPI::NMTTools_CommonBlockAPI (const NMTTools_ListOfCommonBlock& aLCB)
23 myListOfCommonBlock=(void *)&aLCB;
25 //=======================================================================
28 //=======================================================================
29 const NMTTools_ListOfCommonBlock& NMTTools_CommonBlockAPI::List () const
31 NMTTools_ListOfCommonBlock* pListOfCommonBlock=(NMTTools_ListOfCommonBlock*)myListOfCommonBlock;
32 return *pListOfCommonBlock;
34 //=======================================================================
35 // function: CommonPaveBlocks
36 // purpose: get all CommonPaveBlocks
37 //=======================================================================
38 const BOPTools_ListOfPaveBlock& NMTTools_CommonBlockAPI::CommonPaveBlocks(const Standard_Integer anE) const
40 Standard_Integer anECurrent;
41 BOPTools_ListIteratorOfListOfPaveBlock anItPB;
43 BOPTools_ListOfPaveBlock* pmyListOfPaveBlock=(BOPTools_ListOfPaveBlock*) &myListOfPaveBlock;
44 pmyListOfPaveBlock->Clear();
46 NMTTools_ListOfCommonBlock* pListOfCommonBlock=(NMTTools_ListOfCommonBlock*)myListOfCommonBlock;
48 NMTTools_ListIteratorOfListOfCommonBlock anIt(*pListOfCommonBlock);
49 for (; anIt.More(); anIt.Next()) {
50 const NMTTools_CommonBlock& aCB=anIt.Value();
52 const BOPTools_ListOfPaveBlock& aLPB=aCB.PaveBlocks();
53 anItPB.Initialize(aLPB);
54 for (; anItPB.More(); anItPB.Next()) {
55 const BOPTools_PaveBlock& aPB=anItPB.Value();
56 anECurrent=aPB.OriginalEdge();
57 if (anECurrent==anE) {
58 pmyListOfPaveBlock->Append(aPB);
63 return myListOfPaveBlock;
65 //=======================================================================
66 // function: IsCommonBlock
68 //=======================================================================
69 Standard_Boolean NMTTools_CommonBlockAPI::IsCommonBlock(const BOPTools_PaveBlock& aPB) const
73 anE=aPB.OriginalEdge();
75 CommonPaveBlocks(anE);
77 BOPTools_ListIteratorOfListOfPaveBlock anIt(myListOfPaveBlock);
78 for (; anIt.More(); anIt.Next()) {
79 const BOPTools_PaveBlock& aPB1=anIt.Value();
80 if (aPB1.IsEqual(aPB)) {
84 return Standard_False;
87 //=======================================================================
88 // function: CommonBlock
90 //=======================================================================
91 NMTTools_CommonBlock& NMTTools_CommonBlockAPI::CommonBlock(const BOPTools_PaveBlock& aPB)const
93 static NMTTools_CommonBlock aCBTMP;
95 NMTTools_ListIteratorOfListOfCommonBlock anItCB;
96 BOPTools_ListIteratorOfListOfPaveBlock anItPB;
98 NMTTools_ListOfCommonBlock* pLCB=(NMTTools_ListOfCommonBlock*)myListOfCommonBlock;
100 anItCB.Initialize(*pLCB);
101 for (; anItCB.More(); anItCB.Next()) {
102 NMTTools_CommonBlock& aCB=anItCB.Value();
104 const BOPTools_ListOfPaveBlock& aLPB=aCB.PaveBlocks();
105 anItPB.Initialize(aLPB);
106 for (; anItPB.More(); anItPB.Next()) {
107 const BOPTools_PaveBlock& aPBx=anItPB.Value();
108 if (aPBx.IsEqual(aPB)) {