File indexing completed on 2026-10-24 09:13:06
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 <NCollection_Sequence.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
0034
0035 class Bisector_BisecCC : public Bisector_Curve
0036 {
0037
0038 public:
0039 Standard_EXPORT Bisector_BisecCC();
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052 Standard_EXPORT Bisector_BisecCC(const occ::handle<Geom2d_Curve>& Cu1,
0053 const occ::handle<Geom2d_Curve>& Cu2,
0054 const double Side1,
0055 const double Side2,
0056 const gp_Pnt2d& Origin,
0057 const double DistMax = 500);
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071 Standard_EXPORT void Perform(const occ::handle<Geom2d_Curve>& Cu1,
0072 const occ::handle<Geom2d_Curve>& Cu2,
0073 const double Side1,
0074 const double Side2,
0075 const gp_Pnt2d& Origin,
0076 const double DistMax = 500);
0077
0078 Standard_EXPORT bool IsExtendAtStart() const override;
0079
0080 Standard_EXPORT bool IsExtendAtEnd() const override;
0081
0082 Standard_EXPORT void Reverse() override;
0083
0084 Standard_EXPORT double ReversedParameter(const double U) const override;
0085
0086
0087
0088 Standard_EXPORT bool IsCN(const int N) const override;
0089
0090
0091
0092
0093 Standard_EXPORT occ::handle<Bisector_BisecCC> ChangeGuide() const;
0094
0095 Standard_EXPORT occ::handle<Geom2d_Geometry> Copy() const override;
0096
0097
0098
0099
0100
0101 Standard_EXPORT void Transform(const gp_Trsf2d& T) override;
0102
0103 Standard_EXPORT double FirstParameter() const override;
0104
0105 Standard_EXPORT double LastParameter() const override;
0106
0107 Standard_EXPORT GeomAbs_Shape Continuity() const override;
0108
0109
0110
0111
0112 Standard_EXPORT int NbIntervals() const override;
0113
0114
0115
0116 Standard_EXPORT double IntervalFirst(const int Index) const override;
0117
0118
0119
0120 Standard_EXPORT double IntervalLast(const int Index) const override;
0121
0122 Standard_EXPORT GeomAbs_Shape IntervalContinuity() const;
0123
0124 Standard_EXPORT bool IsClosed() const override;
0125
0126 Standard_EXPORT bool IsPeriodic() const override;
0127
0128
0129
0130
0131
0132
0133 Standard_EXPORT gp_Pnt2d ValueAndDist(const double U,
0134 double& U1,
0135 double& U2,
0136 double& Distance) const;
0137
0138
0139
0140
0141
0142
0143 Standard_EXPORT gp_Pnt2d ValueByInt(const double U,
0144 double& U1,
0145 double& U2,
0146 double& Distance) const;
0147
0148 Standard_EXPORT gp_Pnt2d EvalD0(const double U) const override;
0149
0150 Standard_EXPORT Geom2d_Curve::ResD1 EvalD1(const double U) const override;
0151
0152 Standard_EXPORT Geom2d_Curve::ResD2 EvalD2(const double U) const override;
0153
0154 Standard_EXPORT Geom2d_Curve::ResD3 EvalD3(const double U) const override;
0155
0156 Standard_EXPORT gp_Vec2d EvalDN(const double U, const int N) const override;
0157
0158 Standard_EXPORT bool IsEmpty() const;
0159
0160
0161
0162 Standard_EXPORT double LinkBisCurve(const double U) const;
0163
0164
0165 Standard_EXPORT double LinkCurveBis(const double U) const;
0166
0167 Standard_EXPORT double Parameter(const gp_Pnt2d& P) const override;
0168
0169 Standard_EXPORT occ::handle<Geom2d_Curve> Curve(const int IndCurve) const;
0170
0171 Standard_EXPORT const Bisector_PolyBis& Polygon() const;
0172
0173 Standard_EXPORT void Dump(const int Deep = 0, const int Offset = 0) const;
0174
0175 DEFINE_STANDARD_RTTIEXT(Bisector_BisecCC, Bisector_Curve)
0176
0177 private:
0178 Standard_EXPORT void Values(const double U,
0179 const int N,
0180 gp_Pnt2d& P,
0181 gp_Vec2d& V1,
0182 gp_Vec2d& V2,
0183 gp_Vec2d& V3) const;
0184
0185 Standard_EXPORT void SupLastParameter();
0186
0187 Standard_EXPORT gp_Pnt2d
0188 Extension(const double U, double& U1, double& U2, double& Dist, gp_Vec2d& T1) const;
0189
0190 Standard_EXPORT double SearchBound(const double U1, const double U2) const;
0191
0192 Standard_EXPORT void ComputePointEnd();
0193
0194 Standard_EXPORT void Curve(const int Index, const occ::handle<Geom2d_Curve>& C);
0195
0196 Standard_EXPORT void Sign(const int Index, const double Sign);
0197
0198 Standard_EXPORT void Polygon(const Bisector_PolyBis& Poly);
0199
0200 Standard_EXPORT void DistMax(const double DistMax);
0201
0202 Standard_EXPORT void IsConvex(const int Index, const bool IsConvex);
0203
0204 Standard_EXPORT void IsEmpty(const bool IsEmpty);
0205
0206 Standard_EXPORT void ExtensionStart(const bool ExtensionStart);
0207
0208 Standard_EXPORT void ExtensionEnd(const bool ExtensionEnd);
0209
0210 Standard_EXPORT void PointStart(const gp_Pnt2d& Point);
0211
0212 Standard_EXPORT void PointEnd(const gp_Pnt2d& Point);
0213
0214 Standard_EXPORT void StartIntervals(const NCollection_Sequence<double>& StartIntervals);
0215
0216 Standard_EXPORT void EndIntervals(const NCollection_Sequence<double>& EndIntervals);
0217
0218 Standard_EXPORT void FirstParameter(const double U1);
0219
0220 Standard_EXPORT void LastParameter(const double U1);
0221
0222 occ::handle<Geom2d_Curve> curve1;
0223 occ::handle<Geom2d_Curve> curve2;
0224 double sign1;
0225 double sign2;
0226 NCollection_Sequence<double> startIntervals;
0227 NCollection_Sequence<double> endIntervals;
0228 int currentInterval;
0229 Bisector_PolyBis myPolygon;
0230 double shiftParameter;
0231 double distMax;
0232 bool isEmpty;
0233 bool isConvex1;
0234 bool isConvex2;
0235 bool extensionStart;
0236 bool extensionEnd;
0237 gp_Pnt2d pointStart;
0238 gp_Pnt2d pointEnd;
0239 };
0240
0241 #endif