Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-25 09:19:09

0001 // Created on: 1993-07-06
0002 // Created by: Remi LEQUETTE
0003 // Copyright (c) 1993-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 #ifndef _BRepBuilderAPI_MakeEdge2d_HeaderFile
0018 #define _BRepBuilderAPI_MakeEdge2d_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 #include <BRepLib_MakeEdge2d.hxx>
0025 #include <BRepBuilderAPI_MakeShape.hxx>
0026 #include <Standard_Real.hxx>
0027 #include <BRepBuilderAPI_EdgeError.hxx>
0028 class TopoDS_Vertex;
0029 class gp_Pnt2d;
0030 class gp_Lin2d;
0031 class gp_Circ2d;
0032 class gp_Elips2d;
0033 class gp_Hypr2d;
0034 class gp_Parab2d;
0035 class Geom2d_Curve;
0036 class TopoDS_Edge;
0037 
0038 //! Provides methods to build edges.
0039 //!
0040 //! The methods have the following syntax, where
0041 //! TheCurve is one of Lin2d, Circ2d, ...
0042 //!
0043 //! Create(C : TheCurve)
0044 //!
0045 //! Makes an edge on the whole curve. Add vertices
0046 //! on finite curves.
0047 //!
0048 //! Create(C : TheCurve; p1,p2 : Real)
0049 //!
0050 //! Make an edge on the curve between parameters p1
0051 //! and p2. if p2 < p1 the edge will be REVERSED. If
0052 //! p1 or p2 is infinite the curve will be open in
0053 //! that direction. Vertices are created for finite
0054 //! values of p1 and p2.
0055 //!
0056 //! Create(C : TheCurve; P1, P2 : Pnt2d from gp)
0057 //!
0058 //! Make an edge on the curve between the points P1
0059 //! and P2. The points are projected on the curve
0060 //! and the previous method is used. An error is
0061 //! raised if the points are not on the curve.
0062 //!
0063 //! Create(C : TheCurve; V1, V2 : Vertex from TopoDS)
0064 //!
0065 //! Make an edge on the curve between the vertices
0066 //! V1 and V2. Same as the previous but no vertices
0067 //! are created. If a vertex is Null the curve will
0068 //! be open in this direction.
0069 class BRepBuilderAPI_MakeEdge2d : public BRepBuilderAPI_MakeShape
0070 {
0071 public:
0072   DEFINE_STANDARD_ALLOC
0073 
0074   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0075 
0076   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0077 
0078   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L);
0079 
0080   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L, const double p1, const double p2);
0081 
0082   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L,
0083                                             const gp_Pnt2d& P1,
0084                                             const gp_Pnt2d& P2);
0085 
0086   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Lin2d&      L,
0087                                             const TopoDS_Vertex& V1,
0088                                             const TopoDS_Vertex& V2);
0089 
0090   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& L);
0091 
0092   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& L, const double p1, const double p2);
0093 
0094   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& L,
0095                                             const gp_Pnt2d&  P1,
0096                                             const gp_Pnt2d&  P2);
0097 
0098   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Circ2d&     L,
0099                                             const TopoDS_Vertex& V1,
0100                                             const TopoDS_Vertex& V2);
0101 
0102   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& L);
0103 
0104   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& L, const double p1, const double p2);
0105 
0106   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& L,
0107                                             const gp_Pnt2d&   P1,
0108                                             const gp_Pnt2d&   P2);
0109 
0110   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Elips2d&    L,
0111                                             const TopoDS_Vertex& V1,
0112                                             const TopoDS_Vertex& V2);
0113 
0114   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& L);
0115 
0116   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& L, const double p1, const double p2);
0117 
0118   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& L,
0119                                             const gp_Pnt2d&  P1,
0120                                             const gp_Pnt2d&  P2);
0121 
0122   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d&     L,
0123                                             const TopoDS_Vertex& V1,
0124                                             const TopoDS_Vertex& V2);
0125 
0126   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& L);
0127 
0128   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& L, const double p1, const double p2);
0129 
0130   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& L,
0131                                             const gp_Pnt2d&   P1,
0132                                             const gp_Pnt2d&   P2);
0133 
0134   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Parab2d&    L,
0135                                             const TopoDS_Vertex& V1,
0136                                             const TopoDS_Vertex& V2);
0137 
0138   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const occ::handle<Geom2d_Curve>& L);
0139 
0140   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const occ::handle<Geom2d_Curve>& L,
0141                                             const double                     p1,
0142                                             const double                     p2);
0143 
0144   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const occ::handle<Geom2d_Curve>& L,
0145                                             const gp_Pnt2d&                  P1,
0146                                             const gp_Pnt2d&                  P2);
0147 
0148   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const occ::handle<Geom2d_Curve>& L,
0149                                             const TopoDS_Vertex&             V1,
0150                                             const TopoDS_Vertex&             V2);
0151 
0152   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const occ::handle<Geom2d_Curve>& L,
0153                                             const gp_Pnt2d&                  P1,
0154                                             const gp_Pnt2d&                  P2,
0155                                             const double                     p1,
0156                                             const double                     p2);
0157 
0158   Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const occ::handle<Geom2d_Curve>& L,
0159                                             const TopoDS_Vertex&             V1,
0160                                             const TopoDS_Vertex&             V2,
0161                                             const double                     p1,
0162                                             const double                     p2);
0163 
0164   Standard_EXPORT void Init(const occ::handle<Geom2d_Curve>& C);
0165 
0166   Standard_EXPORT void Init(const occ::handle<Geom2d_Curve>& C, const double p1, const double p2);
0167 
0168   Standard_EXPORT void Init(const occ::handle<Geom2d_Curve>& C,
0169                             const gp_Pnt2d&                  P1,
0170                             const gp_Pnt2d&                  P2);
0171 
0172   Standard_EXPORT void Init(const occ::handle<Geom2d_Curve>& C,
0173                             const TopoDS_Vertex&             V1,
0174                             const TopoDS_Vertex&             V2);
0175 
0176   Standard_EXPORT void Init(const occ::handle<Geom2d_Curve>& C,
0177                             const gp_Pnt2d&                  P1,
0178                             const gp_Pnt2d&                  P2,
0179                             const double                     p1,
0180                             const double                     p2);
0181 
0182   Standard_EXPORT void Init(const occ::handle<Geom2d_Curve>& C,
0183                             const TopoDS_Vertex&             V1,
0184                             const TopoDS_Vertex&             V2,
0185                             const double                     p1,
0186                             const double                     p2);
0187 
0188   Standard_EXPORT bool IsDone() const override;
0189 
0190   //! Returns the error description when NotDone.
0191   Standard_EXPORT BRepBuilderAPI_EdgeError Error() const;
0192 
0193   Standard_EXPORT const TopoDS_Edge& Edge();
0194   Standard_EXPORT                    operator TopoDS_Edge();
0195 
0196   //! Returns the first vertex of the edge. May be Null.
0197   Standard_EXPORT const TopoDS_Vertex& Vertex1() const;
0198 
0199   //! Returns the second vertex of the edge. May be Null.
0200   Standard_EXPORT const TopoDS_Vertex& Vertex2() const;
0201 
0202 private:
0203   BRepLib_MakeEdge2d myMakeEdge2d;
0204 };
0205 
0206 #endif // _BRepBuilderAPI_MakeEdge2d_HeaderFile