|
|
|||
File indexing completed on 2026-09-27 09:17:12
0001 // Created on: 1994-08-25 0002 // Created by: Jacques GOUSSARD 0003 // Copyright (c) 1994-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 _BRepTools_Modification_HeaderFile 0018 #define _BRepTools_Modification_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_Type.hxx> 0022 0023 #include <Standard_Transient.hxx> 0024 #include <Standard_Real.hxx> 0025 #include <GeomAbs_Shape.hxx> 0026 class TopoDS_Face; 0027 class Geom_Surface; 0028 class TopLoc_Location; 0029 class TopoDS_Edge; 0030 class Geom_Curve; 0031 class TopoDS_Vertex; 0032 class gp_Pnt; 0033 class Geom2d_Curve; 0034 class Poly_Triangulation; 0035 0036 class Poly_Polygon3D; 0037 class Poly_PolygonOnTriangulation; 0038 0039 //! Defines geometric modifications to a shape, i.e. 0040 //! changes to faces, edges and vertices. 0041 class BRepTools_Modification : public Standard_Transient 0042 { 0043 0044 public: 0045 //! Returns true if the face, F, has been modified. 0046 //! If the face has been modified: 0047 //! - S is the new geometry of the face, 0048 //! - L is its new location, and 0049 //! - Tol is the new tolerance. 0050 //! The flag, RevWires, is set to true when the 0051 //! modification reverses the normal of the surface, (i.e. 0052 //! the wires have to be reversed). 0053 //! The flag, RevFace, is set to true if the orientation of 0054 //! the modified face changes in the shells which contain it. 0055 //! If the face has not been modified this function returns 0056 //! false, and the values of S, L, Tol, RevWires and 0057 //! RevFace are not significant. 0058 Standard_EXPORT virtual bool NewSurface(const TopoDS_Face& F, 0059 occ::handle<Geom_Surface>& S, 0060 TopLoc_Location& L, 0061 double& Tol, 0062 bool& RevWires, 0063 bool& RevFace) = 0; 0064 0065 //! Returns true if the face has been modified according to changed triangulation. 0066 //! If the face has been modified: 0067 //! - T is a new triangulation on the face 0068 Standard_EXPORT virtual bool NewTriangulation(const TopoDS_Face& F, 0069 occ::handle<Poly_Triangulation>& T); 0070 0071 //! Returns true if the edge, E, has been modified. 0072 //! If the edge has been modified: 0073 //! - C is the new geometry associated with the edge, 0074 //! - L is its new location, and 0075 //! - Tol is the new tolerance. 0076 //! If the edge has not been modified, this function 0077 //! returns false, and the values of C, L and Tol are not significant. 0078 Standard_EXPORT virtual bool NewCurve(const TopoDS_Edge& E, 0079 occ::handle<Geom_Curve>& C, 0080 TopLoc_Location& L, 0081 double& Tol) = 0; 0082 0083 //! Returns true if the edge has been modified according to changed polygon. 0084 //! If the edge has been modified: 0085 //! - P is a new polygon 0086 Standard_EXPORT virtual bool NewPolygon(const TopoDS_Edge& E, occ::handle<Poly_Polygon3D>& P); 0087 0088 //! Returns true if the edge has been modified according to changed polygon on triangulation. 0089 //! If the edge has been modified: 0090 //! - P is a new polygon on triangulation 0091 Standard_EXPORT virtual bool NewPolygonOnTriangulation( 0092 const TopoDS_Edge& E, 0093 const TopoDS_Face& F, 0094 occ::handle<Poly_PolygonOnTriangulation>& P); 0095 0096 //! Returns true if the vertex V has been modified. 0097 //! If V has been modified: 0098 //! - P is the new geometry of the vertex, and 0099 //! - Tol is the new tolerance. 0100 //! If the vertex has not been modified this function 0101 //! returns false, and the values of P and Tol are not significant. 0102 Standard_EXPORT virtual bool NewPoint(const TopoDS_Vertex& V, gp_Pnt& P, double& Tol) = 0; 0103 0104 //! Returns true if the edge, E, has a new curve on 0105 //! surface on the face, F. 0106 //! If a new curve exists: 0107 //! - C is the new geometry of the edge, 0108 //! - L is the new location, and 0109 //! - Tol is the new tolerance. 0110 //! NewE is the new edge created from E, and NewF is 0111 //! the new face created from F. 0112 //! If there is no new curve on the face, this function 0113 //! returns false, and the values of C, L and Tol are not significant. 0114 Standard_EXPORT virtual bool NewCurve2d(const TopoDS_Edge& E, 0115 const TopoDS_Face& F, 0116 const TopoDS_Edge& NewE, 0117 const TopoDS_Face& NewF, 0118 occ::handle<Geom2d_Curve>& C, 0119 double& Tol) = 0; 0120 0121 //! Returns true if the vertex V has a new parameter on the edge E. 0122 //! If a new parameter exists: 0123 //! - P is the parameter, and 0124 //! - Tol is the new tolerance. 0125 //! If there is no new parameter this function returns 0126 //! false, and the values of P and Tol are not significant. 0127 Standard_EXPORT virtual bool NewParameter(const TopoDS_Vertex& V, 0128 const TopoDS_Edge& E, 0129 double& P, 0130 double& Tol) = 0; 0131 0132 //! Returns the continuity of <NewE> between <NewF1> 0133 //! and <NewF2>. 0134 //! <NewE> is the new edge created from <E>. <NewF1> 0135 //! (resp. <NewF2>) is the new face created from <F1> 0136 //! (resp. <F2>). 0137 Standard_EXPORT virtual GeomAbs_Shape Continuity(const TopoDS_Edge& E, 0138 const TopoDS_Face& F1, 0139 const TopoDS_Face& F2, 0140 const TopoDS_Edge& NewE, 0141 const TopoDS_Face& NewF1, 0142 const TopoDS_Face& NewF2) = 0; 0143 0144 DEFINE_STANDARD_RTTIEXT(BRepTools_Modification, Standard_Transient) 0145 }; 0146 0147 #endif // _BRepTools_Modification_HeaderFile
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|