Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:03:13

0001 // Created on: 1995-01-04
0002 // Created by: Bruno DUMORTIER
0003 // Copyright (c) 1995-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 _BRepLib_MakeEdge2d_HeaderFile
0018 #define _BRepLib_MakeEdge2d_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 #include <BRepLib_EdgeError.hxx>
0025 #include <TopoDS_Vertex.hxx>
0026 #include <BRepLib_MakeShape.hxx>
0027 class gp_Pnt2d;
0028 class gp_Lin2d;
0029 class gp_Circ2d;
0030 class gp_Elips2d;
0031 class gp_Hypr2d;
0032 class gp_Parab2d;
0033 class Geom2d_Curve;
0034 class TopoDS_Edge;
0035 
0036 
0037 //! Provides methods to build edges.
0038 //!
0039 //! The   methods have  the  following   syntax, where
0040 //! TheCurve is one of Lin2d, Circ2d, ...
0041 //!
0042 //! Create(C : TheCurve)
0043 //!
0044 //! Makes an edge on  the whole curve.  Add vertices
0045 //! on finite curves.
0046 //!
0047 //! Create(C : TheCurve; p1,p2 : Real)
0048 //!
0049 //! Make an edge  on the curve between parameters p1
0050 //! and p2. if p2 < p1 the edge will be REVERSED. If
0051 //! p1  or p2 is infinite the  curve will be open in
0052 //! that  direction. Vertices are created for finite
0053 //! values of p1 and p2.
0054 //!
0055 //! Create(C : TheCurve; P1, P2 : Pnt2d from gp)
0056 //!
0057 //! Make an edge on the curve  between the points P1
0058 //! and P2. The  points are projected on   the curve
0059 //! and the   previous method is  used. An  error is
0060 //! raised if the points are not on the curve.
0061 //!
0062 //! Create(C : TheCurve; V1, V2 : Vertex from TopoDS)
0063 //!
0064 //! Make an edge  on the curve  between the vertices
0065 //! V1 and V2. Same as the  previous but no vertices
0066 //! are created. If a vertex is  Null the curve will
0067 //! be open in this direction.
0068 class BRepLib_MakeEdge2d  : public BRepLib_MakeShape
0069 {
0070 public:
0071 
0072   DEFINE_STANDARD_ALLOC
0073 
0074   
0075   Standard_EXPORT BRepLib_MakeEdge2d(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0076   
0077   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0078   
0079   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Lin2d& L);
0080   
0081   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Lin2d& L, const Standard_Real p1, const Standard_Real p2);
0082   
0083   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Lin2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0084   
0085   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Lin2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0086   
0087   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Circ2d& L);
0088   
0089   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Circ2d& L, const Standard_Real p1, const Standard_Real p2);
0090   
0091   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Circ2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0092   
0093   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Circ2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0094   
0095   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Elips2d& L);
0096   
0097   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Elips2d& L, const Standard_Real p1, const Standard_Real p2);
0098   
0099   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Elips2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0100   
0101   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Elips2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0102   
0103   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Hypr2d& L);
0104   
0105   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Hypr2d& L, const Standard_Real p1, const Standard_Real p2);
0106   
0107   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Hypr2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0108   
0109   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Hypr2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0110   
0111   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Parab2d& L);
0112   
0113   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Parab2d& L, const Standard_Real p1, const Standard_Real p2);
0114   
0115   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Parab2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0116   
0117   Standard_EXPORT BRepLib_MakeEdge2d(const gp_Parab2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0118   
0119   Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L);
0120   
0121   Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const Standard_Real p1, const Standard_Real p2);
0122   
0123   Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0124   
0125   Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0126   
0127   Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2, const Standard_Real p1, const Standard_Real p2);
0128   
0129   Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const Standard_Real p1, const Standard_Real p2);
0130   
0131   Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C);
0132   
0133   Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const Standard_Real p1, const Standard_Real p2);
0134   
0135   Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0136   
0137   Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2);
0138   
0139   Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const gp_Pnt2d& P1, const gp_Pnt2d& P2, const Standard_Real p1, const Standard_Real p2);
0140   
0141   Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const Standard_Real p1, const Standard_Real p2);
0142   
0143   //! Returns the error description when NotDone.
0144   Standard_EXPORT BRepLib_EdgeError Error() const;
0145   
0146   Standard_EXPORT const TopoDS_Edge& Edge();
0147   Standard_EXPORT operator TopoDS_Edge();
0148   
0149   //! Returns the first vertex of the edge. May be Null.
0150   Standard_EXPORT const TopoDS_Vertex& Vertex1() const;
0151   
0152   //! Returns the second vertex of the edge. May be Null.
0153   Standard_EXPORT const TopoDS_Vertex& Vertex2() const;
0154 
0155 
0156 
0157 
0158 protected:
0159 
0160 
0161 
0162 
0163 
0164 private:
0165 
0166 
0167 
0168   BRepLib_EdgeError myError;
0169   TopoDS_Vertex myVertex1;
0170   TopoDS_Vertex myVertex2;
0171 
0172 
0173 };
0174 
0175 
0176 
0177 
0178 
0179 
0180 
0181 #endif // _BRepLib_MakeEdge2d_HeaderFile