Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:04:14

0001 // Created on: 1992-09-22
0002 // Created by: Gilles DEBARBOUILLE
0003 // Copyright (c) 1992-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 #ifndef _MAT_ListOfEdge_HeaderFile
0018 #define _MAT_ListOfEdge_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022 
0023 #include <Standard_Integer.hxx>
0024 #include <Standard_Transient.hxx>
0025 class MAT_TListNodeOfListOfEdge;
0026 class MAT_Edge;
0027 
0028 
0029 class MAT_ListOfEdge;
0030 DEFINE_STANDARD_HANDLE(MAT_ListOfEdge, Standard_Transient)
0031 
0032 
0033 class MAT_ListOfEdge : public Standard_Transient
0034 {
0035 
0036 public:
0037 
0038   Standard_EXPORT MAT_ListOfEdge();
0039 
0040   Standard_EXPORT ~MAT_ListOfEdge();
0041   
0042   Standard_EXPORT void First();
0043   
0044   Standard_EXPORT void Last();
0045   
0046   Standard_EXPORT void Init (const Handle(MAT_Edge)& aniten);
0047   
0048   Standard_EXPORT void Next();
0049   
0050   Standard_EXPORT void Previous();
0051   
0052   Standard_EXPORT Standard_Boolean More() const;
0053   
0054   Standard_EXPORT Handle(MAT_Edge) Current() const;
0055   
0056   Standard_EXPORT void Current (const Handle(MAT_Edge)& anitem) const;
0057   
0058   Standard_EXPORT Handle(MAT_Edge) FirstItem() const;
0059   
0060   Standard_EXPORT Handle(MAT_Edge) LastItem() const;
0061   
0062   Standard_EXPORT Handle(MAT_Edge) PreviousItem() const;
0063   
0064   Standard_EXPORT Handle(MAT_Edge) NextItem() const;
0065   
0066     Standard_Integer Number() const;
0067   
0068     Standard_Integer Index() const;
0069   
0070   Standard_EXPORT Handle(MAT_Edge) Brackets (const Standard_Integer anindex);
0071 Handle(MAT_Edge) operator() (const Standard_Integer anindex)
0072 {
0073   return Brackets(anindex);
0074 }
0075   
0076   Standard_EXPORT void Unlink();
0077   
0078   Standard_EXPORT void LinkBefore (const Handle(MAT_Edge)& anitem);
0079   
0080   Standard_EXPORT void LinkAfter (const Handle(MAT_Edge)& anitem);
0081   
0082   Standard_EXPORT void FrontAdd (const Handle(MAT_Edge)& anitem);
0083   
0084   Standard_EXPORT void BackAdd (const Handle(MAT_Edge)& anitem);
0085   
0086   Standard_EXPORT void Permute();
0087   
0088   Standard_EXPORT void Loop() const;
0089   
0090   Standard_Boolean IsEmpty() const;
0091   
0092   Standard_EXPORT void Dump (const Standard_Integer ashift, const Standard_Integer alevel);
0093 
0094 
0095 
0096 
0097   DEFINE_STANDARD_RTTI_INLINE(MAT_ListOfEdge,Standard_Transient)
0098 
0099 protected:
0100 
0101 
0102 
0103 
0104 private:
0105 
0106 
0107   Handle(MAT_TListNodeOfListOfEdge) thefirstnode;
0108   Handle(MAT_TListNodeOfListOfEdge) thelastnode;
0109   Handle(MAT_TListNodeOfListOfEdge) thecurrentnode;
0110   Standard_Integer thecurrentindex;
0111   Standard_Integer thenumberofitems;
0112 
0113 
0114 };
0115 
0116 #define Item Handle(MAT_Edge)
0117 #define Item_hxx <MAT_Edge.hxx>
0118 #define MAT_TListNode MAT_TListNodeOfListOfEdge
0119 #define MAT_TListNode_hxx <MAT_TListNodeOfListOfEdge.hxx>
0120 #define Handle_MAT_TListNode Handle(MAT_TListNodeOfListOfEdge)
0121 #define MAT_TList MAT_ListOfEdge
0122 #define MAT_TList_hxx <MAT_ListOfEdge.hxx>
0123 #define Handle_MAT_TList Handle(MAT_ListOfEdge)
0124 
0125 #include <MAT_TList.lxx>
0126 
0127 #undef Item
0128 #undef Item_hxx
0129 #undef MAT_TListNode
0130 #undef MAT_TListNode_hxx
0131 #undef Handle_MAT_TListNode
0132 #undef MAT_TList
0133 #undef MAT_TList_hxx
0134 #undef Handle_MAT_TList
0135 
0136 
0137 
0138 
0139 #endif // _MAT_ListOfEdge_HeaderFile