File indexing completed on 2026-07-26 09:15:46
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Bisector_BisecCC_HeaderFile
0018 #define _Bisector_BisecCC_HeaderFile
0019
0020 #include <Standard.hxx>
0021
0022 #include <TColStd_SequenceOfReal.hxx>
0023 #include <Standard_Integer.hxx>
0024 #include <Bisector_PolyBis.hxx>
0025 #include <gp_Pnt2d.hxx>
0026 #include <Bisector_Curve.hxx>
0027 #include <GeomAbs_Shape.hxx>
0028 class Geom2d_Curve;
0029 class Geom2d_Geometry;
0030 class gp_Trsf2d;
0031 class gp_Vec2d;
0032
0033 class Bisector_BisecCC;
0034 DEFINE_STANDARD_HANDLE(Bisector_BisecCC, Bisector_Curve)
0035
0036
0037
0038 class Bisector_BisecCC : public Bisector_Curve
0039 {
0040
0041 public:
0042 Standard_EXPORT Bisector_BisecCC();
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055 Standard_EXPORT Bisector_BisecCC(const Handle(Geom2d_Curve)& Cu1,
0056 const Handle(Geom2d_Curve)& Cu2,
0057 const Standard_Real Side1,
0058 const Standard_Real Side2,
0059 const gp_Pnt2d& Origin,
0060 const Standard_Real DistMax = 500);
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074 Standard_EXPORT void Perform(const Handle(Geom2d_Curve)& Cu1,
0075 const Handle(Geom2d_Curve)& Cu2,
0076 const Standard_Real Side1,
0077 const Standard_Real Side2,
0078 const gp_Pnt2d& Origin,
0079 const Standard_Real DistMax = 500);
0080
0081 Standard_EXPORT Standard_Boolean IsExtendAtStart() const Standard_OVERRIDE;
0082
0083 Standard_EXPORT Standard_Boolean IsExtendAtEnd() const Standard_OVERRIDE;
0084
0085 Standard_EXPORT void Reverse() Standard_OVERRIDE;
0086
0087 Standard_EXPORT Standard_Real ReversedParameter(const Standard_Real U) const Standard_OVERRIDE;
0088
0089
0090
0091 Standard_EXPORT Standard_Boolean IsCN(const Standard_Integer N) const Standard_OVERRIDE;
0092
0093
0094
0095
0096 Standard_EXPORT Handle(Bisector_BisecCC) ChangeGuide() const;
0097
0098 Standard_EXPORT Handle(Geom2d_Geometry) Copy() const Standard_OVERRIDE;
0099
0100
0101
0102
0103
0104 Standard_EXPORT void Transform(const gp_Trsf2d& T) Standard_OVERRIDE;
0105
0106 Standard_EXPORT Standard_Real FirstParameter() const Standard_OVERRIDE;
0107
0108 Standard_EXPORT Standard_Real LastParameter() const Standard_OVERRIDE;
0109
0110 Standard_EXPORT GeomAbs_Shape Continuity() const Standard_OVERRIDE;
0111
0112
0113
0114
0115 Standard_EXPORT Standard_Integer NbIntervals() const Standard_OVERRIDE;
0116
0117
0118
0119 Standard_EXPORT Standard_Real IntervalFirst(const Standard_Integer Index) const Standard_OVERRIDE;
0120
0121
0122
0123 Standard_EXPORT Standard_Real IntervalLast(const Standard_Integer Index) const Standard_OVERRIDE;
0124
0125 Standard_EXPORT GeomAbs_Shape IntervalContinuity() const;
0126
0127 Standard_EXPORT Standard_Boolean IsClosed() const Standard_OVERRIDE;
0128
0129 Standard_EXPORT Standard_Boolean IsPeriodic() const Standard_OVERRIDE;
0130
0131
0132
0133
0134
0135
0136 Standard_EXPORT gp_Pnt2d ValueAndDist(const Standard_Real U,
0137 Standard_Real& U1,
0138 Standard_Real& U2,
0139 Standard_Real& Distance) const;
0140
0141
0142
0143
0144
0145
0146 Standard_EXPORT gp_Pnt2d ValueByInt(const Standard_Real U,
0147 Standard_Real& U1,
0148 Standard_Real& U2,
0149 Standard_Real& Distance) const;
0150
0151 Standard_EXPORT void D0(const Standard_Real U, gp_Pnt2d& P) const Standard_OVERRIDE;
0152
0153 Standard_EXPORT void D1(const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V) const Standard_OVERRIDE;
0154
0155 Standard_EXPORT void D2(const Standard_Real U,
0156 gp_Pnt2d& P,
0157 gp_Vec2d& V1,
0158 gp_Vec2d& V2) const Standard_OVERRIDE;
0159
0160 Standard_EXPORT void D3(const Standard_Real U,
0161 gp_Pnt2d& P,
0162 gp_Vec2d& V1,
0163 gp_Vec2d& V2,
0164 gp_Vec2d& V3) const Standard_OVERRIDE;
0165
0166 Standard_EXPORT gp_Vec2d DN(const Standard_Real U,
0167 const Standard_Integer N) const Standard_OVERRIDE;
0168
0169 Standard_EXPORT Standard_Boolean IsEmpty() const;
0170
0171
0172
0173 Standard_EXPORT Standard_Real LinkBisCurve(const Standard_Real U) const;
0174
0175
0176 Standard_EXPORT Standard_Real LinkCurveBis(const Standard_Real U) const;
0177
0178 Standard_EXPORT Standard_Real Parameter(const gp_Pnt2d& P) const Standard_OVERRIDE;
0179
0180 Standard_EXPORT Handle(Geom2d_Curve) Curve(const Standard_Integer IndCurve) const;
0181
0182 Standard_EXPORT const Bisector_PolyBis& Polygon() const;
0183
0184 Standard_EXPORT void Dump(const Standard_Integer Deep = 0,
0185 const Standard_Integer Offset = 0) const;
0186
0187 DEFINE_STANDARD_RTTIEXT(Bisector_BisecCC, Bisector_Curve)
0188
0189 protected:
0190 private:
0191 Standard_EXPORT void Values(const Standard_Real U,
0192 const Standard_Integer N,
0193 gp_Pnt2d& P,
0194 gp_Vec2d& V1,
0195 gp_Vec2d& V2,
0196 gp_Vec2d& V3) const;
0197
0198 Standard_EXPORT void SupLastParameter();
0199
0200 Standard_EXPORT gp_Pnt2d Extension(const Standard_Real U,
0201 Standard_Real& U1,
0202 Standard_Real& U2,
0203 Standard_Real& Dist,
0204 gp_Vec2d& T1) const;
0205
0206 Standard_EXPORT Standard_Real SearchBound(const Standard_Real U1, const Standard_Real U2) const;
0207
0208 Standard_EXPORT void ComputePointEnd();
0209
0210 Standard_EXPORT void Curve(const Standard_Integer Index, const Handle(Geom2d_Curve)& C);
0211
0212 Standard_EXPORT void Sign(const Standard_Integer Index, const Standard_Real Sign);
0213
0214 Standard_EXPORT void Polygon(const Bisector_PolyBis& Poly);
0215
0216 Standard_EXPORT void DistMax(const Standard_Real DistMax);
0217
0218 Standard_EXPORT void IsConvex(const Standard_Integer Index, const Standard_Boolean IsConvex);
0219
0220 Standard_EXPORT void IsEmpty(const Standard_Boolean IsEmpty);
0221
0222 Standard_EXPORT void ExtensionStart(const Standard_Boolean ExtensionStart);
0223
0224 Standard_EXPORT void ExtensionEnd(const Standard_Boolean ExtensionEnd);
0225
0226 Standard_EXPORT void PointStart(const gp_Pnt2d& Point);
0227
0228 Standard_EXPORT void PointEnd(const gp_Pnt2d& Point);
0229
0230 Standard_EXPORT void StartIntervals(const TColStd_SequenceOfReal& StartIntervals);
0231
0232 Standard_EXPORT void EndIntervals(const TColStd_SequenceOfReal& EndIntervals);
0233
0234 Standard_EXPORT void FirstParameter(const Standard_Real U1);
0235
0236 Standard_EXPORT void LastParameter(const Standard_Real U1);
0237
0238 Handle(Geom2d_Curve) curve1;
0239 Handle(Geom2d_Curve) curve2;
0240 Standard_Real sign1;
0241 Standard_Real sign2;
0242 TColStd_SequenceOfReal startIntervals;
0243 TColStd_SequenceOfReal endIntervals;
0244 Standard_Integer currentInterval;
0245 Bisector_PolyBis myPolygon;
0246 Standard_Real shiftParameter;
0247 Standard_Real distMax;
0248 Standard_Boolean isEmpty;
0249 Standard_Boolean isConvex1;
0250 Standard_Boolean isConvex2;
0251 Standard_Boolean extensionStart;
0252 Standard_Boolean extensionEnd;
0253 gp_Pnt2d pointStart;
0254 gp_Pnt2d pointEnd;
0255 };
0256
0257 #endif