Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-20 09:18:55

0001 // Created on: 2003-12-10
0002 // Created by: Sergey KUUL
0003 // Copyright (c) 2003-2014 OPEN CASCADE SAS
0004 //
0005 // This file is part of Open CASCADE Technology software library.
0006 //
0007 // This library is free software; you can redistribute it and/or modify it under
0008 // the terms of the GNU Lesser General Public License version 2.1 as published
0009 // by the Free Software Foundation, with special exception defined in the file
0010 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0011 // distribution for complete text of the license and disclaimer of any warranty.
0012 //
0013 // Alternatively, this file may be used under the terms of Open CASCADE
0014 // commercial license or contractual agreement.
0015 
0016 #ifndef _ShapeCustom_SweptToElementary_HeaderFile
0017 #define _ShapeCustom_SweptToElementary_HeaderFile
0018 
0019 #include <Standard.hxx>
0020 #include <Standard_Type.hxx>
0021 
0022 #include <ShapeCustom_Modification.hxx>
0023 #include <GeomAbs_Shape.hxx>
0024 class TopoDS_Face;
0025 class Geom_Surface;
0026 class TopLoc_Location;
0027 class TopoDS_Edge;
0028 class Geom_Curve;
0029 class TopoDS_Vertex;
0030 class gp_Pnt;
0031 class Geom2d_Curve;
0032 
0033 //! implements a modification for the BRepTools
0034 //! Modifier algorithm. Converts all elementary
0035 //! surfaces into surfaces of revolution.
0036 class ShapeCustom_SweptToElementary : public ShapeCustom_Modification
0037 {
0038 
0039 public:
0040   Standard_EXPORT ShapeCustom_SweptToElementary();
0041 
0042   //! Returns true if the face <F> has been
0043   //! modified. In this case, <S> is the new geometric
0044   //! support of the face, <L> the new location, <Tol>
0045   //! the new tolerance. Otherwise, returns
0046   //! false, and <S>, <L>, <Tol> are not
0047   //! significant.
0048   Standard_EXPORT bool NewSurface(const TopoDS_Face&         F,
0049                                   occ::handle<Geom_Surface>& S,
0050                                   TopLoc_Location&           L,
0051                                   double&                    Tol,
0052                                   bool&                      RevWires,
0053                                   bool&                      RevFace) override;
0054 
0055   //! Returns true if the edge <E> has been
0056   //! modified. In this case, <C> is the new geometric
0057   //! support of the edge, <L> the new location, <Tol>
0058   //! the new tolerance. Otherwise, returns
0059   //! false, and <C>, <L>, <Tol> are not
0060   //! significant.
0061   Standard_EXPORT bool NewCurve(const TopoDS_Edge&       E,
0062                                 occ::handle<Geom_Curve>& C,
0063                                 TopLoc_Location&         L,
0064                                 double&                  Tol) override;
0065 
0066   //! Returns true if the vertex <V> has been
0067   //! modified. In this case, <P> is the new geometric
0068   //! support of the vertex, <Tol> the new tolerance.
0069   //! Otherwise, returns false, and <P>, <Tol>
0070   //! are not significant.
0071   Standard_EXPORT bool NewPoint(const TopoDS_Vertex& V, gp_Pnt& P, double& Tol) override;
0072 
0073   //! Returns true if the edge <E> has a new
0074   //! curve on surface on the face <F>.In this case, <C>
0075   //! is the new geometric support of the edge, <L> the
0076   //! new location, <Tol> the new tolerance.
0077   //!
0078   //! Otherwise, returns false, and <C>, <L>,
0079   //! <Tol> are not significant.
0080   //!
0081   //! <NewE> is the new edge created from <E>. <NewF>
0082   //! is the new face created from <F>. They may be useful.
0083   Standard_EXPORT bool NewCurve2d(const TopoDS_Edge&         E,
0084                                   const TopoDS_Face&         F,
0085                                   const TopoDS_Edge&         NewE,
0086                                   const TopoDS_Face&         NewF,
0087                                   occ::handle<Geom2d_Curve>& C,
0088                                   double&                    Tol) override;
0089 
0090   //! Returns true if the Vertex <V> has a new
0091   //! parameter on the edge <E>. In this case, <P> is
0092   //! the parameter, <Tol> the new tolerance.
0093   //! Otherwise, returns false, and <P>, <Tol>
0094   //! are not significant.
0095   Standard_EXPORT bool NewParameter(const TopoDS_Vertex& V,
0096                                     const TopoDS_Edge&   E,
0097                                     double&              P,
0098                                     double&              Tol) override;
0099 
0100   //! Returns the continuity of <NewE> between <NewF1>
0101   //! and <NewF2>.
0102   //!
0103   //! <NewE> is the new edge created from <E>. <NewF1>
0104   //! (resp. <NewF2>) is the new face created from <F1>
0105   //! (resp. <F2>).
0106   Standard_EXPORT GeomAbs_Shape Continuity(const TopoDS_Edge& E,
0107                                            const TopoDS_Face& F1,
0108                                            const TopoDS_Face& F2,
0109                                            const TopoDS_Edge& NewE,
0110                                            const TopoDS_Face& NewF1,
0111                                            const TopoDS_Face& NewF2) override;
0112 
0113   DEFINE_STANDARD_RTTIEXT(ShapeCustom_SweptToElementary, ShapeCustom_Modification)
0114 };
0115 
0116 #endif // _ShapeCustom_SweptToElementary_HeaderFile