File indexing completed on 2026-09-08 09:16:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _MAT_Graph_HeaderFile
0018 #define _MAT_Graph_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <MAT_DataMapOfIntegerArc.hxx>
0024 #include <MAT_DataMapOfIntegerBasicElt.hxx>
0025 #include <MAT_DataMapOfIntegerNode.hxx>
0026 #include <Standard_Integer.hxx>
0027 #include <Standard_Transient.hxx>
0028 class MAT_ListOfBisector;
0029 class MAT_Arc;
0030 class MAT_BasicElt;
0031 class MAT_Node;
0032
0033 class MAT_Graph;
0034 DEFINE_STANDARD_HANDLE(MAT_Graph, Standard_Transient)
0035
0036
0037
0038 class MAT_Graph : public Standard_Transient
0039 {
0040
0041 public:
0042
0043 Standard_EXPORT MAT_Graph();
0044
0045
0046
0047
0048
0049
0050
0051
0052 Standard_EXPORT void Perform(const Standard_Boolean SemiInfinite,
0053 const Handle(MAT_ListOfBisector)& TheRoots,
0054 const Standard_Integer NbBasicElts,
0055 const Standard_Integer NbArcs);
0056
0057
0058 Standard_EXPORT Handle(MAT_Arc) Arc(const Standard_Integer Index) const;
0059
0060
0061 Standard_EXPORT Handle(MAT_BasicElt) BasicElt(const Standard_Integer Index) const;
0062
0063
0064 Standard_EXPORT Handle(MAT_Node) Node(const Standard_Integer Index) const;
0065
0066
0067 Standard_EXPORT Standard_Integer NumberOfArcs() const;
0068
0069
0070 Standard_EXPORT Standard_Integer NumberOfNodes() const;
0071
0072
0073 Standard_EXPORT Standard_Integer NumberOfBasicElts() const;
0074
0075
0076 Standard_EXPORT Standard_Integer NumberOfInfiniteNodes() const;
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094 Standard_EXPORT void FusionOfBasicElts(const Standard_Integer IndexElt1,
0095 const Standard_Integer IndexElt2,
0096 Standard_Boolean& MergeArc1,
0097 Standard_Integer& GeomIndexArc1,
0098 Standard_Integer& GeomIndexArc2,
0099 Standard_Boolean& MergeArc2,
0100 Standard_Integer& GeomIndexArc3,
0101 Standard_Integer& GeomIndexArc4);
0102
0103 Standard_EXPORT void CompactArcs();
0104
0105 Standard_EXPORT void CompactNodes();
0106
0107 Standard_EXPORT void ChangeBasicElts(const MAT_DataMapOfIntegerBasicElt& NewMap);
0108
0109 Standard_EXPORT Handle(MAT_BasicElt) ChangeBasicElt(const Standard_Integer Index);
0110
0111 DEFINE_STANDARD_RTTIEXT(MAT_Graph, Standard_Transient)
0112
0113 protected:
0114 private:
0115
0116
0117
0118
0119 Standard_EXPORT void FusionOfArcs(const Handle(MAT_Arc)& Arc1, const Handle(MAT_Arc)& Arc2);
0120
0121 Standard_EXPORT void UpDateNodes(Standard_Integer& Index);
0122
0123 MAT_DataMapOfIntegerArc theArcs;
0124 MAT_DataMapOfIntegerBasicElt theBasicElts;
0125 MAT_DataMapOfIntegerNode theNodes;
0126 Standard_Integer numberOfArcs;
0127 Standard_Integer numberOfNodes;
0128 Standard_Integer numberOfBasicElts;
0129 Standard_Integer numberOfInfiniteNodes;
0130 };
0131
0132 #endif