|
|
|||
File indexing completed on 2026-09-28 09:19:37
0001 // Copyright (c) 2026 OPEN CASCADE SAS 0002 // 0003 // This file is part of Open CASCADE Technology software library. 0004 // 0005 // This library is free software; you can redistribute it and/or modify it under 0006 // the terms of the GNU Lesser General Public License version 2.1 as published 0007 // by the Free Software Foundation, with special exception defined in the file 0008 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0009 // distribution for complete text of the license and disclaimer of any warranty. 0010 // 0011 // Alternatively, this file may be used under the terms of Open CASCADE 0012 // commercial license or contractual agreement. 0013 0014 #ifndef _BRepGraphInc_Relations_HeaderFile 0015 #define _BRepGraphInc_Relations_HeaderFile 0016 0017 #include <BRepGraph_NodeId.hxx> 0018 #include <BRepGraph_RefId.hxx> 0019 #include <NCollection_LinearVector.hxx> 0020 0021 //! @brief Centralized topology relation representations for BRepGraph incidence storage. 0022 //! 0023 //! Relation structs hold ordered child-use lists and incoming incidence indexes 0024 //! outside definition records. Definitions stay focused on intrinsic geometry 0025 //! and flags; reusable child/parent edges live in reference records or coedge 0026 //! use records. 0027 namespace BRepGraphInc 0028 { 0029 0030 //! @brief Topology relations for face definitions. 0031 struct FaceRelations 0032 { 0033 NCollection_LinearVector<BRepGraph_WireRefId> WireRefIds; //!< Wire references owned by this face 0034 NCollection_LinearVector<BRepGraph_FaceRefId> 0035 ParentFaceRefIds; //!< Upstream face references (compound hierarchy) 0036 }; 0037 0038 //! @brief Topology relations for wire definitions. 0039 struct WireRelations 0040 { 0041 NCollection_LinearVector<BRepGraph_CoEdgeId> CoEdgeIds; //!< Coedge identifiers in this wire 0042 NCollection_LinearVector<BRepGraph_WireRefId> ParentWireRefIds; //!< Upstream wire references 0043 }; 0044 0045 //! @brief Topology relations for edge definitions. 0046 struct EdgeRelations 0047 { 0048 NCollection_LinearVector<BRepGraph_CoEdgeId> CoEdgeIds; //!< Coedge identifiers using this edge 0049 }; 0050 0051 //! @brief Topology relations for shell definitions. 0052 struct ShellRelations 0053 { 0054 NCollection_LinearVector<BRepGraph_FaceRefId> FaceRefIds; //!< Face references in this shell 0055 NCollection_LinearVector<BRepGraph_ShellRefId> ParentShellRefIds; //!< Upstream shell references 0056 }; 0057 0058 //! @brief Topology relations for solid definitions. 0059 struct SolidRelations 0060 { 0061 NCollection_LinearVector<BRepGraph_ShellRefId> ShellRefIds; //!< Shell references in this solid 0062 NCollection_LinearVector<BRepGraph_SolidRefId> ParentSolidRefIds; //!< Upstream solid references 0063 }; 0064 0065 //! @brief Topology relations for compound definitions. 0066 struct CompoundRelations 0067 { 0068 NCollection_LinearVector<BRepGraph_ChildRefId> ChildRefIds; //!< Child references in this compound 0069 }; 0070 0071 //! @brief Topology relations for compsolid definitions. 0072 struct CompSolidRelations 0073 { 0074 NCollection_LinearVector<BRepGraph_SolidRefId> 0075 SolidRefIds; //!< Solid references in this compsolid 0076 }; 0077 0078 //! @brief Topology relations for vertex definitions. 0079 struct VertexRelations 0080 { 0081 NCollection_LinearVector<BRepGraph_EdgeId> EdgeIds; //!< Edge identifiers sharing this vertex 0082 }; 0083 0084 //! @brief Topology relations for product definitions. 0085 struct ProductRelations 0086 { 0087 NCollection_LinearVector<BRepGraph_OccurrenceRefId> 0088 OccurrenceRefIds; //!< Occurrence references under this product 0089 }; 0090 0091 //! @brief Topology relations for occurrence definitions. 0092 struct OccurrenceRelations 0093 { 0094 NCollection_LinearVector<BRepGraph_OccurrenceRefId> 0095 ParentOccurrenceRefIds; //!< Upstream occurrence references 0096 }; 0097 0098 } // namespace BRepGraphInc 0099 0100 #endif // _BRepGraphInc_Relations_HeaderFile
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|