// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _BRepBuilderAPI_MakeEdge_HeaderFile #define _BRepBuilderAPI_MakeEdge_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _BRepLib_MakeEdge_HeaderFile #include #endif #ifndef _BRepBuilderAPI_MakeShape_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Handle_Geom_Curve_HeaderFile #include #endif #ifndef _Handle_Geom2d_Curve_HeaderFile #include #endif #ifndef _Handle_Geom_Surface_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _BRepBuilderAPI_EdgeError_HeaderFile #include #endif class StdFail_NotDone; class TopoDS_Vertex; class gp_Pnt; class gp_Lin; class gp_Circ; class gp_Elips; class gp_Hypr; class gp_Parab; class Geom_Curve; class Geom2d_Curve; class Geom_Surface; class TopoDS_Edge; //! Provides methods to build edges.
//!
//! The methods have the following syntax, where
//! TheCurve is one of Lin, Circ, ...
//!
//! Create(C : TheCurve)
//!
//! Makes an edge on the whole curve. Add vertices
//! on finite curves.
//!
//! Create(C : TheCurve; p1,p2 : Real)
//!
//! Make an edge on the curve between parameters p1
//! and p2. if p2 < p1 the edge will be REVERSED. If
//! p1 or p2 is infinite the curve will be open in
//! that direction. Vertices are created for finite
//! values of p1 and p2.
//!
//! Create(C : TheCurve; P1, P2 : Pnt from gp)
//!
//! Make an edge on the curve between the points P1
//! and P2. The points are projected on the curve
//! and the previous method is used. An error is
//! raised if the points are not on the curve.
//!
//! Create(C : TheCurve; V1, V2 : Vertex from TopoDS)
//!
//! Make an edge on the curve between the vertices
//! V1 and V2. Same as the previous but no vertices
//! are created. If a vertex is Null the curve will
//! be open in this direction.
class BRepBuilderAPI_MakeEdge : public BRepBuilderAPI_MakeShape { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } Standard_EXPORT BRepBuilderAPI_MakeEdge(); Standard_EXPORT BRepBuilderAPI_MakeEdge(const TopoDS_Vertex& V1,const TopoDS_Vertex& V2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Pnt& P1,const gp_Pnt& P2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Lin& L); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Lin& L,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Lin& L,const gp_Pnt& P1,const gp_Pnt& P2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Lin& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Circ& L); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Circ& L,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Circ& L,const gp_Pnt& P1,const gp_Pnt& P2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Circ& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Elips& L); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Elips& L,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Elips& L,const gp_Pnt& P1,const gp_Pnt& P2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Elips& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Hypr& L); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const gp_Pnt& P1,const gp_Pnt& P2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Hypr& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Parab& L); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Parab& L,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Parab& L,const gp_Pnt& P1,const gp_Pnt& P2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Parab& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,const gp_Pnt& P1,const gp_Pnt& P2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,const gp_Pnt& P1,const gp_Pnt& P2,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,const Handle(Geom_Surface)& S); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,const Handle(Geom_Surface)& S,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,const Handle(Geom_Surface)& S,const gp_Pnt& P1,const gp_Pnt& P2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,const Handle(Geom_Surface)& S,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2); Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,const Handle(Geom_Surface)& S,const gp_Pnt& P1,const gp_Pnt& P2,const Standard_Real p1,const Standard_Real p2); //! The general method to directly create an edge is to give
//! - a 3D curve C as the support (geometric domain) of the edge,
//! - two vertices V1 and V2 to limit the curve (definition of the restriction of
//! the edge), and
//! - two real values p1 and p2 which are the parameters for the vertices V1 and V2
//! on the curve.
//! The curve may be defined as a 2d curve in the parametric space of a surface: a
//! pcurve. The surface on which the edge is built is then kept at the level of the edge.
//! The default tolerance will be associated with this edge.
//! Rules applied to the arguments:
//! For the curve:
//! - The curve must not be a 'null handle'.
//! - If the curve is a trimmed curve the basis curve is used.
//! For the vertices:
//! - Vertices may be null shapes. When V1 or V2 is null the edge is open in the
//! corresponding direction and the parameter value p1 or p2 must be infinite
//! (remember that Precision::Infinite() defines an infinite value).
//! - The two vertices must be identical if they have the same 3D location.
//! Identical vertices are used in particular when the curve is closed.
//! For the parameters:
//! - The parameters must be in the parametric range of the curve (or the basis
//! curve if the curve is trimmed). If this condition is not satisfied the edge is not
//! built, and the Error function will return BRepAPI_ParameterOutOfRange.
//! - Parameter values must not be equal. If this condition is not satisfied (i.e.
//! if | p1 - p2 | ) the edge is not built, and the Error function will return
//! BRepAPI_LineThroughIdenticPoints.
//! Parameter values are expected to be given in increasing order:
//! C->FirstParameter()
//! - If the parameter values are given in decreasing order the vertices are switched,
//! i.e. the "first vertex" is on the point of parameter p2 and the "second vertex" is
//! on the point of parameter p1. In such a case, to keep the original intent of the
//! construction, the edge will be oriented "reversed".
//! - On a periodic curve the parameter values p1 and p2 are adjusted by adding or
//! subtracting the period to obtain p1 in the parametric range of the curve, and p2]
//! such that [ p1 , where Period is the period of the curve.
//! - A parameter value may be infinite. The edge is open in the corresponding
//! direction. However the corresponding vertex must be a null shape. If this condition
//! is not satisfied the edge is not built, and the Error function will return
//! BRepAPI_PointWithInfiniteParameter.
//! - The distance between the vertex and the point evaluated on the curve with the
//! parameter, must be lower than the precision of the vertex. If this condition is not
//! satisfied the edge is not built, and the Error function will return
//! BRepAPI_DifferentsPointAndParameter.
//! Other edge constructions
//! - The parameter values can be omitted, they will be computed by projecting the
//! vertices on the curve. Note that projection is the only way to evaluate the
//! parameter values of the vertices on the curve: vertices must be given on the curve,
//! i.e. the distance from a vertex to the curve must be less than or equal to the
//! precision of the vertex. If this condition is not satisfied the edge is not built,
//! and the Error function will return BRepAPI_PointProjectionFailed.
//! - 3D points can be given in place of vertices. Vertices will be created from the
//! points (with the default topological precision Precision::Confusion()).
//! Note:
//! - Giving vertices is useful when creating a connected edge.
//! - If the parameter values correspond to the extremities of a closed curve,
//! points must be identical, or at least coincident. If this condition is not
//! satisfied the edge is not built, and the Error function will return
//! BRepAPI_DifferentPointsOnClosedCurve.
//! - The vertices or points can be omitted if the parameter values are given. The
//! points will be computed from the parameters on the curve.
//! The vertices or points and the parameter values can be omitted. The first and last
//! parameters of the curve will then be used.
Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,const Handle(Geom_Surface)& S,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2,const Standard_Real p1,const Standard_Real p2); Standard_EXPORT void Init(const Handle(Geom_Curve)& C) ; Standard_EXPORT void Init(const Handle(Geom_Curve)& C,const Standard_Real p1,const Standard_Real p2) ; Standard_EXPORT void Init(const Handle(Geom_Curve)& C,const gp_Pnt& P1,const gp_Pnt& P2) ; Standard_EXPORT void Init(const Handle(Geom_Curve)& C,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2) ; Standard_EXPORT void Init(const Handle(Geom_Curve)& C,const gp_Pnt& P1,const gp_Pnt& P2,const Standard_Real p1,const Standard_Real p2) ; Standard_EXPORT void Init(const Handle(Geom_Curve)& C,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2,const Standard_Real p1,const Standard_Real p2) ; Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C,const Handle(Geom_Surface)& S) ; Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C,const Handle(Geom_Surface)& S,const Standard_Real p1,const Standard_Real p2) ; Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C,const Handle(Geom_Surface)& S,const gp_Pnt& P1,const gp_Pnt& P2) ; Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C,const Handle(Geom_Surface)& S,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2) ; Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C,const Handle(Geom_Surface)& S,const gp_Pnt& P1,const gp_Pnt& P2,const Standard_Real p1,const Standard_Real p2) ; //! Defines or redefines the arguments for the construction of an edge.
//! This function is currently used after the empty constructor BRepAPI_MakeEdge().
Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C,const Handle(Geom_Surface)& S,const TopoDS_Vertex& V1,const TopoDS_Vertex& V2,const Standard_Real p1,const Standard_Real p2) ; //! Returns true if the edge is built.
Standard_EXPORT virtual Standard_Boolean IsDone() const; //! Returns the construction status
//! - BRepBuilderAPI_EdgeDone if the edge is built, or
//! - another value of the BRepBuilderAPI_EdgeError
//! enumeration indicating the reason of construction failure.
Standard_EXPORT BRepBuilderAPI_EdgeError Error() const; //! Returns the constructed edge.
//! Exceptions StdFail_NotDone if the edge is not built.
Standard_EXPORT const TopoDS_Edge& Edge() const; Standard_EXPORT operator TopoDS_Edge() const; //! Returns the first vertex of the edge. May be Null.
//!
Standard_EXPORT const TopoDS_Vertex& Vertex1() const; //! Returns the second vertex of the edge. May be Null.
//!
//! Warning
//! The returned vertex in each function corresponds respectively to
//! - the lowest, or
//! - the highest parameter on the curve along which the edge is built.
//! It does not correspond to the first or second vertex
//! given at the time of the construction, if the edge is oriented reversed.
//! Exceptions
//! StdFail_NotDone if the edge is not built.
Standard_EXPORT const TopoDS_Vertex& Vertex2() const; protected: private: BRepLib_MakeEdge myMakeEdge; }; // other Inline functions and methods (like "C++: function call" methods) #endif