Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _NMTDS_Iterator_HeaderFile
00024 #define _NMTDS_Iterator_HeaderFile
00025
00026 #ifndef _NMTDS_PShapesDataStructure_HeaderFile
00027 #include <NMTDS_PShapesDataStructure.hxx>
00028 #endif
00029 #ifndef _NMTDS_ListOfPassKeyBoolean_HeaderFile
00030 #include <NMTDS_ListOfPassKeyBoolean.hxx>
00031 #endif
00032 #ifndef _NMTDS_ListIteratorOfListOfPassKeyBoolean_HeaderFile
00033 #include <NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx>
00034 #endif
00035 #ifndef _Standard_Integer_HeaderFile
00036 #include <Standard_Integer.hxx>
00037 #endif
00038 #ifndef _TColStd_DataMapOfIntegerListOfInteger_HeaderFile
00039 #include <TColStd_DataMapOfIntegerListOfInteger.hxx>
00040 #endif
00041 #ifndef _TopAbs_ShapeEnum_HeaderFile
00042 #include <TopAbs_ShapeEnum.hxx>
00043 #endif
00044 #ifndef _Standard_Boolean_HeaderFile
00045 #include <Standard_Boolean.hxx>
00046 #endif
00047 class NMTDS_ShapesDataStructure;
00048 class TColStd_DataMapOfIntegerListOfInteger;
00049
00050
00051 #ifndef _Standard_HeaderFile
00052 #include <Standard.hxx>
00053 #endif
00054 #ifndef _Standard_Macro_HeaderFile
00055 #include <Standard_Macro.hxx>
00056 #endif
00057
00058
00059 class NMTDS_Iterator {
00060
00061 public:
00062
00063 void* operator new(size_t,void* anAddress)
00064 {
00065 return anAddress;
00066 }
00067 void* operator new(size_t size)
00068 {
00069 return Standard::Allocate(size);
00070 }
00071 void operator delete(void *anAddress)
00072 {
00073 if (anAddress) Standard::Free((Standard_Address&)anAddress);
00074 }
00075
00076
00077
00078
00079 Standard_EXPORT NMTDS_Iterator();
00080 Standard_EXPORT virtual ~NMTDS_Iterator();
00081
00082
00083 Standard_EXPORT void SetDS(const NMTDS_PShapesDataStructure& pDS) ;
00084
00085
00086 Standard_EXPORT const NMTDS_ShapesDataStructure& DS() const;
00087
00088
00089 Standard_EXPORT void Initialize(const TopAbs_ShapeEnum aType1,const TopAbs_ShapeEnum aType2) ;
00090
00091
00092 Standard_EXPORT Standard_Boolean More() const;
00093
00094
00095 Standard_EXPORT void Next() ;
00096
00097
00098 Standard_EXPORT void Current(Standard_Integer& aIndex1,Standard_Integer& aIndex2,Standard_Boolean& aWithSubShape) const;
00099
00100
00101 Standard_EXPORT virtual void Prepare() ;
00102
00103
00104 Standard_EXPORT Standard_Integer ExpectedLength() const;
00105
00106
00107 Standard_EXPORT Standard_Integer BlockLength() const;
00108
00109
00110 Standard_EXPORT const TColStd_DataMapOfIntegerListOfInteger& SDVertices() const;
00111
00112
00113 Standard_EXPORT static void FillMVSD(const TColStd_DataMapOfIntegerListOfInteger& aMVSD1,TColStd_DataMapOfIntegerListOfInteger& aMVSD2) ;
00114
00115
00116
00117
00118
00119 protected:
00120
00121
00122
00123
00124
00125 Standard_EXPORT virtual void Intersect() ;
00126
00127
00128
00129
00130 NMTDS_PShapesDataStructure myDS;
00131 NMTDS_ListOfPassKeyBoolean myLists[6];
00132 NMTDS_ListIteratorOfListOfPassKeyBoolean myIterator;
00133 NMTDS_ListOfPassKeyBoolean myEmptyList;
00134 Standard_Integer myLength;
00135 TColStd_DataMapOfIntegerListOfInteger myMVSD;
00136
00137
00138 private:
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148 };
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158 #endif