File indexing completed on 2025-01-18 10:03:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Contap_TheIWLineOfTheIWalking_HeaderFile
0018 #define _Contap_TheIWLineOfTheIWalking_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <IntSurf_SequenceOfCouple.hxx>
0024 #include <Standard_Boolean.hxx>
0025 #include <Standard_Integer.hxx>
0026 #include <IntSurf_PathPoint.hxx>
0027 #include <gp_Vec.hxx>
0028 #include <Standard_Transient.hxx>
0029 #include <IntSurf_Allocator.hxx>
0030 class IntSurf_LineOn2S;
0031 class Standard_OutOfRange;
0032 class Standard_DomainError;
0033 class IntSurf_PathPoint;
0034 class IntSurf_PntOn2S;
0035 class gp_Vec;
0036
0037
0038 class Contap_TheIWLineOfTheIWalking;
0039 DEFINE_STANDARD_HANDLE(Contap_TheIWLineOfTheIWalking, Standard_Transient)
0040
0041
0042 class Contap_TheIWLineOfTheIWalking : public Standard_Transient
0043 {
0044
0045 public:
0046
0047
0048 Standard_EXPORT Contap_TheIWLineOfTheIWalking(const IntSurf_Allocator& theAllocator = 0);
0049
0050
0051 Standard_EXPORT void Reverse();
0052
0053
0054 void Cut (const Standard_Integer Index);
0055
0056
0057 void AddPoint (const IntSurf_PntOn2S& P);
0058
0059 void AddStatusFirst (const Standard_Boolean Closed, const Standard_Boolean HasFirst);
0060
0061 void AddStatusFirst (const Standard_Boolean Closed, const Standard_Boolean HasLast, const Standard_Integer Index, const IntSurf_PathPoint& P);
0062
0063 void AddStatusFirstLast (const Standard_Boolean Closed, const Standard_Boolean HasFirst, const Standard_Boolean HasLast);
0064
0065 void AddStatusLast (const Standard_Boolean HasLast);
0066
0067 void AddStatusLast (const Standard_Boolean HasLast, const Standard_Integer Index, const IntSurf_PathPoint& P);
0068
0069
0070
0071 void AddIndexPassing (const Standard_Integer Index);
0072
0073 void SetTangentVector (const gp_Vec& V, const Standard_Integer Index);
0074
0075 void SetTangencyAtBegining (const Standard_Boolean IsTangent);
0076
0077 void SetTangencyAtEnd (const Standard_Boolean IsTangent);
0078
0079
0080
0081 Standard_Integer NbPoints() const;
0082
0083
0084
0085 const IntSurf_PntOn2S& Value (const Standard_Integer Index) const;
0086
0087
0088 const Handle(IntSurf_LineOn2S)& Line() const;
0089
0090
0091 Standard_Boolean IsClosed() const;
0092
0093
0094
0095
0096
0097 Standard_Boolean HasFirstPoint() const;
0098
0099
0100
0101
0102
0103
0104 Standard_Boolean HasLastPoint() const;
0105
0106
0107
0108
0109 const IntSurf_PathPoint& FirstPoint() const;
0110
0111
0112
0113
0114
0115 Standard_Integer FirstPointIndex() const;
0116
0117
0118
0119
0120 const IntSurf_PathPoint& LastPoint() const;
0121
0122
0123
0124
0125
0126 Standard_Integer LastPointIndex() const;
0127
0128
0129
0130 Standard_Integer NbPassingPoint() const;
0131
0132
0133
0134
0135 void PassingPoint (const Standard_Integer Index, Standard_Integer& IndexLine, Standard_Integer& IndexPnts) const;
0136
0137 const gp_Vec& TangentVector (Standard_Integer& Index) const;
0138
0139 Standard_Boolean IsTangentAtBegining() const;
0140
0141 Standard_Boolean IsTangentAtEnd() const;
0142
0143
0144
0145
0146 DEFINE_STANDARD_RTTI_INLINE(Contap_TheIWLineOfTheIWalking,Standard_Transient)
0147
0148 protected:
0149
0150
0151
0152
0153 private:
0154
0155
0156 Handle(IntSurf_LineOn2S) line;
0157 IntSurf_SequenceOfCouple couple;
0158 Standard_Boolean closed;
0159 Standard_Boolean hasFirst;
0160 Standard_Boolean hasLast;
0161 Standard_Integer firstIndex;
0162 Standard_Integer lastIndex;
0163 IntSurf_PathPoint theFirstPoint;
0164 IntSurf_PathPoint theLastPoint;
0165 Standard_Integer indextg;
0166 gp_Vec vcttg;
0167 Standard_Boolean istgtbeg;
0168 Standard_Boolean istgtend;
0169
0170
0171 };
0172
0173 #define TheStartPoint IntSurf_PathPoint
0174 #define TheStartPoint_hxx <IntSurf_PathPoint.hxx>
0175 #define IntWalk_IWLine Contap_TheIWLineOfTheIWalking
0176 #define IntWalk_IWLine_hxx <Contap_TheIWLineOfTheIWalking.hxx>
0177 #define Handle_IntWalk_IWLine Handle(Contap_TheIWLineOfTheIWalking)
0178
0179 #include <IntWalk_IWLine.lxx>
0180
0181 #undef TheStartPoint
0182 #undef TheStartPoint_hxx
0183 #undef IntWalk_IWLine
0184 #undef IntWalk_IWLine_hxx
0185 #undef Handle_IntWalk_IWLine
0186
0187
0188
0189
0190 #endif