File indexing completed on 2026-07-04 08:32:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _MAT2d_Circuit_HeaderFile
0018 #define _MAT2d_Circuit_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <MAT2d_DataMapOfIntegerConnexion.hxx>
0024 #include <MAT2d_DataMapOfBiIntSequenceOfInteger.hxx>
0025 #include <TColStd_SequenceOfInteger.hxx>
0026 #include <GeomAbs_JoinType.hxx>
0027 #include <Standard_Transient.hxx>
0028 #include <MAT2d_SequenceOfSequenceOfGeometry.hxx>
0029 #include <TColStd_SequenceOfBoolean.hxx>
0030 #include <Standard_Integer.hxx>
0031 #include <MAT2d_SequenceOfConnexion.hxx>
0032 class Geom2d_Geometry;
0033 class MAT2d_Connexion;
0034 class MAT2d_BiInt;
0035 class MAT2d_MiniPath;
0036
0037 class MAT2d_Circuit;
0038 DEFINE_STANDARD_HANDLE(MAT2d_Circuit, Standard_Transient)
0039
0040
0041
0042
0043 class MAT2d_Circuit : public Standard_Transient
0044 {
0045
0046 public:
0047 Standard_EXPORT MAT2d_Circuit(const GeomAbs_JoinType aJoinType = GeomAbs_Arc,
0048 const Standard_Boolean IsOpenResult = Standard_False);
0049
0050 Standard_EXPORT void Perform(MAT2d_SequenceOfSequenceOfGeometry& aFigure,
0051 const TColStd_SequenceOfBoolean& IsClosed,
0052 const Standard_Integer IndRefLine,
0053 const Standard_Boolean Trigo);
0054
0055
0056 Standard_EXPORT Standard_Integer NumberOfItems() const;
0057
0058
0059 Standard_EXPORT Handle(Geom2d_Geometry) Value(const Standard_Integer Index) const;
0060
0061
0062 Standard_EXPORT Standard_Integer LineLength(const Standard_Integer IndexLine) const;
0063
0064
0065
0066
0067 Standard_EXPORT const TColStd_SequenceOfInteger& RefToEqui(const Standard_Integer IndLine,
0068 const Standard_Integer IndCurve) const;
0069
0070
0071 Standard_EXPORT Handle(MAT2d_Connexion) Connexion(const Standard_Integer Index) const;
0072
0073
0074
0075 Standard_EXPORT Standard_Boolean ConnexionOn(const Standard_Integer Index) const;
0076
0077 DEFINE_STANDARD_RTTIEXT(MAT2d_Circuit, Standard_Transient)
0078
0079 protected:
0080 private:
0081 Standard_EXPORT Standard_Boolean IsSharpCorner(const Handle(Geom2d_Geometry)& Geom1,
0082 const Handle(Geom2d_Geometry)& Geom2,
0083 const Standard_Real Direction) const;
0084
0085 Standard_EXPORT Standard_Boolean PassByLast(const Handle(MAT2d_Connexion)& C1,
0086 const Handle(MAT2d_Connexion)& C2) const;
0087
0088 Standard_EXPORT Standard_Real Side(const Handle(MAT2d_Connexion)& C,
0089 const TColGeom2d_SequenceOfGeometry& Line) const;
0090
0091 Standard_EXPORT void UpDateLink(const Standard_Integer IFirst,
0092 const Standard_Integer ILine,
0093 const Standard_Integer ICurveFirst,
0094 const Standard_Integer ICurveLast);
0095
0096 Standard_EXPORT void SortRefToEqui(const MAT2d_BiInt& aBiInt);
0097
0098 Standard_EXPORT void InitOpen(TColGeom2d_SequenceOfGeometry& Line) const;
0099
0100 Standard_EXPORT void InsertCorner(TColGeom2d_SequenceOfGeometry& Line) const;
0101
0102 Standard_EXPORT void DoubleLine(TColGeom2d_SequenceOfGeometry& Line,
0103 MAT2d_SequenceOfConnexion& Connexions,
0104 const Handle(MAT2d_Connexion)& Father,
0105 const Standard_Real Side) const;
0106
0107 Standard_EXPORT void ConstructCircuit(const MAT2d_SequenceOfSequenceOfGeometry& aFigure,
0108 const Standard_Integer IndRefLine,
0109 const MAT2d_MiniPath& aPath);
0110
0111 Standard_Real direction;
0112 TColGeom2d_SequenceOfGeometry geomElements;
0113 MAT2d_DataMapOfIntegerConnexion connexionMap;
0114 MAT2d_DataMapOfBiIntSequenceOfInteger linkRefEqui;
0115 TColStd_SequenceOfInteger linesLength;
0116 GeomAbs_JoinType myJoinType;
0117 Standard_Boolean myIsOpenResult;
0118 };
0119
0120 #endif