File indexing completed on 2026-09-25 09:19:05
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _BOPDS_SubIterator_HeaderFile
0016 #define _BOPDS_SubIterator_HeaderFile
0017
0018 #include <Standard.hxx>
0019 #include <Standard_DefineAlloc.hxx>
0020 #include <Standard_Handle.hxx>
0021
0022 #include <BOPDS_PDS.hxx>
0023 #include <NCollection_DynamicArray.hxx>
0024 #include <BOPDS_Pair.hxx>
0025 #include <NCollection_BaseAllocator.hxx>
0026 #include <Standard_Integer.hxx>
0027 #include <NCollection_List.hxx>
0028
0029
0030
0031
0032
0033
0034 class BOPDS_SubIterator
0035 {
0036 public:
0037 DEFINE_STANDARD_ALLOC
0038
0039
0040 Standard_EXPORT BOPDS_SubIterator();
0041 Standard_EXPORT virtual ~BOPDS_SubIterator();
0042
0043
0044
0045 Standard_EXPORT BOPDS_SubIterator(const occ::handle<NCollection_BaseAllocator>& theAllocator);
0046
0047
0048
0049 void SetDS(const BOPDS_PDS& pDS) { myDS = pDS; }
0050
0051
0052 const BOPDS_DS& DS() const { return *myDS; }
0053
0054
0055 void SetSubSet1(const NCollection_List<int>& theLI)
0056 {
0057 mySubSet1 = (NCollection_List<int>*)&theLI;
0058 }
0059
0060
0061 const NCollection_List<int>& SubSet1() const { return *mySubSet1; }
0062
0063
0064 void SetSubSet2(const NCollection_List<int>& theLI)
0065 {
0066 mySubSet2 = (NCollection_List<int>*)&theLI;
0067 }
0068
0069
0070 const NCollection_List<int>& SubSet2() const { return *mySubSet2; }
0071
0072
0073 Standard_EXPORT void Initialize();
0074
0075
0076 bool More() const { return myIterator.More(); }
0077
0078
0079 void Next() { myIterator.Next(); }
0080
0081
0082
0083
0084 Standard_EXPORT void Value(int& theIndex1, int& theIndex2) const;
0085
0086
0087
0088 Standard_EXPORT virtual void Prepare();
0089
0090
0091 int ExpectedLength() const { return myList.Length(); }
0092
0093 protected:
0094
0095 Standard_EXPORT virtual void Intersect();
0096
0097 occ::handle<NCollection_BaseAllocator> myAllocator;
0098 BOPDS_PDS myDS;
0099 NCollection_DynamicArray<BOPDS_Pair> myList;
0100 NCollection_DynamicArray<BOPDS_Pair>::Iterator myIterator;
0101 NCollection_List<int>* mySubSet1;
0102 NCollection_List<int>* mySubSet2;
0103 };
0104
0105 #endif