Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-15 09:14:57

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 <NCollection_IndexedMap.hxx>
0026 #include <BOPDS_PaveBlock.hxx>
0027 #include <NCollection_BaseAllocator.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <NCollection_Map.hxx>
0030 
0031 //! The class BOPDS_FaceInfo is to store
0032 //! handy information about state of face
0033 class BOPDS_FaceInfo
0034 {
0035 public:
0036   DEFINE_STANDARD_ALLOC
0037 
0038   //! Empty constructor
0039   BOPDS_FaceInfo();
0040 
0041   virtual ~BOPDS_FaceInfo();
0042 
0043   //! Constructor
0044   //! @param theAllocator the allocator to manage the memory
0045   BOPDS_FaceInfo(const occ::handle<NCollection_BaseAllocator>& theAllocator);
0046 
0047   //! Clears the contents
0048   void Clear();
0049 
0050   //! Modifier
0051   //! Sets the index of the face <theI>
0052   void SetIndex(const int theI);
0053 
0054   //! Selector
0055   //! Returns the index of the face
0056   //!
0057   //! In
0058   int Index() const;
0059 
0060   //! Selector
0061   //! Returns the pave blocks of the face
0062   //! that have state In
0063   const NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>>& PaveBlocksIn() const;
0064 
0065   //! Selector/Modifier
0066   //! Returns the pave blocks
0067   //! of the face
0068   //! that have state In
0069   NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>>& ChangePaveBlocksIn();
0070 
0071   //! Selector
0072   //! Returns the list of indices for vertices
0073   //! of the face
0074   //! that have state In
0075   const NCollection_Map<int>& VerticesIn() const;
0076 
0077   //! Selector/Modifier
0078   //! Returns the list of indices for vertices
0079   //! of the face
0080   //! that have state In
0081   //!
0082   //! On
0083   NCollection_Map<int>& ChangeVerticesIn();
0084 
0085   //! Selector
0086   //! Returns the pave blocks of the face
0087   //! that have state On
0088   const NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>>& PaveBlocksOn() const;
0089 
0090   //! Selector/Modifier
0091   //! Returns the pave blocks
0092   //! of the face
0093   //! that have state On
0094   NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>>& ChangePaveBlocksOn();
0095 
0096   //! Selector
0097   //! Returns the list of indices for vertices
0098   //! of the face
0099   //! that have state On
0100   const NCollection_Map<int>& VerticesOn() const;
0101 
0102   //! Selector/Modifier
0103   //! Returns the list of indices for vertices
0104   //! of the face
0105   //! that have state On
0106   //!
0107   //! Sections
0108   NCollection_Map<int>& ChangeVerticesOn();
0109 
0110   //! Selector
0111   //! Returns the pave blocks of the face
0112   //! that are pave blocks of section edges
0113   const NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>>& PaveBlocksSc() const;
0114 
0115   NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>>& ChangePaveBlocksSc();
0116 
0117   //! Selector
0118   //! Returns the list of indices for section vertices
0119   //! of the face
0120   const NCollection_Map<int>& VerticesSc() const;
0121 
0122   //! Selector/Modifier
0123   //! Returns the list of indices for section vertices
0124   //! of the face
0125   //!
0126   //! Others
0127   NCollection_Map<int>& ChangeVerticesSc();
0128 
0129 protected:
0130   occ::handle<NCollection_BaseAllocator>               myAllocator;
0131   int                                                  myIndex;
0132   NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>> myPaveBlocksIn;
0133   NCollection_Map<int>                                 myVerticesIn;
0134   NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>> myPaveBlocksOn;
0135   NCollection_Map<int>                                 myVerticesOn;
0136   NCollection_IndexedMap<occ::handle<BOPDS_PaveBlock>> myPaveBlocksSc;
0137   NCollection_Map<int>                                 myVerticesSc;
0138 };
0139 
0140 #include <BOPDS_FaceInfo.lxx>
0141 
0142 #endif // _BOPDS_FaceInfo_HeaderFile