BRepAdaptor_CompCurve2.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _BRepAdaptor_CompCurve2_HeaderFile
00027 #define _BRepAdaptor_CompCurve2_HeaderFile
00028
00029 #ifndef _TopoDS_Wire_HeaderFile
00030 #include <TopoDS_Wire.hxx>
00031 #endif
00032 #ifndef _Standard_Real_HeaderFile
00033 #include <Standard_Real.hxx>
00034 #endif
00035 #ifndef _Handle_BRepAdaptor_HArray1OfCurve_HeaderFile
00036 #include <Handle_BRepAdaptor_HArray1OfCurve.hxx>
00037 #endif
00038 #ifndef _Handle_TColStd_HArray1OfReal_HeaderFile
00039 #include <Handle_TColStd_HArray1OfReal.hxx>
00040 #endif
00041 #ifndef _Standard_Integer_HeaderFile
00042 #include <Standard_Integer.hxx>
00043 #endif
00044 #ifndef _Standard_Boolean_HeaderFile
00045 #include <Standard_Boolean.hxx>
00046 #endif
00047 #ifndef _Adaptor3d_Curve_HeaderFile
00048 #include <Adaptor3d_Curve.hxx>
00049 #endif
00050 #ifndef _GeomAbs_Shape_HeaderFile
00051 #include <GeomAbs_Shape.hxx>
00052 #endif
00053 #ifndef _Handle_Adaptor3d_HCurve_HeaderFile
00054 #include <Handle_Adaptor3d_HCurve.hxx>
00055 #endif
00056 #ifndef _GeomAbs_CurveType_HeaderFile
00057 #include <GeomAbs_CurveType.hxx>
00058 #endif
00059 #ifndef _Handle_Geom_BezierCurve_HeaderFile
00060 #include <Handle_Geom_BezierCurve.hxx>
00061 #endif
00062 #ifndef _Handle_Geom_BSplineCurve_HeaderFile
00063 #include <Handle_Geom_BSplineCurve.hxx>
00064 #endif
00065 class BRepAdaptor_HArray1OfCurve;
00066 class TColStd_HArray1OfReal;
00067 class Standard_NullObject;
00068 class Standard_DomainError;
00069 class Standard_OutOfRange;
00070 class Standard_NoSuchObject;
00071 class TopoDS_Wire;
00072 class TopoDS_Edge;
00073 class TColStd_Array1OfReal;
00074 class Adaptor3d_HCurve;
00075 class gp_Pnt;
00076 class gp_Vec;
00077 class gp_Lin;
00078 class gp_Circ;
00079 class gp_Elips;
00080 class gp_Hypr;
00081 class gp_Parab;
00082 class Geom_BezierCurve;
00083 class Geom_BSplineCurve;
00084
00085
00086 #ifndef _Standard_HeaderFile
00087 #include <Standard.hxx>
00088 #endif
00089 #ifndef _Standard_Macro_HeaderFile
00090 #include <Standard_Macro.hxx>
00091 #endif
00092
00097 class BRepAdaptor_CompCurve2 : public Adaptor3d_Curve
00098 {
00099
00100 public:
00101
00102 void* operator new(size_t,void* anAddress)
00103 {
00104 return anAddress;
00105 }
00106 void* operator new(size_t size)
00107 {
00108 return Standard::Allocate(size);
00109 }
00110 void operator delete(void *anAddress)
00111 {
00112 if (anAddress) Standard::Free((Standard_Address&)anAddress);
00113 }
00114
00115
00116
00118 Standard_EXPORT BRepAdaptor_CompCurve2();
00119
00120
00121 Standard_EXPORT BRepAdaptor_CompCurve2(const TopoDS_Wire& W,const Standard_Boolean KnotByCurvilinearAbcissa = Standard_False);
00122
00124 Standard_EXPORT BRepAdaptor_CompCurve2(const TopoDS_Wire& W,const Standard_Boolean KnotByCurvilinearAbcissa,const Standard_Real First,const Standard_Real Last,const Standard_Real Tol);
00125
00127 Standard_EXPORT void Initialize(const TopoDS_Wire& W,const Standard_Boolean KnotByCurvilinearAbcissa) ;
00128
00130 Standard_EXPORT void Initialize(const TopoDS_Wire& W,const Standard_Boolean KnotByCurvilinearAbcissa,const Standard_Real First,const Standard_Real Last,const Standard_Real Tol) ;
00131
00134 Standard_EXPORT void SetPeriodic(const Standard_Boolean Periodic) ;
00135
00137 Standard_EXPORT const TopoDS_Wire& Wire() const;
00138
00141 Standard_EXPORT void Edge(const Standard_Real U,TopoDS_Edge& E,Standard_Real& UonE) const;
00142
00143
00144 Standard_EXPORT Standard_Real FirstParameter() const;
00145
00146
00147 Standard_EXPORT Standard_Real LastParameter() const;
00148
00149
00150 Standard_EXPORT GeomAbs_Shape Continuity() const;
00151
00154 Standard_EXPORT Standard_Integer NbIntervals(const GeomAbs_Shape S) ;
00155
00157
00160 Standard_EXPORT void Intervals(TColStd_Array1OfReal& T,const GeomAbs_Shape S) ;
00161
00162
00163 Standard_EXPORT Standard_Boolean IsClosed() const;
00164
00165
00166 Standard_EXPORT Standard_Boolean IsPeriodic() const;
00167
00168
00169 Standard_EXPORT Standard_Real Period() const;
00170
00172 Standard_EXPORT gp_Pnt Value(const Standard_Real U) const;
00173
00175 Standard_EXPORT void D0(const Standard_Real U,gp_Pnt& P) const;
00176
00180 Standard_EXPORT void D1(const Standard_Real U,gp_Pnt& P,gp_Vec& V) const;
00181
00182
00186 Standard_EXPORT void D2(const Standard_Real U,gp_Pnt& P,gp_Vec& V1,gp_Vec& V2) const;
00187
00188
00192 Standard_EXPORT void D3(const Standard_Real U,gp_Pnt& P,gp_Vec& V1,gp_Vec& V2,gp_Vec& V3) const;
00193
00194
00199 Standard_EXPORT gp_Vec DN(const Standard_Real U,const Standard_Integer N) const;
00200
00202 Standard_EXPORT Standard_Real Resolution(const Standard_Real R3d) const;
00203
00204
00205 Standard_EXPORT GeomAbs_CurveType GetType() const;
00206
00207
00208 Standard_EXPORT gp_Lin Line() const;
00209
00210
00211 Standard_EXPORT gp_Circ Circle() const;
00212
00213
00214 Standard_EXPORT gp_Elips Ellipse() const;
00215
00216
00217 Standard_EXPORT gp_Hypr Hyperbola() const;
00218
00219
00220 Standard_EXPORT gp_Parab Parabola() const;
00221
00222
00223 Standard_EXPORT Standard_Integer Degree() const;
00224
00225
00226 Standard_EXPORT Standard_Boolean IsRational() const;
00227
00228
00229 Standard_EXPORT Standard_Integer NbPoles() const;
00230
00231
00232 Standard_EXPORT Standard_Integer NbKnots() const;
00233
00234
00235 Standard_EXPORT Handle_Geom_BezierCurve Bezier() const;
00236
00237
00238 Standard_EXPORT Handle_Geom_BSplineCurve BSpline() const;
00239
00240
00241
00242
00243
00244 protected:
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254 private:
00255
00256
00257
00258
00259
00260 Standard_EXPORT void Prepare(Standard_Real& W,Standard_Real& D,Standard_Integer& ind) const;
00261
00262
00263 Standard_EXPORT void InvPrepare(const Standard_Integer ind,Standard_Real& F,Standard_Real& D) const;
00264
00265
00266
00267
00268 TopoDS_Wire myWire;
00269 Standard_Real TFirst;
00270 Standard_Real TLast;
00271 Standard_Real PTol;
00272 Standard_Real myPeriod;
00273 Handle_BRepAdaptor_HArray1OfCurve myCurves;
00274 Handle_TColStd_HArray1OfReal myKnots;
00275 Standard_Integer CurIndex;
00276 Standard_Boolean Forward;
00277 Standard_Boolean IsbyAC;
00278 Standard_Boolean Periodic;
00279
00280
00281 };
00282
00283
00284
00285
00286 #endif