File indexing completed on 2025-01-18 10:04:14
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
0034 class MAT_Graph;
0035 DEFINE_STANDARD_HANDLE(MAT_Graph, Standard_Transient)
0036
0037
0038
0039 class MAT_Graph : public Standard_Transient
0040 {
0041
0042 public:
0043
0044
0045
0046 Standard_EXPORT MAT_Graph();
0047
0048
0049
0050
0051
0052
0053
0054
0055 Standard_EXPORT void Perform (const Standard_Boolean SemiInfinite, const Handle(MAT_ListOfBisector)& TheRoots, const Standard_Integer NbBasicElts, 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, const Standard_Integer IndexElt2, Standard_Boolean& MergeArc1, Standard_Integer& GeomIndexArc1, Standard_Integer& GeomIndexArc2, Standard_Boolean& MergeArc2, Standard_Integer& GeomIndexArc3, Standard_Integer& GeomIndexArc4);
0095
0096 Standard_EXPORT void CompactArcs();
0097
0098 Standard_EXPORT void CompactNodes();
0099
0100 Standard_EXPORT void ChangeBasicElts (const MAT_DataMapOfIntegerBasicElt& NewMap);
0101
0102 Standard_EXPORT Handle(MAT_BasicElt) ChangeBasicElt (const Standard_Integer Index);
0103
0104
0105
0106
0107 DEFINE_STANDARD_RTTIEXT(MAT_Graph,Standard_Transient)
0108
0109 protected:
0110
0111
0112
0113
0114 private:
0115
0116
0117
0118
0119
0120
0121 Standard_EXPORT void FusionOfArcs (const Handle(MAT_Arc)& Arc1, const Handle(MAT_Arc)& Arc2);
0122
0123 Standard_EXPORT void UpDateNodes (Standard_Integer& Index);
0124
0125 MAT_DataMapOfIntegerArc theArcs;
0126 MAT_DataMapOfIntegerBasicElt theBasicElts;
0127 MAT_DataMapOfIntegerNode theNodes;
0128 Standard_Integer numberOfArcs;
0129 Standard_Integer numberOfNodes;
0130 Standard_Integer numberOfBasicElts;
0131 Standard_Integer numberOfInfiniteNodes;
0132
0133
0134 };
0135
0136
0137
0138
0139
0140
0141
0142 #endif