Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // Created by: Peter KURNEV
0002 // Copyright (c) 2010-2014 OPEN CASCADE SAS
0003 // Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
0004 // Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
0005 //                         EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
0006 //
0007 // This file is part of Open CASCADE Technology software library.
0008 //
0009 // This library is free software; you can redistribute it and/or modify it under
0010 // the terms of the GNU Lesser General Public License version 2.1 as published
0011 // by the Free Software Foundation, with special exception defined in the file
0012 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0013 // distribution for complete text of the license and disclaimer of any warranty.
0014 //
0015 // Alternatively, this file may be used under the terms of Open CASCADE
0016 // commercial license or contractual agreement.
0017 
0018 #ifndef _BOPDS_FaceInfo_HeaderFile
0019 #define _BOPDS_FaceInfo_HeaderFile
0020 
0021 #include <Standard.hxx>
0022 #include <Standard_DefineAlloc.hxx>
0023 #include <Standard_Handle.hxx>
0024 
0025 #include <BOPDS_IndexedMapOfPaveBlock.hxx>
0026 #include <NCollection_BaseAllocator.hxx>
0027 #include <Standard_Integer.hxx>
0028 #include <TColStd_MapOfInteger.hxx>
0029 
0030 
0031 
0032 //! The class BOPDS_FaceInfo is to store
0033 //! handy information about state of face
0034 class BOPDS_FaceInfo 
0035 {
0036 public:
0037 
0038   DEFINE_STANDARD_ALLOC
0039 
0040   
0041 
0042   //! Empty constructor
0043   BOPDS_FaceInfo();
0044 
0045   virtual ~BOPDS_FaceInfo();
0046 
0047   //! Constructor
0048   //! @param theAllocator the allocator to manage the memory
0049   BOPDS_FaceInfo(const Handle(NCollection_BaseAllocator)& theAllocator);
0050   
0051 
0052   //! Clears the contents
0053   void Clear();
0054   
0055 
0056   //! Modifier
0057   //! Sets the index of the face <theI>
0058     void SetIndex (const Standard_Integer theI);
0059   
0060 
0061   //! Selector
0062   //! Returns the index of the face
0063   //!
0064   //! In
0065     Standard_Integer Index() const;
0066   
0067 
0068   //! Selector
0069   //! Returns the pave blocks of the face
0070   //! that  have state In
0071     const BOPDS_IndexedMapOfPaveBlock& PaveBlocksIn() const;
0072   
0073 
0074   //! Selector/Modifier
0075   //! Returns the pave blocks
0076   //! of the face
0077   //! that  have state In
0078     BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksIn();
0079   
0080 
0081   //! Selector
0082   //! Returns the list of indices for vertices
0083   //! of the face
0084   //! that have state In
0085     const TColStd_MapOfInteger& VerticesIn() const;
0086   
0087 
0088   //! Selector/Modifier
0089   //! Returns the list of indices for vertices
0090   //! of the face
0091   //! that have state In
0092   //!
0093   //! On
0094     TColStd_MapOfInteger& ChangeVerticesIn();
0095   
0096 
0097   //! Selector
0098   //! Returns the pave blocks of the face
0099   //! that  have state On
0100     const BOPDS_IndexedMapOfPaveBlock& PaveBlocksOn() const;
0101   
0102 
0103   //! Selector/Modifier
0104   //! Returns the pave blocks
0105   //! of the face
0106   //! that  have state On
0107     BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksOn();
0108   
0109 
0110   //! Selector
0111   //! Returns the list of indices for vertices
0112   //! of the face
0113   //! that have state On
0114     const TColStd_MapOfInteger& VerticesOn() const;
0115   
0116 
0117   //! Selector/Modifier
0118   //! Returns the list of indices for vertices
0119   //! of the face
0120   //! that have state On
0121   //!
0122   //! Sections
0123     TColStd_MapOfInteger& ChangeVerticesOn();
0124   
0125 
0126   //! Selector
0127   //! Returns the pave blocks of the face
0128   //! that are  pave blocks of section edges
0129     const BOPDS_IndexedMapOfPaveBlock& PaveBlocksSc() const;
0130   
0131     BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksSc();
0132   
0133 
0134   //! Selector
0135   //! Returns the list of indices for section  vertices
0136   //! of the face
0137     const TColStd_MapOfInteger& VerticesSc() const;
0138   
0139 
0140   //! Selector/Modifier
0141   //! Returns the list of indices for section  vertices
0142   //! of the face
0143   //!
0144   //! Others
0145     TColStd_MapOfInteger& ChangeVerticesSc();
0146 
0147 
0148 
0149 
0150 protected:
0151 
0152 
0153 
0154   Handle(NCollection_BaseAllocator) myAllocator;
0155   Standard_Integer myIndex;
0156   BOPDS_IndexedMapOfPaveBlock myPaveBlocksIn;
0157   TColStd_MapOfInteger myVerticesIn;
0158   BOPDS_IndexedMapOfPaveBlock myPaveBlocksOn;
0159   TColStd_MapOfInteger myVerticesOn;
0160   BOPDS_IndexedMapOfPaveBlock myPaveBlocksSc;
0161   TColStd_MapOfInteger myVerticesSc;
0162 
0163 
0164 private:
0165 
0166 
0167 
0168 
0169 
0170 };
0171 
0172 
0173 #include <BOPDS_FaceInfo.lxx>
0174 
0175 
0176 
0177 
0178 
0179 #endif // _BOPDS_FaceInfo_HeaderFile